All of lore.kernel.org
 help / color / mirror / Atom feed
From: Paul Cercueil <paul@crapouillou.net>
To: Rob Herring <robh+dt@kernel.org>
Cc: "Daniel Lezcano" <daniel.lezcano@linaro.org>,
	"Thomas Gleixner" <tglx@linutronix.de>,
	"Mark Rutland" <mark.rutland@arm.com>,
	周琰杰 <zhouyanjie@wanyeetech.com>,
	od@zcrc.me, linux-kernel@vger.kernel.org,
	devicetree@vger.kernel.org
Subject: Re: [PATCH 1/1] dt-bindings: timer: Convert ingenic,tcu.txt to YAML
Date: Mon, 02 Mar 2020 15:24:41 -0300	[thread overview]
Message-ID: <1583173481.3.0@crapouillou.net> (raw)
In-Reply-To: <CAL_JsqKGzxdMj4_+i4ycKj6ZjiuGMY8F+yBzVPt_b2CLhrcdKg@mail.gmail.com>

Hi Rob,


Le lun., mars 2, 2020 at 11:06, Rob Herring <robh+dt@kernel.org> a 
écrit :
> On Sun, Mar 1, 2020 at 11:47 AM Paul Cercueil <paul@crapouillou.net> 
> wrote:
>> 
> 
> Well, this flew into linux-next quickly and breaks 'make
> dt_binding_check'... Please drop, revert or fix quickly.

For my defense I said to merge "provided Rob acks it" ;)

>>  Convert the ingenic,tcu.txt file to YAML.
>> 
>>  Signed-off-by: Paul Cercueil <paul@crapouillou.net>
>>  ---
>>   .../devicetree/bindings/timer/ingenic,tcu.txt | 138 ----------
>>   .../bindings/timer/ingenic,tcu.yaml           | 235 
>> ++++++++++++++++++
>>   2 files changed, 235 insertions(+), 138 deletions(-)
>>   delete mode 100644 
>> Documentation/devicetree/bindings/timer/ingenic,tcu.txt
>>   create mode 100644 
>> Documentation/devicetree/bindings/timer/ingenic,tcu.yaml
> 
> 
>>  diff --git 
>> a/Documentation/devicetree/bindings/timer/ingenic,tcu.yaml 
>> b/Documentation/devicetree/bindings/timer/ingenic,tcu.yaml
>>  new file mode 100644
>>  index 000000000000..1ded3b4762bb
>>  --- /dev/null
>>  +++ b/Documentation/devicetree/bindings/timer/ingenic,tcu.yaml
>>  @@ -0,0 +1,235 @@
>>  +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
>>  +%YAML 1.2
>>  +---
>>  +$id: http://devicetree.org/schemas/timer/ingenic,tcu.yaml#
>>  +$schema: http://devicetree.org/meta-schemas/core.yaml#
>>  +
>>  +title: Ingenic SoCs Timer/Counter Unit (TCU) devicetree bindings
>>  +
>>  +description: |
>>  +  For a description of the TCU hardware and drivers, have a look at
>>  +  Documentation/mips/ingenic-tcu.rst.
>>  +
>>  +maintainers:
>>  +  - Paul Cercueil <paul@crapouillou.net>
>>  +
>>  +properties:
>>  +  $nodename:
>>  +    pattern: "^timer@.*"
> 
> '.*' is redundant.
> 
>>  +
>>  +  "#address-cells":
>>  +    const: 1
>>  +
>>  +  "#size-cells":
>>  +    const: 1
>>  +
>>  +  "#clock-cells":
>>  +    const: 1
>>  +
>>  +  "#interrupt-cells":
>>  +    const: 1
>>  +
>>  +  interrupt-controller: true
>>  +
>>  +  ranges: true
>>  +
>>  +  compatible:
>>  +    items:
>>  +      - enum:
>>  +        - ingenic,jz4740-tcu
>>  +        - ingenic,jz4725b-tcu
>>  +        - ingenic,jz4770-tcu
>>  +        - ingenic,x1000-tcu
>>  +      - const: simple-mfd
> 
> This breaks several examples in dt_binding_check because this schema
> will be applied to every 'simple-mfd' node. You need a custom select
> entry that excludes 'simple-mfd'. There should be several examples in
> tree to copy.

