diff options
| author | Grygorii Strashko <grygorii.strashko@ti.com> | 2015-11-30 10:56:38 -0500 |
|---|---|---|
| committer | Tony Lindgren <tony@atomide.com> | 2015-12-09 19:46:25 -0500 |
| commit | 14054fb1da099fd89208b8b319a00e0b902c7645 (patch) | |
| tree | 819497a426b08c865309b72187e961a96897faf9 | |
| parent | fc82792851d693e4f6da81b4b97e7af62d596af9 (diff) | |
ARM: dts: am4372: fix clock source for arm twd and global timers
ARM TWD and Global timer are clocked by PERIPHCLK which is MPU_CLK/2.
But now they are clocked by dpll_mpu_m2_ck == MPU_CLK and, as result.
Timekeeping core misbehaves. For example, execution of command
"sleep 5" will take 10 sec instead of 5.
Hence, fix it by adding mpu_periphclk ("fixed-factor-clock") and use
it for clocking ARM TWD and Global timer (same way as on OMAP4).
Cc: Tony Lindgren <tony@atomide.com>
Cc: Felipe Balbi <balbi@ti.com>
Cc: Tero Kristo <t-kristo@ti.com>
Fixes:commit 8cbd4c2f6a99 ("arm: boot: dts: am4372: add ARM timers and SCU nodes")
Signed-off-by: Grygorii Strashko <grygorii.strashko@ti.com>
Reviewed-by: Felipe Balbi <balbi@ti.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
| -rw-r--r-- | arch/arm/boot/dts/am4372.dtsi | 4 | ||||
| -rw-r--r-- | arch/arm/boot/dts/am43xx-clocks.dtsi | 8 |
2 files changed, 10 insertions, 2 deletions
diff --git a/arch/arm/boot/dts/am4372.dtsi b/arch/arm/boot/dts/am4372.dtsi index d83ff9c9701e..de8791a4d131 100644 --- a/arch/arm/boot/dts/am4372.dtsi +++ b/arch/arm/boot/dts/am4372.dtsi | |||
| @@ -74,7 +74,7 @@ | |||
| 74 | reg = <0x48240200 0x100>; | 74 | reg = <0x48240200 0x100>; |
| 75 | interrupts = <GIC_PPI 11 IRQ_TYPE_LEVEL_HIGH>; | 75 | interrupts = <GIC_PPI 11 IRQ_TYPE_LEVEL_HIGH>; |
| 76 | interrupt-parent = <&gic>; | 76 | interrupt-parent = <&gic>; |
| 77 | clocks = <&dpll_mpu_m2_ck>; | 77 | clocks = <&mpu_periphclk>; |
| 78 | }; | 78 | }; |
| 79 | 79 | ||
| 80 | local_timer: timer@48240600 { | 80 | local_timer: timer@48240600 { |
| @@ -82,7 +82,7 @@ | |||
| 82 | reg = <0x48240600 0x100>; | 82 | reg = <0x48240600 0x100>; |
| 83 | interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_HIGH>; | 83 | interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_HIGH>; |
| 84 | interrupt-parent = <&gic>; | 84 | interrupt-parent = <&gic>; |
| 85 | clocks = <&dpll_mpu_m2_ck>; | 85 | clocks = <&mpu_periphclk>; |
| 86 | }; | 86 | }; |
| 87 | 87 | ||
| 88 | l2-cache-controller@48242000 { | 88 | l2-cache-controller@48242000 { |
diff --git a/arch/arm/boot/dts/am43xx-clocks.dtsi b/arch/arm/boot/dts/am43xx-clocks.dtsi index cc88728d751d..a38af2bfbfcf 100644 --- a/arch/arm/boot/dts/am43xx-clocks.dtsi +++ b/arch/arm/boot/dts/am43xx-clocks.dtsi | |||
| @@ -259,6 +259,14 @@ | |||
| 259 | ti,invert-autoidle-bit; | 259 | ti,invert-autoidle-bit; |
| 260 | }; | 260 | }; |
| 261 | 261 | ||
| 262 | mpu_periphclk: mpu_periphclk { | ||
| 263 | #clock-cells = <0>; | ||
| 264 | compatible = "fixed-factor-clock"; | ||
| 265 | clocks = <&dpll_mpu_m2_ck>; | ||
| 266 | clock-mult = <1>; | ||
| 267 | clock-div = <2>; | ||
| 268 | }; | ||
| 269 | |||
| 262 | dpll_ddr_ck: dpll_ddr_ck { | 270 | dpll_ddr_ck: dpll_ddr_ck { |
| 263 | #clock-cells = <0>; | 271 | #clock-cells = <0>; |
| 264 | compatible = "ti,am3-dpll-clock"; | 272 | compatible = "ti,am3-dpll-clock"; |
