[v2] dt-bindings: irqchip: renesas-irqc: convert bindings to json-schema
diff mbox series

Message ID 1568819121-32737-1-git-send-email-ykaneko0929@gmail.com
State Superseded
Delegated to: Geert Uytterhoeven
Headers show
Series
  • [v2] dt-bindings: irqchip: renesas-irqc: convert bindings to json-schema
Related show

Commit Message

Yoshihiro Kaneko Sept. 18, 2019, 3:05 p.m. UTC
Convert Renesas Interrupt Controller bindings documentation to json-schema.

Signed-off-by: Yoshihiro Kaneko <ykaneko0929@gmail.com>
---

v2
- Add SPDX tag.
- Document interrupt-contoller, reg, interrupts, power-domains and resets
  properties.
- Add addtionalProperties.

---
 .../bindings/interrupt-controller/renesas,irqc.txt | 48 -------------
 .../interrupt-controller/renesas,irqc.yaml         | 84 ++++++++++++++++++++++
 2 files changed, 84 insertions(+), 48 deletions(-)
 delete mode 100644 Documentation/devicetree/bindings/interrupt-controller/renesas,irqc.txt
 create mode 100644 Documentation/devicetree/bindings/interrupt-controller/renesas,irqc.yaml

Comments

Simon Horman Sept. 19, 2019, 12:03 p.m. UTC | #1
On Thu, Sep 19, 2019 at 12:05:21AM +0900, Yoshihiro Kaneko wrote:
> Convert Renesas Interrupt Controller bindings documentation to json-schema.
> 
> Signed-off-by: Yoshihiro Kaneko <ykaneko0929@gmail.com>
> ---
> 
> v2
> - Add SPDX tag.
> - Document interrupt-contoller, reg, interrupts, power-domains and resets
>   properties.
> - Add addtionalProperties.
> 
> ---
>  .../bindings/interrupt-controller/renesas,irqc.txt | 48 -------------
>  .../interrupt-controller/renesas,irqc.yaml         | 84 ++++++++++++++++++++++
>  2 files changed, 84 insertions(+), 48 deletions(-)
>  delete mode 100644 Documentation/devicetree/bindings/interrupt-controller/renesas,irqc.txt
>  create mode 100644 Documentation/devicetree/bindings/interrupt-controller/renesas,irqc.yaml
> 
> diff --git a/Documentation/devicetree/bindings/interrupt-controller/renesas,irqc.txt b/Documentation/devicetree/bindings/interrupt-controller/renesas,irqc.txt
> deleted file mode 100644
> index f977ea7..0000000
> --- a/Documentation/devicetree/bindings/interrupt-controller/renesas,irqc.txt
> +++ /dev/null
> @@ -1,48 +0,0 @@
> -DT bindings for the R-Mobile/R-Car/RZ/G interrupt controller
> -
> -Required properties:
> -
> -- compatible: must be "renesas,irqc-<soctype>" or "renesas,intc-ex-<soctype>",
> -	      and "renesas,irqc" as fallback.
> -  Examples with soctypes are:
> -    - "renesas,irqc-r8a73a4" (R-Mobile APE6)
> -    - "renesas,irqc-r8a7743" (RZ/G1M)
> -    - "renesas,irqc-r8a7744" (RZ/G1N)
> -    - "renesas,irqc-r8a7745" (RZ/G1E)
> -    - "renesas,irqc-r8a77470" (RZ/G1C)
> -    - "renesas,irqc-r8a7790" (R-Car H2)
> -    - "renesas,irqc-r8a7791" (R-Car M2-W)
> -    - "renesas,irqc-r8a7792" (R-Car V2H)
> -    - "renesas,irqc-r8a7793" (R-Car M2-N)
> -    - "renesas,irqc-r8a7794" (R-Car E2)
> -    - "renesas,intc-ex-r8a774a1" (RZ/G2M)
> -    - "renesas,intc-ex-r8a774c0" (RZ/G2E)
> -    - "renesas,intc-ex-r8a7795" (R-Car H3)
> -    - "renesas,intc-ex-r8a7796" (R-Car M3-W)
> -    - "renesas,intc-ex-r8a77965" (R-Car M3-N)
> -    - "renesas,intc-ex-r8a77970" (R-Car V3M)
> -    - "renesas,intc-ex-r8a77980" (R-Car V3H)
> -    - "renesas,intc-ex-r8a77990" (R-Car E3)
> -    - "renesas,intc-ex-r8a77995" (R-Car D3)
> -- #interrupt-cells: has to be <2>: an interrupt index and flags, as defined in
> -  interrupts.txt in this directory
> -- clocks: Must contain a reference to the functional clock.
> -
> -Optional properties:
> -
> -- any properties, listed in interrupts.txt, and any standard resource allocation
> -  properties
> -
> -Example:
> -
> -	irqc0: interrupt-controller@e61c0000 {
> -		compatible = "renesas,irqc-r8a7790", "renesas,irqc";
> -		#interrupt-cells = <2>;
> -		interrupt-controller;
> -		reg = <0 0xe61c0000 0 0x200>;
> -		interrupts = <0 0 IRQ_TYPE_LEVEL_HIGH>,
> -			     <0 1 IRQ_TYPE_LEVEL_HIGH>,
> -			     <0 2 IRQ_TYPE_LEVEL_HIGH>,
> -			     <0 3 IRQ_TYPE_LEVEL_HIGH>;
> -		clocks = <&mstp4_clks R8A7790_CLK_IRQC>;
> -	};
> diff --git a/Documentation/devicetree/bindings/interrupt-controller/renesas,irqc.yaml b/Documentation/devicetree/bindings/interrupt-controller/renesas,irqc.yaml
> new file mode 100644
> index 0000000..18497c3
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/interrupt-controller/renesas,irqc.yaml
> @@ -0,0 +1,84 @@
> +# SPDX-License-Identifier: GPL-2.0
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/interrupt-controller/renesas,irqc.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: DT bindings for the R-Mobile/R-Car/RZ/G interrupt controller
> +
> +maintainers:
> +  - Geert Uytterhoeven <geert+renesas@glider.be>
> +
> +properties:
> +  compatible:
> +    items:
> +      - enum:
> +          - renesas,irqc-r8a73a4        # R-Mobile APE6
> +          - renesas,irqc-r8a7743        # RZ/G1M
> +          - renesas,irqc-r8a7744        # RZ/G1N
> +          - renesas,irqc-r8a7745        # RZ/G1E
> +          - renesas,irqc-r8a77470       # RZ/G1C
> +          - renesas,irqc-r8a7790        # R-Car H2
> +          - renesas,irqc-r8a7791        # R-Car M2-W
> +          - renesas,irqc-r8a7792        # R-Car V2H
> +          - renesas,irqc-r8a7793        # R-Car M2-N
> +          - renesas,irqc-r8a7794        # R-Car E2
> +          - renesas,intc-ex-r8a774a1    # RZ/G2M
> +          - renesas,intc-ex-r8a774c0    # RZ/G2E
> +          - renesas,intc-ex-r8a7795     # R-Car H3
> +          - renesas,intc-ex-r8a7796     # R-Car M3-W
> +          - renesas,intc-ex-r8a77965    # R-Car M3-N
> +          - renesas,intc-ex-r8a77970    # R-Car V3M
> +          - renesas,intc-ex-r8a77980    # R-Car V3H
> +          - renesas,intc-ex-r8a77990    # R-Car E3
> +          - renesas,intc-ex-r8a77995    # R-Car D3
> +      - const: renesas,irqc
> +
> +  '#interrupt-cells':
> +    # an interrupt index and flags, as defined in interrupts.txt in
> +    # this directory
> +    const: 2
> +
> +  interrupt-controller: true
> +
> +  reg:
> +    maxItems: 1
> +
> +  interrupts:
> +    minItems: 1
> +    maxItems: 32

