public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Christian Marangi <ansuelsmth@gmail.com>
To: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Cc: Rob Herring <robh+dt@kernel.org>,
	Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org>,
	Andy Gross <agross@kernel.org>,
	Bjorn Andersson <andersson@kernel.org>,
	Konrad Dybcio <konrad.dybcio@linaro.org>,
	Michael Turquette <mturquette@baylibre.com>,
	Stephen Boyd <sboyd@kernel.org>,
	devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
	linux-arm-msm@vger.kernel.org, linux-clk@vger.kernel.org,
	Krzysztof Kozlowski <krzk@kernel.org>,
	Rob Herring <robh@kernel.org>
Subject: Re: [PATCH v7 1/7] dt-bindings: clock: Convert qcom,krait-cc to yaml
Date: Mon, 16 Jan 2023 22:39:22 +0100	[thread overview]
Message-ID: <63c5c40b.050a0220.be3d1.dd0c@mx.google.com> (raw)
In-Reply-To: <E690C301-63D8-4563-8A82-43D2EB996D10@linaro.org>

On Mon, Jan 16, 2023 at 11:29:04PM +0200, Dmitry Baryshkov wrote:
> 16 января 2023 г. 23:20:17 GMT+02:00, Christian Marangi <ansuelsmth@gmail.com> пишет:
> >On Mon, Jan 16, 2023 at 11:14:10PM +0200, Dmitry Baryshkov wrote:
> >> On Mon, 16 Jan 2023 at 22:48, Christian Marangi <ansuelsmth@gmail.com> wrote:
> >> >
> >> > Convert qcom,krait-cc to yaml Documentation.
> >> >
> >> > Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
> >> > Reviewed-by: Krzysztof Kozlowski <krzk@kernel.org>
> >> > Acked-by: Rob Herring <robh@kernel.org>
> >> 
> >> I know this has been reviewed already. I checked again my apq8064
> >> branch and noticed that the bindings are not compatible with the
> >> apq8064. The SoC in question is a 4-core device, so this is what I had
> >> in mind:
> >> 
> >>        kraitcc: clock-controller {
> >>                compatible = "qcom,krait-cc-v1";
> >>                clocks = <&gcc PLL9>, /* hfpll0 */
> >>                         <&gcc PLL10>, /* hfpll1 */
> >>                         <&gcc PLL16>, /* hfpll2 */
> >>                         <&gcc PLL17>, /* hfpll3 */
> >>                         <&gcc PLL12>, /* hfpll_l2 */
> >>                         <&acc0>,
> >>                         <&acc1>,
> >>                         <&acc2>,
> >>                         <&acc3>,
> >>                         <&l2cc>;
> >>                clock-names = "hfpll0",
> >>                              "hfpll1",
> >>                              "hfpll2",
> >>                              "hfpll3",
> >>                              "hfpll_l2",
> >>                              "acpu0_aux",
> >>                              "acpu1_aux",
> >>                              "acpu2_aux",
> >>                              "acpu3_aux",
> >>                              "acpu_l2_aux";
> >>                #clock-cells = <1>;
> >>        };
> >> 
> >
> >Oh wow... Wasn't aware, but I wonder if a good idea would be to patch
> >the yaml if and when this series is merged? This is a direct conversion
> >of the krait-cc txt...
> >
> >If we really want I can send a v8 with adding these extra stuff to the
> >just converted yaml in a different commit? (afaik conversion should not
> >add more info if the documentation is not broken enough and can be
> >converted)
> 
> I think we can ask Bjorn to pick the rest of the patches (if they are acked/reviewed, they look good to me) and work on this one. It might make sense to add per-SoC compatibles. Also note, the qsb clock. Which block generates it on ipq8064?
>

The krait-cc driver is really very generic and modular so IMHO it
doesn't require different compatibiles... But now that I think about
it... It may be problematic to differentiate them for the clock
configuration...

