devicetree.vger.kernel.org archive mirror
 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>, Adam Ford <aford173@gmail.com>,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH v5 01/44] dt-bindings: clock: Add new bindings for TI Davinci PLL clocks
Date: Thu, 11 Jan 2018 00:22:11 +0530	[thread overview]
Message-ID: <5aacc350-6236-2e4f-35bb-a681fc9d47e7@ti.com> (raw)
In-Reply-To: <ba7fa842-cfc5-6f6f-f9bf-09c74ab08ec2@lechnology.com>

On Wednesday 10 January 2018 08:31 AM, David Lechner wrote:
> On 01/09/2018 06:35 AM, Sekhar Nori wrote:
>> On Monday 08 January 2018 09:59 PM, David Lechner wrote:
>>> On 01/08/2018 08:00 AM, Sekhar Nori wrote:
>>>> On Monday 08 January 2018 07:47 AM, David Lechner wrote:

>>>>> diff --git
>>>>> a/Documentation/devicetree/bindings/clock/ti/davinci/pll.txt
>>>>> b/Documentation/devicetree/bindings/clock/ti/davinci/pll.txt
>>>>> new file mode 100644
>>>>> index 0000000..99bf5da
>>>>> --- /dev/null
>>>>> +++ b/Documentation/devicetree/bindings/clock/ti/davinci/pll.txt
>>>>> @@ -0,0 +1,47 @@
>>>>> +Binding for TI DaVinci PLL Controllers
>>>>> +
>>>>> +The PLL provides clocks to most of the components on the SoC. In
>>>>> addition
>>>>> +to the PLL itself, this controller also contains bypasses, gates,
>>>>> dividers,
>>>>> +an multiplexers for various clock signals.
>>>>> +
>>>>> +Required properties:
>>>>> +- compatible: shall be one of:
>>>>> +    - "ti,da850-pll0" for PLL0 on DA850/OMAP-L138/AM18XX
>>>>> +    - "ti,da850-pll1" for PLL1 on DA850/OMAP-L138/AM18XX
>>>>
>>>> These PLLs are same IP so they should use the same compatible. You can
>>>> initialize both PLLs for DA850 based on the same compatible.
>>>>
>>>
>>> But they are not exactly the same. For example, PLL0 has 7 PLLDIV clocks
>>> while
>>> PLL1 only has 3. PLL0 has PREDIV while PLL1 does not. PLL0 has certain
>>> SYSCLKs
>>> that are fixed-ratio but PLL1 does not have any of these. There are even
>>> more
>>> differences, but these are the ones we are actually using.
>>
>> We need each element of the PLLC to be modeled individually as a clock
>> node.
> 
> I gave this a good think while I have been working on this series
> and I came to the conclusion that we really don't need to do this.
> These components are all internal to the PLL IP block, so the
> compatible string is enough to tell us what we have. They only
> thing we need really in the device tree bindings are the connections
> that are external to the IP block.
> 
> 
>> That is, PLL should only model the multiplier, the dividers
>> including post and prediv should be modeled as divider clocks (hopefully
>> being able to use the clk-divider.c library). The sysclks can be
>> fixed-factor-clock type clocks.
>>
>> Without this flexible mechanism, we cannot (at least later) model things
>> like DIV4.5 clock which is the only clock which derives from the output
>> of PLL multiplier before the post divider is applied.
>>
>> Since with DT there are are no retakes, we need to get this right the
>> first time and modifying later will not be an option.
>>
> 
> So, the full device tree binding would look something like this:
> 
> +
> +    pll0: clock-controller@11000 {
> +        compatible = "ti,da850-pll0";
> +        reg = <0x11000 0x1000>;
> +        clocks = <&ref_clk>, <&pll1_sysclk 3>, <&pll1_obsclk>;
> +        clock-names = "oscin", pll1_sysclk3", "pll1_osbclk";
> +        oscin-square-wave;
> +
> +        pll0_sysclk: sysclk {
> +            #clock-cells = <1>;
> +        };
> +
> +        pll0_auxclk: auxclk {
> +            #clock-cells = <0>;
> +        };
> +
> +        pll0_div45: div4.5 {
> +            #clock-cells = <0>;
> +        };
> +
> +        pll0_obsclk: obsclk {
> +            #clock-cells = <0>;
> +            assigned-clocks = <&pll0_sysclk 1>;
> +            assigned-clock-names = "ocsrc";
> +        };
> +    };

Well, I guess this will work as well. And I am probably biased towards
the style I mentioned because AM335x and other TI OMAP processors
follow that.

To make it easy to review that we have all bases covered, can you model
the all PLLC0 and PLLC1 (input and output) clocks for the next version?