Is 'interrupts' required?

> +
> +  clocks:
> +    maxItems: 1
> +
> +  power-domains:
> +    maxItems: 1
> +
> +  resets:
> +    maxItems: 1
> +
> +required:
> +  - compatible
> +  - '#interrupt-cells'
> +  - interrupt-controller
> +  - reg
> +  - clocks
> +
> +additionalProperties: false
> +
> +examples:
> +  - |
> +    #include <dt-bindings/interrupt-controller/irq.h>
> +    #include <dt-bindings/clock/r8a7790-clock.h>
> +
> +    irqc0: interrupt-controller@e61c0000 {
> +        compatible = "renesas,irqc-r8a7790", "renesas,irqc";
> +        #interrupt-cells = <2>;
> +        interrupt-controller;
> +        reg = <0 0xe61c0000 0 0x200>;
> +        interrupts = <0 0 IRQ_TYPE_LEVEL_HIGH>,
> +                     <0 1 IRQ_TYPE_LEVEL_HIGH>,
> +                     <0 2 IRQ_TYPE_LEVEL_HIGH>,
> +                     <0 3 IRQ_TYPE_LEVEL_HIGH>;
> +        clocks = <&mstp4_clks R8A7790_CLK_IRQC>;
> +    };
> -- 
> 1.9.1
>
Geert Uytterhoeven Sept. 19, 2019, 12:14 p.m. UTC | #2
Hi Simon,

