mirror of
https://github.com/torvalds/linux.git
synced 2024-12-23 03:11:46 +00:00
d91958815d
Cc: Randy Dunlap <randy.dunlap@oracle.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
33 lines
1.1 KiB
Plaintext
33 lines
1.1 KiB
Plaintext
Clock framework on SuperH architecture
|
|
|
|
The framework on SH extends existing API by the function clk_set_rate_ex,
|
|
which prototype is as follows:
|
|
|
|
clk_set_rate_ex (struct clk *clk, unsigned long rate, int algo_id)
|
|
|
|
The algo_id parameter is used to specify algorithm used to recalculate clocks,
|
|
adjanced to clock, specified as first argument. It is assumed that algo_id==0
|
|
means no changes to adjanced clock
|
|
|
|
Internally, the clk_set_rate_ex forwards request to clk->ops->set_rate method,
|
|
if it is present in ops structure. The method should set the clock rate and adjust
|
|
all needed clocks according to the passed algo_id.
|
|
Exact values for algo_id are machine-dependent. For the sh7722, the following
|
|
values are defined:
|
|
|
|
NO_CHANGE = 0,
|
|
IUS_N1_N1, /* I:U = N:1, U:Sh = N:1 */
|
|
IUS_322, /* I:U:Sh = 3:2:2 */
|
|
IUS_522, /* I:U:Sh = 5:2:2 */
|
|
IUS_N11, /* I:U:Sh = N:1:1 */
|
|
SB_N1, /* Sh:B = N:1 */
|
|
SB3_N1, /* Sh:B3 = N:1 */
|
|
SB3_32, /* Sh:B3 = 3:2 */
|
|
SB3_43, /* Sh:B3 = 4:3 */
|
|
SB3_54, /* Sh:B3 = 5:4 */
|
|
BP_N1, /* B:P = N:1 */
|
|
IP_N1 /* I:P = N:1 */
|
|
|
|
Each of these constants means relation between clocks that can be set via the FRQCR
|
|
register
|