> 
> There are three clocks coming into the IP block and there are 11 clocks
> going out (sysclk is 7 clocks). And you can specify the board-specific
> configuration, like having the "oscin-square-wave" flag when a square wave
> is used instead of a crystal oscillator and you can assign the multiplexer

Ideally the OSCIN vs CLKIN selection should be another clock mux whose
output is one of the input clocks to PLL controller. But I can see the
difficulty in handling that as the mux itself is controlled by the PLL
controller.

> input that will be used by obsclk. (And, this binding is totally compatible
> with the binding I have already proposed - although, I see now it would
> be better to go ahead and add the clocks-names property.)

Also, please add the oscin-square-wave to the binding definition too.

For the benefit of others reviewing and not familiar with the hardware,
the users guide for DA850 is here:
http://www.ti.com/lit/ug/spruh77c/spruh77c.pdf

and the PLL block diagram is on page 143 (Figure 8-1).

Thanks,
Sekhar

  reply	other threads:[~2018-01-10 18:52 UTC|newest]

Thread overview: 121+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-01-08  2:16 [PATCH v5 00/44] ARM: davinci: convert to common clock framework​ David Lechner
2018-01-08  2:17 ` [PATCH v5 01/44] dt-bindings: clock: Add new bindings for TI Davinci PLL clocks David Lechner
     [not found]   ` <1515377863-20358-2-git-send-email-david-nq/r/kbU++upp/zk7JDF2g@public.gmane.org>
2018-01-08 14:00     ` Sekhar Nori
2018-01-08 16:29       ` David Lechner
2018-01-09 12:35         ` Sekhar Nori
     [not found]           ` <0f90b5f7-f21e-5f81-1154-9a815bbb786d-l0cyMroinI0@public.gmane.org>
2018-01-10  3:01             ` David Lechner
2018-01-10 18:52               ` Sekhar Nori [this message]
2018-01-10 22:24                 ` Adam Ford
     [not found]                   ` <CAHCN7x+ZYezmEU_0mF=6_gF14DZxKnuDp1Cx=aC2=eN_QLNdJQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2018-01-11  2:50                     ` David Lechner
2018-01-11 12:45                       ` Adam Ford
2018-01-11 15:47                         ` Sekhar Nori
     [not found]                           ` <14320e05-c6f7-fa2d-35cd-c01414c59f2f-l0cyMroinI0@public.gmane.org>
2018-01-11 16:14                             ` Adam Ford
2018-01-11 17:22                         ` David Lechner
2018-01-11 18:09                           ` Adam Ford
2018-01-11 18:29                             ` David Lechner
2018-01-11 18:50                               ` Adam Ford
     [not found]                                 ` <CAHCN7x+G5pxOeD7TahqiQUePEu1Z4Hyinkjq_bcSM+Hz36xoSg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2018-01-11 20:04                                   ` David Lechner
2018-01-11 20:58                                     ` Adam Ford
     [not found]                                       ` <CAHCN7x+EtQs6NHAYbVga7vU1U+qQLqOxdf+1MW6HewaT+ZF_Xg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2018-01-11 21:04                                         ` David Lechner
     [not found]                                           ` <5832fd62-16aa-e167-7e52-2ce493e33cdc-nq/r/kbU++upp/zk7JDF2g@public.gmane.org>
2018-01-11 21:34                                             ` Adam Ford
2018-01-11 21:46                                               ` David Lechner
     [not found]                                                 ` <c1e27013-cbad-3b09-0e0d-f68d75162c1f-nq/r/kbU++upp/zk7JDF2g@public.gmane.org>
2018-01-12  6:03                                                   ` Sekhar Nori
2018-01-16 11:22                                               ` Sekhar Nori
2018-01-16 12:21                                                 ` Adam Ford
2018-01-16 16:41                                                   ` David Lechner
2018-01-11 23:20                             ` David Lechner
2018-01-11  2:54                 ` David Lechner
2018-01-08  2:17 ` [PATCH v5 02/44] clk: davinci: New driver for davinci " David Lechner
2018-01-12  9:21   ` Sekhar Nori
2018-01-12 15:25     ` David Lechner
     [not found]       ` <01fbde0e-36a0-2b19-e385-e63bc4a3ae4a-nq/r/kbU++upp/zk7JDF2g@public.gmane.org>
