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

Fabio Estevam festevam at gmail.com
Thu Sep 4 15:50:35 PDT 2014


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