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