2018-01-12 15:30         ` Adam Ford
     [not found]           ` <CAHCN7xK44_zv27xe5yxL8Efey=VC-nypK6hY6VWqsoLqnKe04g-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2018-01-12 15:48             ` David Lechner
2018-01-12 16:18       ` Sekhar Nori
     [not found]         ` <eb2b1a63-9c7c-aeca-170f-d38642442438-l0cyMroinI0@public.gmane.org>
2018-01-13  1:11           ` David Lechner
2018-01-16  6:48             ` Sekhar Nori
2018-01-13  2:13     ` David Lechner
2018-01-16  6:32       ` Sekhar Nori
2018-01-08  2:17 ` [PATCH v5 03/44] clk: davinci: Add platform information for TI DA830 PLL David Lechner
     [not found]   ` <1515377863-20358-4-git-send-email-david-nq/r/kbU++upp/zk7JDF2g@public.gmane.org>
2018-01-12  9:41     ` Sekhar Nori
2018-01-08  2:17 ` [PATCH v5 04/44] clk: davinci: Add platform information for TI DA850 PLL David Lechner
2018-01-16  8:37   ` Sekhar Nori
2018-01-08  2:17 ` [PATCH v5 05/44] clk: davinci: Add platform information for TI DM355 PLL David Lechner
2018-01-16  8:38   ` Sekhar Nori
2018-01-08  2:17 ` [PATCH v5 06/44] clk: davinci: Add platform information for TI DM365 PLL David Lechner
     [not found]   ` <1515377863-20358-7-git-send-email-david-nq/r/kbU++upp/zk7JDF2g@public.gmane.org>
2018-01-16  8:48     ` Sekhar Nori
2018-01-08  2:17 ` [PATCH v5 07/44] clk: davinci: Add platform information for TI DM644x PLL David Lechner
     [not found]   ` <1515377863-20358-8-git-send-email-david-nq/r/kbU++upp/zk7JDF2g@public.gmane.org>
2018-01-16  8:56     ` Sekhar Nori
2018-01-08  2:17 ` [PATCH v5 08/44] clk: davinci: Add platform information for TI DM646x PLL David Lechner
2018-01-16  9:01   ` Sekhar Nori
2018-01-08  2:17 ` [PATCH v5 09/44] dt-bindings: clock: New bindings for TI Davinci PSC David Lechner
     [not found]   ` <1515377863-20358-10-git-send-email-david-nq/r/kbU++upp/zk7JDF2g@public.gmane.org>
2018-01-11 21:22     ` Rob Herring
2018-01-08  2:17 ` [PATCH v5 10/44] clk: davinci: New driver for davinci PSC clocks David Lechner
2018-01-16 11:03   ` Sekhar Nori
2018-01-16 16:51     ` David Lechner
     [not found]       ` <83f3d207-9645-cbdf-d6cf-b6e6a8458abe-nq/r/kbU++upp/zk7JDF2g@public.gmane.org>
2018-01-17 12:25         ` Sekhar Nori
2018-01-17 17:28           ` David Lechner
2018-01-08  2:17 ` [PATCH v5 11/44] clk: davinci: Add platform information for TI DA830 PSC David Lechner
     [not found]   ` <1515377863-20358-12-git-send-email-david-nq/r/kbU++upp/zk7JDF2g@public.gmane.org>
2018-01-16 13:38     ` Sekhar Nori
     [not found]       ` <91fe16dc-907e-6dbb-c8db-c27561132093-l0cyMroinI0@public.gmane.org>
2018-01-16 17:16         ` David Lechner
     [not found]           ` <4dd36ca7-e41d-58d8-ec8c-787978307943-nq/r/kbU++upp/zk7JDF2g@public.gmane.org>
2018-01-17 12:18             ` Sekhar Nori
     [not found]               ` <86581de6-a982-7a7b-9a83-22c869417211-l0cyMroinI0@public.gmane.org>
2018-01-17 17:32                 ` David Lechner
2018-01-18  7:53                   ` Sekhar Nori
     [not found] ` <1515377863-20358-1-git-send-email-david-nq/r/kbU++upp/zk7JDF2g@public.gmane.org>
2018-01-08  2:17   ` [PATCH v5 12/44] clk: davinci: Add platform information for TI DA850 PSC David Lechner
     [not found]     ` <1515377863-20358-13-git-send-email-david-nq/r/kbU++upp/zk7JDF2g@public.gmane.org>
