Based on kernel version 2.6.26. Page generated on 2008-07-16 21:13 EST.
1 Clock framework on SuperH architecture 2 3 The framework on SH extends existing API by the function clk_set_rate_ex, 4 which prototype is as follows: 5 6 clk_set_rate_ex (struct clk *clk, unsigned long rate, int algo_id) 7 8 The algo_id parameter is used to specify algorithm used to recalculate clocks, 9 adjanced to clock, specified as first argument. It is assumed that algo_id==0 10 means no changes to adjanced clock 11 12 Internally, the clk_set_rate_ex forwards request to clk->ops->set_rate method, 13 if it is present in ops structure. The method should set the clock rate and adjust 14 all needed clocks according to the passed algo_id. 15 Exact values for algo_id are machine-dependend. For the sh7722, the following 16 values are defined: 17 18 NO_CHANGE = 0, 19 IUS_N1_N1, /* I:U = N:1, U:Sh = N:1 */ 20 IUS_322, /* I:U:Sh = 3:2:2 */ 21 IUS_522, /* I:U:Sh = 5:2:2 */ 22 IUS_N11, /* I:U:Sh = N:1:1 */ 23 SB_N1, /* Sh:B = N:1 */ 24 SB3_N1, /* Sh:B3 = N:1 */ 25 SB3_32, /* Sh:B3 = 3:2 */ 26 SB3_43, /* Sh:B3 = 4:3 */ 27 SB3_54, /* Sh:B3 = 5:4 */ 28 BP_N1, /* B:P = N:1 */ 29 IP_N1 /* I:P = N:1 */ 30 31 Each of these constants means relation between clocks that can be set via the FRQCR 32 register