From: Tero Kristo <t-kristo-l0cyMroinI0@public.gmane.org>
To: Grygorii Strashko
<grygorii.strashko-l0cyMroinI0@public.gmane.org>,
tony-4v6yS6AI5VpBDgjK7y7TUQ@public.gmane.org
Cc: nsekhar-l0cyMroinI0@public.gmane.org,
linux-omap-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org,
devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
Felipe Balbi <balbi-l0cyMroinI0@public.gmane.org>
Subject: Re: [4.4-rc][PATCH] ARM: dts: am4372: fix clock source for arm twd and global timers
Date: Mon, 30 Nov 2015 15:32:18 +0200 [thread overview]
Message-ID: <565C4FE2.3090403@ti.com> (raw)
In-Reply-To: <565C38CE.1070907-l0cyMroinI0@public.gmane.org>
On 11/30/2015 01:53 PM, Grygorii Strashko wrote:
> On 11/30/2015 10:25 AM, Tero Kristo wrote:
>> On 11/27/2015 09:44 PM, Grygorii Strashko wrote:
>>> 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-4v6yS6AI5VpBDgjK7y7TUQ@public.gmane.org>
>>> Cc: Felipe Balbi <balbi-l0cyMroinI0@public.gmane.org>
>>> Cc: Tero Kristo <t-kristo-l0cyMroinI0@public.gmane.org>
>>> Fixes:commit 8cbd4c2f6a99 ("arm: boot: dts: am4372: add ARM timers and
>>> SCU nodes")
>>> Signed-off-by: Grygorii Strashko <grygorii.strashko-l0cyMroinI0@public.gmane.org>
>>> ---
>>> arch/arm/boot/dts/am4372.dtsi | 4 ++--
>>> 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 d83ff9c..de8791a 100644
>>> --- a/arch/arm/boot/dts/am4372.dtsi
>>> +++ b/arch/arm/boot/dts/am4372.dtsi
>>> @@ -74,7 +74,7 @@
>>> reg = <0x48240200 0x100>;
>>> interrupts = <GIC_PPI 11 IRQ_TYPE_LEVEL_HIGH>;
>>> interrupt-parent = <&gic>;
>>> - clocks = <&dpll_mpu_m2_ck>;
>>> + clocks = <&mpu_periphclk>;
>>> };
>>>
>>> local_timer: timer@48240600 {
>>> @@ -82,7 +82,7 @@
>>> reg = <0x48240600 0x100>;
>>> interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_HIGH>;
>>> interrupt-parent = <&gic>;
>>> - clocks = <&dpll_mpu_m2_ck>;
>>> + clocks = <&mpu_periphclk>;
>>> };
>>>
>>> l2-cache-controller@48242000 {
>>> diff --git a/arch/arm/boot/dts/am43xx-clocks.dtsi
>>> b/arch/arm/boot/dts/am43xx-clocks.dtsi
>>> index cc88728..2ff58b1 100644
>>> --- a/arch/arm/boot/dts/am43xx-clocks.dtsi
>>> +++ b/arch/arm/boot/dts/am43xx-clocks.dtsi
>>> @@ -259,6 +259,14 @@
>>> ti,invert-autoidle-bit;
>>> };
>>>
>>> + mpu_periphclk: mpu_periphclk {
>>> + #clock-cells = <0>;
>>> + compatible = "fixed-factor-clock";
>>> + clocks = <&dpll_mpu_ck>;
>>
>> I don't think this is correct, ARM core is fed dpll_mpu_m2_ck, where the
>> divisor value can potentially differ from 1. If you feed this clock
>> directly from dpll_mpu_ck, you bypass this divisor.
>
> Sry. My mistake. I'll update it to use dpll_mpu_m2_ck.
>
>>
>> Did you check what is the impact of cpufreq on the ARM TWD/timers?
>
> TWD is cpufreq friendly, ARM GT is not.
I think the TWD kick period changes with cpufreq also right?
How are the clocks handled with cpufreq? The user just needs to
understand that the timers will be screwed if he uses ARM GT? Should we
add some sort of dependency to disable the ARM GT if cpufreq is enabled?
-Tero
>
>
>>> + clock-mult = <1>;
>>> + clock-div = <2>;
>>> + };
>>> +
>>> dpll_ddr_ck: dpll_ddr_ck {
>>> #clock-cells = <0>;
>>> compatible = "ti,am3-dpll-clock";
>>>
>>
>
>
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
next prev parent reply other threads:[~2015-11-30 13:32 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-11-27 19:44 [4.4-rc][PATCH] ARM: dts: am4372: fix clock source for arm twd and global timers Grygorii Strashko
[not found] ` <1448653468-24908-1-git-send-email-grygorii.strashko-l0cyMroinI0@public.gmane.org>
2015-11-30 8:25 ` Tero Kristo
[not found] ` <565C0814.3000001-l0cyMroinI0@public.gmane.org>
2015-11-30 11:53 ` Grygorii Strashko
[not found] ` <565C38CE.1070907-l0cyMroinI0@public.gmane.org>
2015-11-30 13:32 ` Tero Kristo [this message]
[not found] ` <565C4FE2.3090403-l0cyMroinI0@public.gmane.org>
2015-11-30 13:49 ` Grygorii Strashko
[not found] ` <565C53D0.6090305-l0cyMroinI0@public.gmane.org>
2015-11-30 14:02 ` Tero Kristo
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=565C4FE2.3090403@ti.com \
--to=t-kristo-l0cymroini0@public.gmane.org \
--cc=balbi-l0cyMroinI0@public.gmane.org \
--cc=devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=grygorii.strashko-l0cyMroinI0@public.gmane.org \
--cc=linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org \
--cc=linux-omap-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=nsekhar-l0cyMroinI0@public.gmane.org \
--cc=tony-4v6yS6AI5VpBDgjK7y7TUQ@public.gmane.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).