LKML Archive on lore.kernel.org help / color / mirror / Atom feed
From: Sekhar Nori <nsekhar@ti.com> To: David Lechner <david@lechnology.com>, <linux-clk@vger.kernel.org>, <devicetree@vger.kernel.org>, <linux-arm-kernel@lists.infradead.org> Cc: Michael Turquette <mturquette@baylibre.com>, Stephen Boyd <sboyd@codeaurora.org>, Rob Herring <robh+dt@kernel.org>, Mark Rutland <mark.rutland@arm.com>, Kevin Hilman <khilman@kernel.org>, Bartosz Golaszewski <bgolaszewski@baylibre.com>, Adam Ford <aford173@gmail.com>, <linux-kernel@vger.kernel.org> Subject: Re: [PATCH v8 20/42] ARM: davinci: pass clock as parameter to davinci_timer_init() Date: Thu, 5 Apr 2018 17:42:51 +0530 [thread overview] Message-ID: <43434ed4-162c-cb39-70ef-a458e3999f8b@ti.com> (raw) In-Reply-To: <1521168778-27236-21-git-send-email-david@lechnology.com> On Friday 16 March 2018 08:22 AM, David Lechner wrote: > This changes davinci_timer_init() so that we pass the clock as a > parameter instead of using clk_get(). This is done in preparation > for converting to the common clock framework. > > It removes the requirement that we have to have a clock with con_id > of "timer0", which will be good for DT bindings since clock-names = > "timer0" doesn't really make sense. > > Additionally, when we convert to the common clock framework, most of > the clocks will be platform devices, which will not be available at > this point during the boot process, so we will need to pass a clock > that is available (i.e. ref_clk) instead of the "timer0" clock. > > NB: The comment added in time.c is not entirely true when this patch > is applied, but it will be correct once the conversion to the common > clock framework is complete in subsequent patches. I think its better to add the comment when its actually applicable, even if it needs to be a separate patch. > > Also, drop use of extern in header file since we are touching the > definition. > > Signed-off-by: David Lechner <david@lechnology.com> > - > -void __init davinci_timer_init(void) > +void __init davinci_timer_init(struct clk *timer_clk) > { > - struct clk *timer_clk; > struct davinci_soc_info *soc_info = &davinci_soc_info; > unsigned int clockevent_id; > unsigned int clocksource_id; > @@ -373,7 +371,14 @@ void __init davinci_timer_init(void) > } > } > > - timer_clk = clk_get(NULL, "timer0"); > + /* > + * REVISIT: Currently, timer_clk will be "ref_clk". However, the actual > + * clock for this device comes from a PLL AUXCLK or a PSC clock > + * (depending on the SoC). The PLL and PSC clocks are not registered > + * until later in boot because they are platform devices. We should try > + * again later to get the real clock so that the real clock is not > + * turned off when disabling unused clocks, which would stop the timer. This disabling later should not happen because you have the timer clocks marked as LPSC_ALWAYS_ENABLED which translates to CLK_IS_CRITICAL and that should make sure they are never disabled. The issue should be documented is that we depend on bootloader leaving the timer0 enabled on DM355, DM365, DM644x and DM646x. Of these, I have tested only DM644x so far. I will check others and see the status of timer0 there. Its not really a great situation here, but I don't have a good alternative to suggest as well if having genpd support in PSC means we cannot be using CLK_OF_DECLARE(). Thanks, Sekhar
next prev parent reply other threads:[~2018-04-05 12:14 UTC|newest] Thread overview: 89+ messages / expand[flat|nested] mbox.gz Atom feed top 2018-03-16 2:52 [PATCH v8 00/42] ARM: davinci: convert to common clock framework David Lechner 2018-03-16 2:52 ` [PATCH v8 01/42] dt-bindings: clock: Add new bindings for TI Davinci PLL clocks David Lechner 2018-03-20 17:03 ` Stephen Boyd 2018-03-16 2:52 ` [PATCH v8 02/42] clk: davinci: New driver for davinci " David Lechner 2018-03-20 16:56 ` Stephen Boyd 2018-03-20 17:03 ` Stephen Boyd 2018-03-16 2:52 ` [PATCH v8 03/42] clk: davinci: Add platform information for TI DA830 PLL David Lechner 2018-03-20 17:03 ` Stephen Boyd 2018-03-16 2:52 ` [PATCH v8 04/42] clk: davinci: Add platform information for TI DA850 PLL David Lechner 2018-03-20 17:03 ` Stephen Boyd 2018-03-16 2:52 ` [PATCH v8 05/42] clk: davinci: Add platform information for TI DM355 PLL David Lechner 2018-03-20 17:03 ` Stephen Boyd 2018-03-16 2:52 ` [PATCH v8 06/42] clk: davinci: Add platform information for TI DM365 PLL David Lechner 2018-03-20 17:03 ` Stephen Boyd 2018-03-16 2:52 ` [PATCH v8 07/42] clk: davinci: Add platform information for TI DM644x PLL David Lechner 2018-03-20 17:03 ` Stephen Boyd 2018-03-16 2:52 ` [PATCH v8 08/42] clk: davinci: Add platform information for TI DM646x PLL David Lechner 2018-03-20 17:03 ` Stephen Boyd 2018-03-16 2:52 ` [PATCH v8 09/42] dt-bindings: clock: New bindings for TI Davinci PSC David Lechner 2018-03-20 17:03 ` Stephen Boyd 2018-03-16 2:52 ` [PATCH v8 10/42] clk: davinci: New driver for davinci PSC clocks David Lechner 2018-03-20 17:03 ` Stephen Boyd 2018-03-16 2:52 ` [PATCH v8 11/42] clk: davinci: Add platform information for TI DA830 PSC David Lechner 2018-03-20 17:04 ` Stephen Boyd 2018-03-16 2:52 ` [PATCH v8 12/42] clk: davinci: Add platform information for TI DA850 PSC David Lechner 2018-03-16 3:11 ` David Lechner 2018-03-20 17:04 ` Stephen Boyd 2018-03-16 2:52 ` [PATCH v8 13/42] clk: davinci: Add platform information for TI DM355 PSC David Lechner 2018-03-20 16:58 ` Stephen Boyd 2018-03-20 17:04 ` Stephen Boyd 2018-03-16 2:52 ` [PATCH v8 14/42] clk: davinci: Add platform information for TI DM365 PSC David Lechner 2018-03-20 17:04 ` Stephen Boyd 2018-03-16 2:52 ` [PATCH v8 15/42] clk: davinci: Add platform information for TI DM644x PSC David Lechner 2018-03-20 17:04 ` Stephen Boyd 2018-03-16 2:52 ` [PATCH v8 16/42] clk: davinci: Add platform information for TI DM646x PSC David Lechner 2018-03-20 17:04 ` Stephen Boyd 2018-03-16 2:52 ` [PATCH v8 17/42] dt-bindings: clock: Add bindings for DA8XX CFGCHIP clocks David Lechner 2018-03-20 17:04 ` Stephen Boyd 2018-03-16 2:52 ` [PATCH v8 18/42] clk: davinci: New driver for TI " David Lechner 2018-03-20 16:54 ` Stephen Boyd 2018-03-20 16:57 ` David Lechner 2018-03-20 17:04 ` Stephen Boyd 2018-03-16 2:52 ` [PATCH v8 19/42] clk: davinci: cfgchip: Add TI DA8XX USB PHY clocks David Lechner 2018-03-20 17:04 ` Stephen Boyd 2018-03-16 2:52 ` [PATCH v8 20/42] ARM: davinci: pass clock as parameter to davinci_timer_init() David Lechner 2018-04-05 12:12 ` Sekhar Nori [this message] 2018-03-16 2:52 ` [PATCH v8 21/42] ARM: davinci: da830: add new clock init using common clock framework David Lechner 2018-03-16 2:52 ` [PATCH v8 22/42] ARM: davinci: da850: " David Lechner 2018-03-16 2:52 ` [PATCH v8 23/42] ARM: davinci: dm355: " David Lechner 2018-03-16 2:52 ` [PATCH v8 24/42] ARM: davinci: dm365: " David Lechner 2018-03-16 2:52 ` [PATCH v8 25/42] ARM: davinci: dm644x: " David Lechner 2018-04-03 10:26 ` Sekhar Nori 2018-04-03 16:30 ` David Lechner 2018-04-04 6:47 ` Sekhar Nori 2018-04-04 12:44 ` Sekhar Nori 2018-04-04 16:21 ` David Lechner 2018-03-16 2:52 ` [PATCH v8 26/42] ARM: davinci: dm646x: " David Lechner 2018-03-16 2:52 ` [PATCH v8 27/42] ARM: davinci: da8xx: add new USB PHY " David Lechner 2018-03-16 2:52 ` [PATCH v8 28/42] ARM: davinci: da8xx: add new sata_refclk " David Lechner 2018-03-16 2:52 ` [PATCH v8 29/42] ARM: davinci: remove CONFIG_DAVINCI_RESET_CLOCKS David Lechner 2018-03-16 2:52 ` [PATCH v8 30/42] ARM: davinci_all_defconfig: " David Lechner 2018-03-16 2:52 ` [PATCH v8 31/42] ARM: davinci: switch to common clock framework David Lechner 2018-03-16 2:52 ` [PATCH v8 32/42] ARM: davinci: da830: Remove legacy clock init David Lechner 2018-03-16 2:52 ` [PATCH v8 33/42] ARM: davinci: da850: " David Lechner 2018-03-16 2:52 ` [PATCH v8 34/42] ARM: davinci: dm355: " David Lechner 2018-03-16 2:52 ` [PATCH v8 35/42] ARM: davinci: dm365: " David Lechner 2018-03-16 2:52 ` [PATCH v8 36/42] ARM: davinci: dm644x: " David Lechner 2018-03-16 2:52 ` [PATCH v8 37/42] ARM: davinci: dm646x: " David Lechner 2018-03-16 2:52 ` [PATCH v8 38/42] ARM: davinci: da8xx: Remove legacy USB and SATA " David Lechner 2018-03-16 2:52 ` [PATCH v8 39/42] ARM: davinci: remove legacy clocks David Lechner 2018-03-16 2:52 ` [PATCH v8 40/42] ARM: davinci: add device tree support to timer David Lechner 2018-04-05 11:30 ` Sekhar Nori 2018-03-16 2:52 ` [PATCH v8 41/42] ARM: davinci: da8xx-dt: switch to device tree clocks David Lechner 2018-03-16 2:52 ` [PATCH v8 42/42] ARM: dts: da850: Add clocks David Lechner 2018-03-16 17:20 ` David Lechner 2018-04-02 11:12 ` Sekhar Nori 2018-04-02 16:15 ` David Lechner 2018-04-03 5:43 ` Sekhar Nori 2018-03-16 2:59 ` [PATCH v8 00/42] ARM: davinci: convert to common clock framework David Lechner 2018-03-19 13:17 ` Bartosz Golaszewski 2018-03-19 15:59 ` David Lechner 2018-03-19 16:11 ` Adam Ford 2018-03-19 16:14 ` Bartosz Golaszewski 2018-03-19 16:15 ` Bartosz Golaszewski 2018-03-19 17:52 ` Adam Ford 2018-03-19 22:54 ` David Lechner 2018-03-19 22:14 ` David Lechner 2018-03-20 0:53 ` Stephen Boyd 2018-03-20 13:52 ` Sekhar Nori
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=43434ed4-162c-cb39-70ef-a458e3999f8b@ti.com \ --to=nsekhar@ti.com \ --cc=aford173@gmail.com \ --cc=bgolaszewski@baylibre.com \ --cc=david@lechnology.com \ --cc=devicetree@vger.kernel.org \ --cc=khilman@kernel.org \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-clk@vger.kernel.org \ --cc=linux-kernel@vger.kernel.org \ --cc=mark.rutland@arm.com \ --cc=mturquette@baylibre.com \ --cc=robh+dt@kernel.org \ --cc=sboyd@codeaurora.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: linkBe 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).