[PATCH v2 09/15] ARM: mxs: Add clock support
Shawn Guo
shawn.gsc at gmail.com
Wed Dec 8 20:44:10 EST 2010
2010/12/9 Uwe Kleine-König <u.kleine-koenig at pengutronix.de>:
> On Wed, Dec 08, 2010 at 12:31:59AM +0800, Shawn Guo wrote:
>> Add clock for MXS-based SoCs, MX23 and MX28.
>>
>> Signed-off-by: Shawn Guo <shawn.guo at freescale.com>
>> ---
>> Changes for v2:
>> - Shift pll0_clock freq 480MHz in children freq computation to avoid overflow
> really?
>
>> [...]
>> +/*
>> + * pll_clk
>> + */
>> +static unsigned long pll_clk_get_rate(struct clk *clk)
>> +{
>> + return 480000000;
> pll's get_rate still returns 0x1c9c3800
>
>> [...]
>> +/*
>> + * ref_clk
>> + */
>> +#define _CLK_GET_RATE_REF(name, sr, ss) \
>> +static unsigned long name##_get_rate(struct clk *clk) \
>> +{ \
>> + unsigned long parent_rate; \
>> + u32 reg, div; \
>> + \
>> + reg = __raw_readl(CLKCTRL_BASE_ADDR + HW_CLKCTRL_##sr); \
>> + div = (reg >> BP_CLKCTRL_##sr##_##ss##FRAC) & 0x3f; \
>> + parent_rate = clk_get_rate(clk->parent); \
>> + \
>> + return parent_rate * 18 / div; \
>> +}
>> +
>> +_CLK_GET_RATE_REF(ref_cpu_clk, FRAC, CPU)
> ref_cpu_clk's get_rate still uses parent_rate * 18
>
>> +_CLK_GET_RATE_REF(ref_emi_clk, FRAC, EMI)
>> +_CLK_GET_RATE_REF(ref_pix_clk, FRAC, PIX)
>> +_CLK_GET_RATE_REF(ref_io_clk, FRAC, IO)
>> +
>> +#define _DEFINE_CLOCK_REF(name, er, es) \
>> + static struct clk name = { \
>> + .enable_reg = CLKCTRL_BASE_ADDR + HW_CLKCTRL_##er, \
>> + .enable_shift = BP_CLKCTRL_##er##_CLKGATE##es, \
>> + .get_rate = name##_get_rate, \
>> + .enable = _raw_clk_enable, \
>> + .disable = _raw_clk_disable, \
>> + .parent = &pll_clk, \
>> + }
>> +
>> +_DEFINE_CLOCK_REF(ref_cpu_clk, FRAC, CPU);
> ref_cpu_clk's parent still is pll_clk
>
My mistake. I only fixed clock-mx28.c and forgot clock-mx23.c.
--
Regards,
Shawn
More information about the linux-arm-kernel
mailing list