On Thu, Sep 19, 2019 at 2:03 PM Simon Horman <horms@verge.net.au> wrote:
> On Thu, Sep 19, 2019 at 12:05:21AM +0900, Yoshihiro Kaneko wrote:
> > Convert Renesas Interrupt Controller bindings documentation to json-schema.
> >
> > Signed-off-by: Yoshihiro Kaneko <ykaneko0929@gmail.com>

> > --- /dev/null
> > +++ b/Documentation/devicetree/bindings/interrupt-controller/renesas,irqc.yaml
> > @@ -0,0 +1,84 @@
> > +# SPDX-License-Identifier: GPL-2.0
> > +%YAML 1.2
> > +---
> > +$id: http://devicetree.org/schemas/interrupt-controller/renesas,irqc.yaml#
> > +$schema: http://devicetree.org/meta-schemas/core.yaml#
> > +
> > +title: DT bindings for the R-Mobile/R-Car/RZ/G interrupt controller
> > +
> > +maintainers:
> > +  - Geert Uytterhoeven <geert+renesas@glider.be>
> > +
> > +properties:
> > +  compatible:
> > +    items:
> > +      - enum:
> > +          - renesas,irqc-r8a73a4        # R-Mobile APE6
> > +          - renesas,irqc-r8a7743        # RZ/G1M
> > +          - renesas,irqc-r8a7744        # RZ/G1N
> > +          - renesas,irqc-r8a7745        # RZ/G1E
> > +          - renesas,irqc-r8a77470       # RZ/G1C
> > +          - renesas,irqc-r8a7790        # R-Car H2
> > +          - renesas,irqc-r8a7791        # R-Car M2-W
> > +          - renesas,irqc-r8a7792        # R-Car V2H
> > +          - renesas,irqc-r8a7793        # R-Car M2-N
> > +          - renesas,irqc-r8a7794        # R-Car E2
> > +          - renesas,intc-ex-r8a774a1    # RZ/G2M
> > +          - renesas,intc-ex-r8a774c0    # RZ/G2E
> > +          - renesas,intc-ex-r8a7795     # R-Car H3
> > +          - renesas,intc-ex-r8a7796     # R-Car M3-W
> > +          - renesas,intc-ex-r8a77965    # R-Car M3-N
> > +          - renesas,intc-ex-r8a77970    # R-Car V3M
> > +          - renesas,intc-ex-r8a77980    # R-Car V3H
> > +          - renesas,intc-ex-r8a77990    # R-Car E3
> > +          - renesas,intc-ex-r8a77995    # R-Car D3
> > +      - const: renesas,irqc
> > +
> > +  '#interrupt-cells':
> > +    # an interrupt index and flags, as defined in interrupts.txt in
> > +    # this directory
> > +    const: 2
> > +
> > +  interrupt-controller: true
> > +
> > +  reg:
> > +    maxItems: 1
> > +
> > +  interrupts:
> > +    minItems: 1
> > +    maxItems: 32
>
> Is 'interrupts' required?

Yes, there must be one upstream interrupt for each supported interrupt input.
The number of inputs is SoC-specific.

