All of lore.kernel.org
 help / color / mirror / Atom feed
From: Cixi Geng <gengcixi@gmail.com>
To: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Cc: Michael Turquette <mturquette@baylibre.com>,
	sboyd@kernel.org, Rob Herring <robh+dt@kernel.org>,
	krzysztof.kozlowski+dt@linaro.org,
	Orson Zhai <orsonzhai@gmail.com>,
	"baolin.wang7@gmail.com" <baolin.wang7@gmail.com>,
	Chunyan Zhang <zhang.lyra@gmail.com>,
	linux-clk@vger.kernel.org,
	Devicetree List <devicetree@vger.kernel.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH V3 1/3] dt-bindings: clk: sprd: Add bindings for ums512 clock controller
Date: Tue, 19 Apr 2022 09:53:37 +0800	[thread overview]
Message-ID: <CAF12kFv6uioc7ATtXLpGTTDBFT1wYWZUBoyjQqP1bSUnut0pKA@mail.gmail.com> (raw)
In-Reply-To: <714caf6e-5f81-6d73-7629-b2c675f1f1d4@linaro.org>

Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> 于2022年4月19日周二 00:28写道:
>
> On 18/04/2022 14:56, Cixi Geng wrote:
> > From: Cixi Geng <cixi.geng1@unisoc.com>
> >
> > Add a new bindings to describe ums512 clock compatible string.
> >
> > Signed-off-by: Cixi Geng <cixi.geng1@unisoc.com>
> > ---
> >  .../bindings/clock/sprd,ums512-clk.yaml       | 112 ++++++++++++++++++
> >  1 file changed, 112 insertions(+)
> >  create mode 100644 Documentation/devicetree/bindings/clock/sprd,ums512-clk.yaml
> >
> > diff --git a/Documentation/devicetree/bindings/clock/sprd,ums512-clk.yaml b/Documentation/devicetree/bindings/clock/sprd,ums512-clk.yaml
> > new file mode 100644
> > index 000000000000..89824d7c6be4
> > --- /dev/null
> > +++ b/Documentation/devicetree/bindings/clock/sprd,ums512-clk.yaml
> > @@ -0,0 +1,112 @@
> > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> > +# Copyright 2022 Unisoc Inc.
> > +%YAML 1.2
> > +---
> > +$id: "http://devicetree.org/schemas/clock/sprd,ums512-clk.yaml#"
> > +$schema: "http://devicetree.org/meta-schemas/core.yaml#"
> > +
> > +title: UMS512 Clock Control Unit Device Tree Bindings
>
> Remove "Device Tree Bindings". You could do the same also in the
> subject, because you repeat the prefix ("dt-bindings: clk: sprd: Add
> ums512 clock controller").
>
> > +
> > +maintainers:
> > +  - Orson Zhai <orsonzhai@gmail.com>
> > +  - Baolin Wang <baolin.wang7@gmail.com>
> > +  - Chunyan Zhang <zhang.lyra@gmail.com>
> > +
> > +properties:
> > +  "#clock-cells":
> > +    const: 1
> > +
> > +  compatible:
>
> Put the compatible first, by convention and makes finding matching
> bindings easier.
>
> > +    oneOf:
> > +      - items:
> > +          - const: sprd,ums512-glbregs
> > +          - const: syscon
> > +          - const: simple-mfd
>
> Why do you need simple-mfd for these? This looks like a regular syscon,
> so usually does not come with children. What is more, why this "usual
> syscon" is a separate clock controller in these bindings?
there is a warning log before add these const.  and the reason we need
the simply-mfd
is some clock is a child of syscon node,which should set these compatible.
failed to match any schema with compatible: ['sprd,ums512-glbregs',
'syscon', 'simple-mfd']
>
> > +      - items:
> > +          - enum:
> > +              - sprd,ums512-apahb-gate
> > +              - sprd,ums512-ap-clk
> > +              - sprd,ums512-aonapb-clk
> > +              - sprd,ums512-pmu-gate
> > +              - sprd,ums512-g0-pll
> > +              - sprd,ums512-g2-pll
> > +              - sprd,ums512-g3-pll
> > +              - sprd,ums512-gc-pll
> > +              - sprd,ums512-aon-gate
> > +              - sprd,ums512-audcpapb-gate
> > +              - sprd,ums512-audcpahb-gate
> > +              - sprd,ums512-gpu-clk
> > +              - sprd,ums512-mm-clk
> > +              - sprd,ums512-mm-gate-clk
> > +              - sprd,ums512-apapb-gate
> > +
> > +  clocks:
> > +    minItems: 1
>
> maxItems needed
the previous version did has the maxitems, but makes error when run
'make DT_CHECKER_FLAGS=-m dt_binding_check O=./dt-out  \
DT_SCHEMA_FILES=Documentation/devicetree/bindings/clock/sprd,ums512-clk.yaml'
  CHKDT   Documentation/devicetree/bindings/processed-schema.json
/path-to-linux/Documentation/devicetree/bindings/clock/sprd,ums512-clk.yaml:
properties:clock-names: {'minItems': 1, 'maxItems': 4, 'items':
[{'const': 'ext-26m'}, {'const': 'ext-32k'}, {'const': 'ext-4m'},
{'const': 'rco-100m'}]} should not be valid under {'required':
['maxItems']}
hint: "maxItems" is not needed with an "items" list

>
> > +    description: |
> > +      The input parent clock(s) phandle for this clock, only list fixed
> > +      clocks which are declared in devicetree.
>
> The description does not make sense. These are bindings for a clock
> controller, but you say here "for this clock", so what does "this" mean
> here?
>
> > +
> > +  clock-names:
> > +    minItems: 1
> > +    items:
> > +      - const: ext-26m
> > +      - const: ext-32k
> > +      - const: ext-4m
> > +      - const: rco-100m
> > +
> > +  reg:
> > +    maxItems: 1
> > +
> > +required:
> > +  - compatible
> > +  - '#clock-cells'
>
> Isn't reg also required? Always? Do you have examples where it is not
> required? How do you configure the clocks without "reg"? I see you
> copied a lot from sprd,sc9863a-clk.yaml but that file does not look correct.
>
> You have nodes with reg but without unit address ("rpll"). These nodes
> are modeled as children but they are not children - it's a workaround
> for exposing syscon, isn't it? The sc9863a looks like broken design, so
> please do not duplicate it here.
>
> > +
> > +if:
> > +  properties:
> > +    compatible:
> > +      enum:
> > +        - sprd,ums512-ap-clk
> > +        - sprd,ums512-aonapb-clk
> > +        - sprd,ums512-mm-clk
> > +then:
> > +  required:
> > +    - reg
> > +
> > +else:
> > +  description: |
> > +    Other UMS512 clock nodes should be the child of a syscon node in
> > +    which compatible string should be:
> > +            "sprd,ums512-glbregs", "syscon", "simple-mfd"
> > +
> > +    The 'reg' property for the clock node is also required if there is a sub
> > +    range of registers for the clocks.
> > +
> > +additionalProperties: true
>
> false
the "false" makes error log:
/path-to-linux/Documentation/devicetree/bindings/clock/sprd,ums512-clk.example.dtb:
syscon@71000000: '#address-cells', '#size-cells',
'clock-controller@0', 'ranges' do not match any of the regexes:
'pinctrl-[0-9]+'
and I reference the patch
[https://www.spinics.net/lists/linux-leds/msg17032.html]

>
> > +
> > +examples:
> > +  - |
> > +    ap_clk: clock-controller@20200000 {
> > +      compatible = "sprd,ums512-ap-clk";
> > +      reg = <0x20200000 0x1000>;
> > +      clocks = <&ext_26m>;
> > +      clock-names = "ext-26m";
> > +      #clock-cells = <1>;
> > +    };
> > +
> > +  - |
> > +    ap_apb_regs: syscon@71000000 {
> > +      compatible = "sprd,ums512-glbregs", "syscon", "simple-mfd";
>
> So here is the answer why you added MFD, but I still don't get why do
> you need it for one child? It is quite a dance here and in your drivers,
> instead of adding "syscon" to your clock controller.

[1]in the if/else describtion,  th other UMS512 clock nodes should be
the child of a syscon node in
which compatible string should be:   "sprd,ums512-glbregs", "syscon",
"simple-mfd"

>
> This also pollutes the actual bindings because you did not add
> properties required for clock controllers, because of describing here
> the syscon part.
>
> > +      reg = <0x71000000 0x3000>;
> > +      #address-cells = <1>;
> > +      #size-cells = <1>;
> > +      #clock-cells = <1>;
> > +      ranges = <0 0x71000000 0x3000>;
> > +
> > +      apahb_gate: clock-controller@0 {
> > +        compatible = "sprd,ums512-apahb-gate";
> > +        reg = <0x0 0x2000>;
> > +        #clock-cells = <1>;
> > +      };
> > +    };
> > +
> > +...
>
>
> Best regards,
> Krzysztof

  reply	other threads:[~2022-04-19  1:54 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-04-18 12:56 [PATCH V3 0/3] Add ums512 clocks and relative bindings file Cixi Geng
2022-04-18 12:56 ` [PATCH V3 1/3] dt-bindings: clk: sprd: Add bindings for ums512 clock controller Cixi Geng
2022-04-18 16:28   ` Krzysztof Kozlowski
2022-04-19  1:53     ` Cixi Geng [this message]
2022-04-19  6:38       ` Krzysztof Kozlowski
2022-04-24  3:14         ` Cixi Geng
2022-04-24 10:07           ` Krzysztof Kozlowski
2022-04-24 10:47         ` Cixi Geng
2022-04-24 11:20           ` Krzysztof Kozlowski
2022-04-24 14:22             ` Cixi Geng
2022-04-24 14:30               ` Krzysztof Kozlowski
2022-04-24 15:12                 ` Cixi Geng
2022-04-25  9:00                   ` Krzysztof Kozlowski
2022-04-26  5:40                     ` Cixi Geng
2022-04-27  6:13                       ` Krzysztof Kozlowski
2022-04-18 12:56 ` [PATCH V3 2/3] clk: sprd: Add dt-bindings include file for UMS512 Cixi Geng
2022-04-18 16:14   ` Krzysztof Kozlowski
2022-04-18 12:56 ` [PATCH V3 3/3] clk: sprd: Add clocks support " Cixi Geng

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=CAF12kFv6uioc7ATtXLpGTTDBFT1wYWZUBoyjQqP1bSUnut0pKA@mail.gmail.com \
    --to=gengcixi@gmail.com \
    --cc=baolin.wang7@gmail.com \
    --cc=devicetree@vger.kernel.org \
    --cc=krzysztof.kozlowski+dt@linaro.org \
    --cc=krzysztof.kozlowski@linaro.org \
    --cc=linux-clk@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mturquette@baylibre.com \
    --cc=orsonzhai@gmail.com \
    --cc=robh+dt@kernel.org \
    --cc=sboyd@kernel.org \
    --cc=zhang.lyra@gmail.com \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.