Btw the qsb clk from krait-cc driver is still a fixed clock set to 1.
In hw side it's the bus clk and it's driven by rpm... (this link is
totally lacking from krait-cc and I think nobody was aware of this
(except old qcom)... To find out this I had to resurrect a pre-DT
migration driver that use the cxo clk to perform hw measurement of the
clk and I discovered that. (cpu and l2 clk can be measured and by
setting the mux to sourcing out of qsb you can notice that the freq will
always match the bus frequency)

But I got sidetracked by too much discoveries... ipq806x simply don't
have a krait-cc driver currently so the qsb doesn't apply...

My idea is to push kriat-cc node + opp node.

> >
> >> > ---
> >> >  .../bindings/clock/qcom,krait-cc.txt          | 34 -----------
> >> >  .../bindings/clock/qcom,krait-cc.yaml         | 59 +++++++++++++++++++
> >> >  2 files changed, 59 insertions(+), 34 deletions(-)
> >> >  delete mode 100644 Documentation/devicetree/bindings/clock/qcom,krait-cc.txt
> >> >  create mode 100644 Documentation/devicetree/bindings/clock/qcom,krait-cc.yaml
> >> >
> >> > diff --git a/Documentation/devicetree/bindings/clock/qcom,krait-cc.txt b/Documentation/devicetree/bindings/clock/qcom,krait-cc.txt
> >> > deleted file mode 100644
> >> > index 030ba60dab08..000000000000
> >> > --- a/Documentation/devicetree/bindings/clock/qcom,krait-cc.txt
> >> > +++ /dev/null
> >> > @@ -1,34 +0,0 @@
> >> > -Krait Clock Controller
> >> > -
> >> > -PROPERTIES
> >> > -
> >> > -- compatible:
> >> > -       Usage: required
> >> > -       Value type: <string>
> >> > -       Definition: must be one of:
> >> > -                       "qcom,krait-cc-v1"
> >> > -                       "qcom,krait-cc-v2"
> >> > -
> >> > -- #clock-cells:
> >> > -       Usage: required
> >> > -       Value type: <u32>
> >> > -       Definition: must be 1
> >> > -
> >> > -- clocks:
> >> > -       Usage: required
> >> > -       Value type: <prop-encoded-array>
> >> > -       Definition: reference to the clock parents of hfpll, secondary muxes.
> >> > -
> >> > -- clock-names:
> >> > -       Usage: required
> >> > -       Value type: <stringlist>
> >> > -       Definition: must be "hfpll0", "hfpll1", "acpu0_aux", "acpu1_aux", "qsb".
> >> > -
> >> > -Example:
> >> > -
> >> > -       kraitcc: clock-controller {
> >> > -               compatible = "qcom,krait-cc-v1";
> >> > -               clocks = <&hfpll0>, <&hfpll1>, <&acpu0_aux>, <&acpu1_aux>, <qsb>;
> >> > -               clock-names = "hfpll0", "hfpll1", "acpu0_aux", "acpu1_aux", "qsb";
> >> > -               #clock-cells = <1>;
> >> > -       };
> >> > diff --git a/Documentation/devicetree/bindings/clock/qcom,krait-cc.yaml b/Documentation/devicetree/bindings/clock/qcom,krait-cc.yaml
> >> > new file mode 100644
> >> > index 000000000000..8caa5a677394
> >> > --- /dev/null
> >> > +++ b/Documentation/devicetree/bindings/clock/qcom,krait-cc.yaml
> >> > @@ -0,0 +1,59 @@
> >> > +# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
> >> > +%YAML 1.2
> >> > +---
> >> > +$id: http://devicetree.org/schemas/clock/qcom,krait-cc.yaml#
> >> > +$schema: http://devicetree.org/meta-schemas/core.yaml#
> >> > +
> >> > +title: Qualcomm Krait Clock Controller
> >> > +
> >> > +maintainers:
> >> > +  - Christian Marangi <ansuelsmth@gmail.com>
> >> > +
> >> > +description: |
> >> > +  Qualcomm Krait Clock Controller used to correctly scale the CPU and the L2
> >> > +  rates.
> >> > +
> >> > +properties:
> >> > +  compatible:
> >> > +    enum:
> >> > +      - qcom,krait-cc-v1
> >> > +      - qcom,krait-cc-v2
> >> > +
> >> > +  clocks:
> >> > +    items:
> >> > +      - description: phandle to hfpll for CPU0 mux
> >> > +      - description: phandle to hfpll for CPU1 mux
> >> > +      - description: phandle to CPU0 aux clock
> >> > +      - description: phandle to CPU1 aux clock
> >> > +      - description: phandle to QSB fixed clk
> >> > +
> >> > +  clock-names:
> >> > +    items:
> >> > +      - const: hfpll0
> >> > +      - const: hfpll1
> >> > +      - const: acpu0_aux
> >> > +      - const: acpu1_aux
> >> > +      - const: qsb
> >> > +
> >> > +  '#clock-cells':
> >> > +    const: 1
> >> > +
> >> > +required:
> >> > +  - compatible
> >> > +  - clocks
> >> > +  - clock-names
> >> > +  - '#clock-cells'
> >> > +
> >> > +additionalProperties: false
> >> > +
> >> > +examples:
> >> > +  - |
> >> > +    clock-controller {
> >> > +      compatible = "qcom,krait-cc-v1";
> >> > +      clocks = <&hfpll0>, <&hfpll1>,
> >> > +               <&acpu0_aux>, <&acpu1_aux>, <&qsb>;
> >> > +      clock-names = "hfpll0", "hfpll1",
> >> > +                    "acpu0_aux", "acpu1_aux", "qsb";
> >> > +      #clock-cells = <1>;
> >> > +    };
> >> > +...
> >> > --
> >> > 2.37.2
> >> >
> >> 
> >> 
> >> -- 
> >> With best wishes
> >> Dmitry
> >
> 

-- 
	Ansuel

  reply	other threads:[~2023-01-16 21:39 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-01-16 20:47 [PATCH v7 0/7] Krait Documentation conversion Christian Marangi
2023-01-16 20:47 ` [PATCH v7 1/7] dt-bindings: clock: Convert qcom,krait-cc to yaml Christian Marangi
2023-01-16 21:14   ` Dmitry Baryshkov
2023-01-16 21:20     ` Christian Marangi
2023-01-16 21:29       ` Dmitry Baryshkov
2023-01-16 21:39         ` Christian Marangi [this message]
2023-01-16 20:47 ` [PATCH v7 2/7] dt-bindings: arm: msm: Convert and split kpss-acc driver Documentation " Christian Marangi
2023-01-18 16:05   ` Rob Herring
2023-01-16 20:47 ` [PATCH v7 3/7] dt-bindings: arm: msm: Rework kpss-gcc " Christian Marangi
2023-01-16 20:47 ` [PATCH v7 4/7] ARM: dts: qcom: add per SoC compatible for qcom,kpss-gcc nodes Christian Marangi
2023-01-16 20:47 ` [PATCH v7 5/7] ARM: dts: qcom: add and fix clock configuration for kpss-gcc nodes Christian Marangi
2023-01-16 21:05   ` Dmitry Baryshkov
2023-01-16 20:47 ` [PATCH v7 6/7] ARM: dts: qcom: add missing clock configuration for kpss-acc-v1 Christian Marangi
2023-01-16 20:47 ` [PATCH v7 7/7] ARM: dts: qcom: rename kpss-acc-v2 nodes to power-manager nodes Christian Marangi
2023-01-16 21:05   ` Dmitry Baryshkov
2023-03-16  3:20 ` (subset) [PATCH v7 0/7] Krait Documentation conversion Bjorn Andersson

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=63c5c40b.050a0220.be3d1.dd0c@mx.google.com \
    --to=ansuelsmth@gmail.com \
    --cc=agross@kernel.org \
    --cc=andersson@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=dmitry.baryshkov@linaro.org \
    --cc=konrad.dybcio@linaro.org \
    --cc=krzk@kernel.org \
    --cc=krzysztof.kozlowski+dt@linaro.org \
    --cc=linux-arm-msm@vger.kernel.org \
    --cc=linux-clk@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mturquette@baylibre.com \
    --cc=robh+dt@kernel.org \
    --cc=robh@kernel.org \
    --cc=sboyd@kernel.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