2018-01-16 14:00       ` Sekhar Nori
2018-01-16 17:21         ` David Lechner
2018-01-17 11:57           ` Sekhar Nori
2018-01-17 17:33             ` David Lechner
2018-01-17 19:08             ` David Lechner
2018-01-18  6:37               ` Sekhar Nori
2018-02-09 16:22     ` Bartosz Golaszewski
2018-02-09 16:48       ` Michael Turquette
2018-02-12  3:03         ` David Lechner
2018-04-05 13:09         ` Sekhar Nori
2018-04-05 13:44           ` Bartosz Golaszewski
2018-04-05 14:36             ` Sekhar Nori
2018-04-05 15:37               ` David Lechner
2018-04-05 15:51               ` Bartosz Golaszewski
2018-04-06  9:37                 ` Sekhar Nori
2018-04-06 16:46                   ` Stephen Boyd
2018-04-23 14:59                     ` David Lechner
2018-04-24  8:28                       ` Sekhar Nori
2018-04-24 16:11                         ` David Lechner
2018-04-25  6:07                           ` Sekhar Nori
2018-04-25 10:09                             ` Bartosz Golaszewski
2018-04-25 10:26                               ` Bartosz Golaszewski
2018-01-08  2:17   ` [PATCH v5 13/44] clk: davinci: Add platform information for TI DM355 PSC David Lechner
     [not found]     ` <1515377863-20358-14-git-send-email-david-nq/r/kbU++upp/zk7JDF2g@public.gmane.org>
2018-01-16 14:15       ` Sekhar Nori
2018-01-08  2:17 ` [PATCH v5 14/44] clk: davinci: Add platform information for TI DM365 PSC David Lechner
2018-01-16 14:16   ` Sekhar Nori
2018-01-08  2:17 ` [PATCH v5 15/44] clk: davinci: Add platform information for TI DM644x PSC David Lechner
2018-01-17 13:57   ` Sekhar Nori
2018-01-08  2:17 ` [PATCH v5 16/44] clk: davinci: Add platform information for TI DM646x PSC David Lechner
2018-01-17 14:59   ` Sekhar Nori
2018-01-08  2:17 ` [PATCH v5 17/44] dt-bindings: clock: Add bindings for DA8XX CFGCHIP gate clocks David Lechner
     [not found]   ` <1515377863-20358-18-git-send-email-david-nq/r/kbU++upp/zk7JDF2g@public.gmane.org>
2018-01-11 21:45     ` Rob Herring
2018-01-11 21:51       ` David Lechner
2018-01-08  2:17 ` [PATCH v5 18/44] dt-bindings: clock: Add binding for TI DA8XX CFGCHIP mux clocks David Lechner
2018-01-08  2:17 ` [PATCH v5 19/44] clk: davinci: New driver for TI DA8XX CFGCHIP clocks David Lechner
2018-01-17 15:31   ` Sekhar Nori
2018-01-17 17:35     ` David Lechner
2018-01-08  2:17 ` [PATCH v5 20/44] dt-bindings: clock: Add bindings for TI DA8XX USB PHY clocks David Lechner
2018-01-18 12:10   ` Sekhar Nori
     [not found]     ` <33f0feba-adee-e365-54d5-16fe3d49302d-l0cyMroinI0@public.gmane.org>
2018-01-18 19:00       ` David Lechner
2018-01-19  6:17         ` Sekhar Nori
2018-01-08  2:17 ` [PATCH v5 21/44] clk: davinci: New driver " David Lechner
2018-01-18 13:05   ` Sekhar Nori
     [not found]     ` <493e4809-6b77-7772-70c7-ad0fa04e9033-l0cyMroinI0@public.gmane.org>
2018-01-18 18:49       ` David Lechner
2018-01-19  5:04         ` Sekhar Nori
2018-01-08  2:17 ` [PATCH v5 22/44] ARM: davinci: move davinci_clk_init() to init_time David Lechner
2018-01-08  2:17 ` [PATCH v5 23/44] ARM: da830: add new clock init using common clock framework David Lechner
2018-01-08  2:17 ` [PATCH v5 24/44] ARM: da850: " David Lechner
     [not found]   ` <1515377863-20358-25-git-send-email-david-nq/r/kbU++upp/zk7JDF2g@public.gmane.org>
2018-01-18 15:24     ` Sekhar Nori
2018-01-08  2:17 ` [PATCH v5 25/44] ARM: dm355: " David Lechner
2018-01-08  2:17 ` [PATCH v5 26/44] ARM: dm365: " David Lechner
2018-01-08  2:17 ` [PATCH v5 27/44] ARM: dm644x: " David Lechner
2018-01-08  2:17 ` [PATCH v5 28/44] ARM: dm646x: " David Lechner
2018-01-08  2:17 ` [PATCH v5 29/44] ARM: da8xx: add new USB PHY " David Lechner
2018-01-18 15:14   ` Sekhar Nori
     [not found]     ` <83dfab9a-be30-6313-d756-50fa018e757e-l0cyMroinI0@public.gmane.org>
2018-01-18 18:43       ` David Lechner
2018-01-19  5:08         ` Sekhar Nori
2018-01-08  2:17 ` [PATCH v5 35/44] ARM: da850: Remove legacy clock init David Lechner

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=5aacc350-6236-2e4f-35bb-a681fc9d47e7@ti.com \
    --to=nsekhar@ti.com \
    --cc=aford173@gmail.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: 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).