On Wed, Feb 26, 2014 at 10:06:06AM +0100, Geert Uytterhoeven wrote: > On Wed, Feb 26, 2014 at 9:59 AM, Simon Horman <horms@xxxxxxxxxxxx> wrote: > >> > +/* > >> > + * MD1 = 1 MD1 = 0 > >> > + * (PLLA = 1500) (PLLA = 1600) > >> > + * (MHz) (MHz) > >> > + *------------------------------------------------+-------------------- > >> > + * clkz 1000 (2/3) 800 (1/2) > >> > + * clkzs 250 (1/6) 200 (1/8) > >> > + * clki 750 (1/2) 800 (1/2) > >> > + * clks 250 (1/6) 200 (1/8) > >> > + * clks1 125 (1/12) 100 (1/16) > >> > + * clks3 187.5 (1/8) 200 (1/8) > >> > + * clks4 93.7 (1/16) 100 (1/16) > >> > + * clkp 62.5 (1/24) 50 (1/32) > >> > + * clkg 62.5 (1/24) 66.6 (1/24) > >> > + * clkb, CLKOUT > >> > + * (MD2 = 0) 62.5 (1/24) 66.6 (1/24) > >> > + * (MD2 = 1) 41.6 (1/36) 50 (1/32) > >> > + */ > >> > + > >> > +#define CPG_CLK_CONFIG_INDEX(md) (((md) & (BIT(1)|BIT(2))) >> 1) > >> > + > >> > +struct cpg_clk_config { > >> > + unsigned int z_mult; > >> > + unsigned int z_div; > >> > + unsigned int zs_and_s_div; > >> > + unsigned int s1_div; > >> > + unsigned int p_div; > >> > + unsigned int out_div; > >> > +}; > >> > + > >> > +static const struct cpg_clk_config cpg_clk_configs[4] __initconst = { > >> > + { 1, 2, 8, 16, 32, 24 }, > >> > + { 1, 2, 8, 16, 32, 24 }, > >> > + { 2, 3, 6, 12, 24, 36 }, > >> > + { 2, 3, 6, 12, 24, 32 }, > >> > +}; > >> > >> Shouldn't this be > >> > >> +static const struct cpg_clk_config cpg_clk_configs[4] __initconst = { > >> + { 1, 2, 8, 16, 32, 24 }, > >> + { 2, 3, 6, 12, 24, 24 }, > >> + { 1, 2, 8, 16, 32, 32 }, > >> + { 2, 3, 6, 12, 24, 36 }, > >> +}; > >> > >> ? > >> > >> I think you got confused by writing the bitmask as "BIT(1)|BIT(2)" instead > >> of "BIT(2)|BIT(1)". > > > > Probably, thanks for noticing. > > Note that I based my review on the table above, not on the actual datasheet. Understood. I'll double check the datasheet against my code and your comment. _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/linux-arm-kernel