Why would it be applied to all 'single-mfd' nodes? Doesn't what I wrote 
specify that it needs one of ingenic,*-tcu _and_ simple-mfd?

I'm not sure I understand what you mean.

I did grep for 'single-mfd' in all YAML files in Documentation/ and 
nothing really stands out.

-Paul

>>  +
>>  +  reg:
>>  +    maxItems: 1
>>  +
>>  +  clocks:
>>  +    items:
>>  +      - description: RTC clock
>>  +      - description: EXT clock
>>  +      - description: PCLK clock
>>  +      - description: TCU clock
>>  +    minItems: 3
>>  +
>>  +  clock-names:
>>  +    items:
>>  +      - const: rtc
>>  +      - const: ext
>>  +      - const: pclk
>>  +      - const: tcu
>>  +    minItems: 3
>>  +
>>  +  interrupts:
>>  +    minItems: 1
>>  +    maxItems: 3
> 
> You need to define what each one is.
> 
>>  +
>>  +  ingenic,pwm-channels-mask:
>>  +    description: Bitmask of TCU channels reserved for PWM use.
>>  +    allOf:
>>  +      - $ref: /schemas/types.yaml#/definitions/uint32
>>  +      - minimum: 0x00
>>  +      - maximum: 0xff
>>  +      - default: 0xfc
>>  +
>>  +patternProperties:
>>  +  "^watchdog@[a-f0-9]+$":
>>  +    type: object
>>  +    allOf: [ $ref: ../watchdog/watchdog.yaml# ]
>>  +    properties:
>>  +      compatible:
>>  +        oneOf:
>>  +          - enum:
>>  +            - ingenic,jz4740-watchdog
>>  +            - ingenic,jz4780-watchdog
>>  +          - items:
>>  +            - const: ingenic,jz4770-watchdog
>>  +            - const: ingenic,jz4740-watchdog
>>  +
>>  +      clocks:
>>  +        maxItems: 1
>>  +
>>  +      clock-names:
>>  +        const: wdt
>>  +
>>  +    required:
>>  +      - compatible
>>  +      - clocks
>>  +      - clock-names
>>  +
>>  +  "^pwm@[a-f0-9]+$":
>>  +    type: object
>>  +    allOf: [ $ref: ../pwm/pwm.yaml# ]
>>  +    properties:
>>  +      compatible:
>>  +        oneOf:
>>  +          - enum:
>>  +            - ingenic,jz4740-pwm
>>  +          - items:
>>  +            - enum:
>>  +              - ingenic,jz4770-pwm
>>  +              - ingenic,jz4780-pwm
>>  +            - const: ingenic,jz4740-pwm
>>  +
>>  +      clocks:
>>  +        minItems: 6
>>  +        maxItems: 8
>>  +
>>  +      clock-names:
>>  +        items:
>>  +          - const: timer0
>>  +          - const: timer1
>>  +          - const: timer2
>>  +          - const: timer3
>>  +          - const: timer4
>>  +          - const: timer5
>>  +          - const: timer6
>>  +          - const: timer7
>>  +        minItems: 6
>>  +
>>  +    required:
>>  +      - compatible
>>  +      - clocks
>>  +      - clock-names
>>  +
>>  +  "^timer@[a-f0-9]+":
>>  +    type: object
>>  +    properties:
>>  +      compatible:
>>  +        oneOf:
>>  +          - enum:
>>  +            - ingenic,jz4725b-ost
>>  +            - ingenic,jz4770-ost
>>  +          - items:
>>  +            - const: ingenic,jz4780-ost
>>  +            - const: ingenic,jz4770-ost
>>  +
>>  +
>>  +      clocks:
>>  +        maxItems: 1
>>  +
>>  +      clock-names:
>>  +        const: ost
>>  +
>>  +      interrupts:
>>  +        maxItems: 1
>>  +
>>  +    required:
>>  +      - compatible
>>  +      - clocks
>>  +      - clock-names
>>  +      - interrupts
>>  +
>>  +required:
>>  +  - "#clock-cells"
>>  +  - "#interrupt-cells"
>>  +  - interrupt-controller
>>  +  - compatible
>>  +  - reg
>>  +  - clocks
>>  +  - clock-names
>>  +  - interrupts
>>  +
>>  +additionalProperties: false
>>  +
>>  +examples:
>>  +  - |
>>  +    #include <dt-bindings/clock/jz4770-cgu.h>
>>  +    #include <dt-bindings/clock/ingenic,tcu.h>
>>  +    tcu: timer@10002000 {
>>  +      compatible = "ingenic,jz4770-tcu", "simple-mfd";
>>  +      reg = <0x10002000 0x1000>;
>>  +      #address-cells = <1>;
>>  +      #size-cells = <1>;
>>  +      ranges = <0x0 0x10002000 0x1000>;
>>  +
>>  +      #clock-cells = <1>;
>>  +
>>  +      clocks = <&cgu JZ4770_CLK_RTC>,
>>  +               <&cgu JZ4770_CLK_EXT>,
>>  +               <&cgu JZ4770_CLK_PCLK>;
>>  +      clock-names = "rtc", "ext", "pclk";
>>  +
>>  +      interrupt-controller;
>>  +      #interrupt-cells = <1>;
>>  +
>>  +      interrupt-parent = <&intc>;
>>  +      interrupts = <27 26 25>;
>>  +
>>  +      watchdog: watchdog@0 {
>>  +        compatible = "ingenic,jz4770-watchdog", 
>> "ingenic,jz4740-watchdog";
>>  +        reg = <0x0 0xc>;
>>  +
>>  +        clocks = <&tcu TCU_CLK_WDT>;
>>  +        clock-names = "wdt";
>>  +      };
>>  +
>>  +      pwm: pwm@40 {
>>  +        compatible = "ingenic,jz4770-pwm", "ingenic,jz4740-pwm";
>>  +        reg = <0x40 0x80>;
>>  +
>>  +        #pwm-cells = <3>;
>>  +
>>  +        clocks = <&tcu TCU_CLK_TIMER0>,
>>  +                 <&tcu TCU_CLK_TIMER1>,
>>  +                 <&tcu TCU_CLK_TIMER2>,
>>  +                 <&tcu TCU_CLK_TIMER3>,
>>  +                 <&tcu TCU_CLK_TIMER4>,
>>  +                 <&tcu TCU_CLK_TIMER5>,
>>  +                 <&tcu TCU_CLK_TIMER6>,
>>  +                 <&tcu TCU_CLK_TIMER7>;
>>  +        clock-names = "timer0", "timer1", "timer2", "timer3",
>>  +                "timer4", "timer5", "timer6", "timer7";
>>  +      };
>>  +
>>  +      ost: timer@e0 {
>>  +        compatible = "ingenic,jz4770-ost";
>>  +        reg = <0xe0 0x20>;
>>  +
>>  +        clocks = <&tcu TCU_CLK_OST>;
>>  +        clock-names = "ost";
>>  +
>>  +        interrupts = <15>;
>>  +      };
>>  +    };
>>  --
>>  2.25.1
>> 



  parent reply	other threads:[~2020-03-02 18:25 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-03-01 17:46 [PATCH 0/1] Convert ingenic,tcu.txt to YAML Paul Cercueil
2020-03-01 17:46 ` [PATCH 1/1] dt-bindings: timer: " Paul Cercueil
2020-03-02 17:06   ` Rob Herring
2020-03-02 17:41     ` Daniel Lezcano
2020-03-02 18:24     ` Paul Cercueil [this message]
2020-03-02 19:07       ` Rob Herring
2020-03-02 19:35         ` Paul Cercueil
2020-03-02 19:59           ` Rob Herring

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=1583173481.3.0@crapouillou.net \
    --to=paul@crapouillou.net \
    --cc=daniel.lezcano@linaro.org \
    --cc=devicetree@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mark.rutland@arm.com \
    --cc=od@zcrc.me \
    --cc=robh+dt@kernel.org \
    --cc=tglx@linutronix.de \
    --cc=zhouyanjie@wanyeetech.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.