> > +examples:
> > +  - |
> > +    #include <dt-bindings/interrupt-controller/irq.h>
> > +    #include <dt-bindings/clock/r8a7790-clock.h>
> > +
> > +    irqc0: interrupt-controller@e61c0000 {
> > +        compatible = "renesas,irqc-r8a7790", "renesas,irqc";
> > +        #interrupt-cells = <2>;
> > +        interrupt-controller;
> > +        reg = <0 0xe61c0000 0 0x200>;
> > +        interrupts = <0 0 IRQ_TYPE_LEVEL_HIGH>,
> > +                     <0 1 IRQ_TYPE_LEVEL_HIGH>,
> > +                     <0 2 IRQ_TYPE_LEVEL_HIGH>,
> > +                     <0 3 IRQ_TYPE_LEVEL_HIGH>;

While at it, one may want to replace s/0/GIC_SPI/.

> > +        clocks = <&mstp4_clks R8A7790_CLK_IRQC>;

and update clocks for the new CPG/MSTP bindings.

> > +    };

Gr{oetje,eeting}s,

                        Geert
Yoshihiro Kaneko Sept. 19, 2019, 4:08 p.m. UTC | #3
Hi Geert-san,

Thanks for your review.
I will update this patch.

2019年9月19日(木) 21:14 Geert Uytterhoeven <geert@linux-m68k.org>:
>
> Hi Simon,
>
> On Thu, Sep 19, 2019 at 2:03 PM Simon Horman <horms@verge.net.au> wrote:
> > On Thu, Sep 19, 2019 at 12:05:21AM +0900, Yoshihiro Kaneko wrote:
> > > Convert Renesas Interrupt Controller bindings documentation to json-schema.
> > >
> > > Signed-off-by: Yoshihiro Kaneko <ykaneko0929@gmail.com>
>
> > > --- /dev/null
> > > +++ b/Documentation/devicetree/bindings/interrupt-controller/renesas,irqc.yaml
> > > @@ -0,0 +1,84 @@
> > > +# SPDX-License-Identifier: GPL-2.0
> > > +%YAML 1.2
> > > +---
> > > +$id: http://devicetree.org/schemas/interrupt-controller/renesas,irqc.yaml#
> > > +$schema: http://devicetree.org/meta-schemas/core.yaml#
> > > +
> > > +title: DT bindings for the R-Mobile/R-Car/RZ/G interrupt controller
> > > +
> > > +maintainers:
> > > +  - Geert Uytterhoeven <geert+renesas@glider.be>
> > > +
> > > +properties:
> > > +  compatible:
> > > +    items:
> > > +      - enum:
> > > +          - renesas,irqc-r8a73a4        # R-Mobile APE6
> > > +          - renesas,irqc-r8a7743        # RZ/G1M
> > > +          - renesas,irqc-r8a7744        # RZ/G1N
> > > +          - renesas,irqc-r8a7745        # RZ/G1E
> > > +          - renesas,irqc-r8a77470       # RZ/G1C
> > > +          - renesas,irqc-r8a7790        # R-Car H2
> > > +          - renesas,irqc-r8a7791        # R-Car M2-W
> > > +          - renesas,irqc-r8a7792        # R-Car V2H
> > > +          - renesas,irqc-r8a7793        # R-Car M2-N
> > > +          - renesas,irqc-r8a7794        # R-Car E2
> > > +          - renesas,intc-ex-r8a774a1    # RZ/G2M
> > > +          - renesas,intc-ex-r8a774c0    # RZ/G2E
> > > +          - renesas,intc-ex-r8a7795     # R-Car H3
> > > +          - renesas,intc-ex-r8a7796     # R-Car M3-W
> > > +          - renesas,intc-ex-r8a77965    # R-Car M3-N
> > > +          - renesas,intc-ex-r8a77970    # R-Car V3M
> > > +          - renesas,intc-ex-r8a77980    # R-Car V3H
> > > +          - renesas,intc-ex-r8a77990    # R-Car E3
> > > +          - renesas,intc-ex-r8a77995    # R-Car D3
> > > +      - const: renesas,irqc
> > > +
> > > +  '#interrupt-cells':
> > > +    # an interrupt index and flags, as defined in interrupts.txt in
> > > +    # this directory
> > > +    const: 2
> > > +
> > > +  interrupt-controller: true
> > > +
> > > +  reg:
> > > +    maxItems: 1
> > > +
> > > +  interrupts:
> > > +    minItems: 1
> > > +    maxItems: 32
> >
> > Is 'interrupts' required?
>
> Yes, there must be one upstream interrupt for each supported interrupt input.
> The number of inputs is SoC-specific.
>
> > > +examples:
> > > +  - |
> > > +    #include <dt-bindings/interrupt-controller/irq.h>
> > > +    #include <dt-bindings/clock/r8a7790-clock.h>
> > > +
> > > +    irqc0: interrupt-controller@e61c0000 {
> > > +        compatible = "renesas,irqc-r8a7790", "renesas,irqc";
> > > +        #interrupt-cells = <2>;
> > > +        interrupt-controller;
> > > +        reg = <0 0xe61c0000 0 0x200>;
> > > +        interrupts = <0 0 IRQ_TYPE_LEVEL_HIGH>,
> > > +                     <0 1 IRQ_TYPE_LEVEL_HIGH>,
> > > +                     <0 2 IRQ_TYPE_LEVEL_HIGH>,
> > > +                     <0 3 IRQ_TYPE_LEVEL_HIGH>;
>
> While at it, one may want to replace s/0/GIC_SPI/.
>
> > > +        clocks = <&mstp4_clks R8A7790_CLK_IRQC>;
>
> and update clocks for the new CPG/MSTP bindings.
>
> > > +    };
>
> Gr{oetje,eeting}s,
>
>                         Geert
>
> --
> Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org
>
> In personal conversations with technical people, I call myself a hacker. But
> when I'm talking to journalists I just say "programmer" or something like that.
>                                 -- Linus Torvalds

