| dmitry pervushin | 1929cb3 | 2007-04-24 13:39:09 +0900 | [diff] [blame] | 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 |