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 | |
| 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')
| -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 | */ |