Patch
diff mbox series

diff --git a/Documentation/devicetree/bindings/interrupt-controller/renesas,irqc.txt b/Documentation/devicetree/bindings/interrupt-controller/renesas,irqc.txt
deleted file mode 100644
index f977ea7..0000000
--- a/Documentation/devicetree/bindings/interrupt-controller/renesas,irqc.txt
+++ /dev/null
@@ -1,48 +0,0 @@ 
-DT bindings for the R-Mobile/R-Car/RZ/G interrupt controller
-
-Required properties:
-
-- compatible: must be "renesas,irqc-<soctype>" or "renesas,intc-ex-<soctype>",
-	      and "renesas,irqc" as fallback.
-  Examples with soctypes are:
-    - "renesas,irqc-r8a73a4" (R-Mobile APE6)
-    - "renesas,irqc-r8a7743" (RZ/G1M)
-    - "renesas,irqc-r8a7744" (RZ/G1N)
-    - "renesas,irqc-r8a7745" (RZ/G1E)
-    - "renesas,irqc-r8a77470" (RZ/G1C)
-    - "renesas,irqc-r8a7790" (R-Car H2)
-    - "renesas,irqc-r8a7791" (R-Car M2-W)
-    - "renesas,irqc-r8a7792" (R-Car V2H)
-    - "renesas,irqc-r8a7793" (R-Car M2-N)
-    - "renesas,irqc-r8a7794" (R-Car E2)
-    - "renesas,intc-ex-r8a774a1" (RZ/G2M)
-    - "renesas,intc-ex-r8a774c0" (RZ/G2E)
-    - "renesas,intc-ex-r8a7795" (R-Car H3)
-    - "renesas,intc-ex-r8a7796" (R-Car M3-W)
-    - "renesas,intc-ex-r8a77965" (R-Car M3-N)
-    - "renesas,intc-ex-r8a77970" (R-Car V3M)
-    - "renesas,intc-ex-r8a77980" (R-Car V3H)
-    - "renesas,intc-ex-r8a77990" (R-Car E3)
-    - "renesas,intc-ex-r8a77995" (R-Car D3)
-- #interrupt-cells: has to be <2>: an interrupt index and flags, as defined in
-  interrupts.txt in this directory
-- clocks: Must contain a reference to the functional clock.
-
-Optional properties:
-
-- any properties, listed in interrupts.txt, and any standard resource allocation
-  properties
-
-Example:
-
-	irqc0: interrupt-controller@e61c0000 {
-		compatible = "renesas,irqc-r8a7790", "renesas,irqc";
-		#interrupt-cells = <2>;
-		interrupt-controller;
-		reg = <0 0xe61c0000 0 0x200>;
-		interrupts = <0 0 IRQ_TYPE_LEVEL_HIGH>,
-			     <0 1 IRQ_TYPE_LEVEL_HIGH>,
-			     <0 2 IRQ_TYPE_LEVEL_HIGH>,
-			     <0 3 IRQ_TYPE_LEVEL_HIGH>;
-		clocks = <&mstp4_clks R8A7790_CLK_IRQC>;
-	};
diff --git a/Documentation/devicetree/bindings/interrupt-controller/renesas,irqc.yaml b/Documentation/devicetree/bindings/interrupt-controller/renesas,irqc.yaml
new file mode 100644
index 0000000..18497c3
--- /dev/null
+++ b/Documentation/devicetree/bindings/interrupt-controller/renesas,irqc.yaml
@@ -0,0 +1,84 @@ 
+# SPDX-License-Identifier: GPL-2.0
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/interrupt-controller/renesas,irqc.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: DT bindings for the R-Mobile/R-Car/RZ/G interrupt controller
+
+maintainers:
+  - Geert Uytterhoeven <geert+renesas@glider.be>
+
+properties:
+  compatible:
+    items:
+      - enum:
+          - renesas,irqc-r8a73a4        # R-Mobile APE6
+          - renesas,irqc-r8a7743        # RZ/G1M
+          - renesas,irqc-r8a7744        # RZ/G1N
+          - renesas,irqc-r8a7745        # RZ/G1E
+          - renesas,irqc-r8a77470       # RZ/G1C
+          - renesas,irqc-r8a7790        # R-Car H2
+          - renesas,irqc-r8a7791        # R-Car M2-W
+          - renesas,irqc-r8a7792        # R-Car V2H
+          - renesas,irqc-r8a7793        # R-Car M2-N
+          - renesas,irqc-r8a7794        # R-Car E2
+          - renesas,intc-ex-r8a774a1    # RZ/G2M
+          - renesas,intc-ex-r8a774c0    # RZ/G2E
+          - renesas,intc-ex-r8a7795     # R-Car H3
+          - renesas,intc-ex-r8a7796     # R-Car M3-W
+          - renesas,intc-ex-r8a77965    # R-Car M3-N
+          - renesas,intc-ex-r8a77970    # R-Car V3M
+          - renesas,intc-ex-r8a77980    # R-Car V3H
+          - renesas,intc-ex-r8a77990    # R-Car E3
+          - renesas,intc-ex-r8a77995    # R-Car D3
+      - const: renesas,irqc
+
+  '#interrupt-cells':
+    # an interrupt index and flags, as defined in interrupts.txt in
+    # this directory
+    const: 2
+
+  interrupt-controller: true
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    minItems: 1
+    maxItems: 32
+
+  clocks:
+    maxItems: 1
+
+  power-domains:
+    maxItems: 1
+
+  resets:
+    maxItems: 1
+
+required:
+  - compatible
+  - '#interrupt-cells'
+  - interrupt-controller
+  - reg
+  - clocks
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/interrupt-controller/irq.h>
+    #include <dt-bindings/clock/r8a7790-clock.h>
+
+    irqc0: interrupt-controller@e61c0000 {
+        compatible = "renesas,irqc-r8a7790", "renesas,irqc";
+        #interrupt-cells = <2>;
+        interrupt-controller;
+        reg = <0 0xe61c0000 0 0x200>;
+        interrupts = <0 0 IRQ_TYPE_LEVEL_HIGH>,
+                     <0 1 IRQ_TYPE_LEVEL_HIGH>,
+                     <0 2 IRQ_TYPE_LEVEL_HIGH>,
+                     <0 3 IRQ_TYPE_LEVEL_HIGH>;
+        clocks = <&mstp4_clks R8A7790_CLK_IRQC>;
+    };