aboutsummaryrefslogtreecommitdiffstats
path: root/arch/powerpc/sysdev/qe_lib/qe.c
diff options
context:
space:
mode:
authorTimur Tabi <timur@freescale.com>2007-12-03 16:17:58 -0500
committerKumar Gala <galak@kernel.crashing.org>2007-12-13 23:59:27 -0500
commit174b0da23199c4ae1ed06263dafd9a2e85e97d34 (patch)
treeef7e30bbc2b22269e46a08ab17823e5d43e6974f /arch/powerpc/sysdev/qe_lib/qe.c
parent255b09eb26bc285be5aad5c5606e96093094c41a (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.c32
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}
204EXPORT_SYMBOL(qe_setbrg); 204EXPORT_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*/
211enum 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}
236EXPORT_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 */