forked from Minki/linux
[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>
This commit is contained in:
parent
255b09eb26
commit
174b0da231
@ -1629,6 +1629,19 @@ platforms are moved over to use the flattened-device-tree model.
|
||||
- interrupt-parent : the phandle for the interrupt controller that
|
||||
services interrupts for this device.
|
||||
- pio-handle : The phandle for the Parallel I/O port configuration.
|
||||
- rx-clock-name: the UCC receive clock source
|
||||
"none": clock source is disabled
|
||||
"brg1" through "brg16": clock source is BRG1-BRG16, respectively
|
||||
"clk1" through "clk24": clock source is CLK1-CLK24, respectively
|
||||
- tx-clock-name: the UCC transmit clock source
|
||||
"none": clock source is disabled
|
||||
"brg1" through "brg16": clock source is BRG1-BRG16, respectively
|
||||
"clk1" through "clk24": clock source is CLK1-CLK24, respectively
|
||||
The following two properties are deprecated. rx-clock has been replaced
|
||||
with rx-clock-name, and tx-clock has been replaced with tx-clock-name.
|
||||
Drivers that currently use the deprecated properties should continue to
|
||||
do so, in order to support older device trees, but they should be updated
|
||||
to check for the new properties first.
|
||||
- rx-clock : represents the UCC receive clock source.
|
||||
0x00 : clock source is disabled;
|
||||
0x1~0x10 : clock source is BRG1~BRG16 respectively;
|
||||
|
@ -203,6 +203,38 @@ int qe_setbrg(enum qe_clock brg, unsigned int rate, unsigned int multiplier)
|
||||
}
|
||||
EXPORT_SYMBOL(qe_setbrg);
|
||||
|
||||
/* Convert a string to a QE clock source enum
|
||||
*
|
||||
* This function takes a string, typically from a property in the device
|
||||
* tree, and returns the corresponding "enum qe_clock" value.
|
||||
*/
|
||||
enum qe_clock qe_clock_source(const char *source)
|
||||
{
|
||||
unsigned int i;
|
||||
|
||||
if (strcasecmp(source, "none") == 0)
|
||||
return QE_CLK_NONE;
|
||||
|
||||
if (strncasecmp(source, "brg", 3) == 0) {
|
||||
i = simple_strtoul(source + 3, NULL, 10);
|
||||
if ((i >= 1) && (i <= 16))
|
||||
return (QE_BRG1 - 1) + i;
|
||||
else
|
||||
return QE_CLK_DUMMY;
|
||||
}
|
||||
|
||||
if (strncasecmp(source, "clk", 3) == 0) {
|
||||
i = simple_strtoul(source + 3, NULL, 10);
|
||||
if ((i >= 1) && (i <= 24))
|
||||
return (QE_CLK1 - 1) + i;
|
||||
else
|
||||
return QE_CLK_DUMMY;
|
||||
}
|
||||
|
||||
return QE_CLK_DUMMY;
|
||||
}
|
||||
EXPORT_SYMBOL(qe_clock_source);
|
||||
|
||||
/* Initialize SNUMs (thread serial numbers) according to
|
||||
* QE Module Control chapter, SNUM table
|
||||
*/
|
||||
|
@ -84,6 +84,7 @@ extern int par_io_data_set(u8 port, u8 pin, u8 val);
|
||||
|
||||
/* QE internal API */
|
||||
int qe_issue_cmd(u32 cmd, u32 device, u8 mcn_protocol, u32 cmd_input);
|
||||
enum qe_clock qe_clock_source(const char *source);
|
||||
int qe_setbrg(enum qe_clock brg, unsigned int rate, unsigned int multiplier);
|
||||
int qe_get_snum(void);
|
||||
void qe_put_snum(u8 snum);
|
||||
|
Loading…
Reference in New Issue
Block a user