[PATCH 0/3] move gpt per clk parent for ipg_per to OSC

Anson.Huang at freescale.com Anson.Huang at freescale.com
Thu Sep 4 16:37:21 PDT 2014


Hi, Fabio
        can I know why you want to run the new kernel with old dtb?

Sent from Anson's iPhone

> 在 2014年9月5日,6:50,"Fabio Estevam" <festevam at gmail.com> 写道:
> 
>> On Wed, Sep 3, 2014 at 4:36 AM, Anson Huang <b20788 at freescale.com> wrote:
>> Currently, gpt timer's clock is from ipg_per, and ipg_per clock is from ipg
>> on most of i.MX6 series SOCs, but ipg's rate may be scaled when system enters
>> low bus mode for saving power, then gpt timer's clock rate will be scaled as
>> well, as system timer should be kept stable and NOT drift, better to keep gpt
>> timer's clk at fixed rate, on i.MX6Q TO > 1.0, i.MX6DL and i.MX6SX, there is
>> OSC clk available for gpt timer, we should enable this feature, the hardware
>> design is as below:
>> 
>> i.MX6Q TO > 1.0: GPT_CR_CLKSRC, 3b'101 selects fix clock
>>    of OSC / 8 for gpt per clk;
>> i.MX6DL and i.MX6SX: GPT_CR_CLKSRC, 3b'101 selects OSC
>>    for gpt per clk, and we must enable GPT_CR_24MEM to
>>    enable OSC clk source for gpt per, GPT_PR_PRESCALER24M
>>    is for pre-scaling of this OSC clk, here set it to 8
>>    to make gpt per clk is 3MHz;
>> i.MX6SL: ipg_per can be from OSC directly, so no need to
>>    implement this new clk source for gpt per.
>> 
>> Anson Huang (3):
>>  ARM: imx: add gpt_3m clk for i.mx6qdl
>>  ARM: dts: imx6: change gpt per clk to gpt_3m on i.mx6qdl and i.mx6sx
>>  ARM: imx: source gpt per clk from OSC for system timer
> 
> This patch series works fine if we use the new dtb and new kernel.
> 
> However, booting a kernel with these series applied and using an old
> dtb we get a system with broken timer.
> 
> 'sleep 1' takes something like 20 seconds in this case.


More information about the linux-arm-kernel mailing list