diff options
author | Timur Tabi <timur@freescale.com> | 2007-12-03 16:17:58 -0500 |
---|---|---|
committer | Kumar Gala <galak@kernel.crashing.org> | 2007-12-13 23:59:27 -0500 |
commit | 174b0da23199c4ae1ed06263dafd9a2e85e97d34 (patch) | |
tree | ef7e30bbc2b22269e46a08ab17823e5d43e6974f /arch/powerpc/sysdev/qe_lib/qe.c | |
parent | 255b09eb26bc285be5aad5c5606e96093094c41a (diff) |
[POWERPC] qe: add function qe_clock_source()
Add function qe_clock_source() which takes a string containing the name of a
QE clock source (as is typically found in device trees) and returns the
matching enum qe_clock value.
Update booting-without-of.txt to indicate that the UCC properties rx-clock
and tx-clock are deprecated and replaced with rx-clock-name and tx-clock-name,
which use strings instead of numbers to indicate QE clock sources.
Signed-off-by: Timur Tabi <timur@freescale.com>
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
Diffstat (limited to 'arch/powerpc/sysdev/qe_lib/qe.c')
-rw-r--r-- | arch/powerpc/sysdev/qe_lib/qe.c | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/arch/powerpc/sysdev/qe_lib/qe.c b/arch/powerpc/sysdev/qe_lib/qe.c index 1df3b4a6832f..21e01061aca9 100644 --- a/arch/powerpc/sysdev/qe_lib/qe.c +++ b/arch/powerpc/sysdev/qe_lib/qe.c | |||
@@ -203,6 +203,38 @@ int qe_setbrg(enum qe_clock brg, unsigned int rate, unsigned int multiplier) | |||
203 | } | 203 | } |
204 | EXPORT_SYMBOL(qe_setbrg); | 204 | EXPORT_SYMBOL(qe_setbrg); |
205 | 205 | ||
206 | /* Convert a string to a QE clock source enum | ||
207 | * | ||
208 | * This function takes a string, typically from a property in the device | ||
209 | * tree, and returns the corresponding "enum qe_clock" value. | ||
210 | */ | ||
211 | enum qe_clock qe_clock_source(const char *source) | ||
212 | { | ||
213 | unsigned int i; | ||
214 | |||
215 | if (strcasecmp(source, "none") == 0) | ||
216 | return QE_CLK_NONE; | ||
217 | |||
218 | if (strncasecmp(source, "brg", 3) == 0) { | ||
219 | i = simple_strtoul(source + 3, NULL, 10); | ||
220 | if ((i >= 1) && (i <= 16)) | ||
221 | return (QE_BRG1 - 1) + i; | ||
222 | else | ||
223 | return QE_CLK_DUMMY; | ||
224 | } | ||
225 | |||
226 | if (strncasecmp(source, "clk", 3) == 0) { | ||
227 | i = simple_strtoul(source + 3, NULL, 10); | ||
228 | if ((i >= 1) && (i <= 24)) | ||
229 | return (QE_CLK1 - 1) + i; | ||
230 | else | ||
231 | return QE_CLK_DUMMY; | ||
232 | } | ||
233 | |||
234 | return QE_CLK_DUMMY; | ||
235 | } | ||
236 | EXPORT_SYMBOL(qe_clock_source); | ||
237 | |||
206 | /* Initialize SNUMs (thread serial numbers) according to | 238 | /* Initialize SNUMs (thread serial numbers) according to |
207 | * QE Module Control chapter, SNUM table | 239 | * QE Module Control chapter, SNUM table |
208 | */ | 240 | */ |