linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 1/2] dt-bindings: irq: Convert Allwinner IRQ Controller to a schema
@ 2019-07-23 13:26 Maxime Ripard
  2019-07-23 13:26 ` [PATCH 2/2] dt-bindings: irq: Convert Allwinner NMI " Maxime Ripard
  2019-07-23 16:14 ` [PATCH 1/2] dt-bindings: irq: Convert Allwinner IRQ " Rob Herring
  0 siblings, 2 replies; 6+ messages in thread
From: Maxime Ripard @ 2019-07-23 13:26 UTC (permalink / raw)
  To: Mark Rutland, Rob Herring, Frank Rowand, tglx, jason, maz
  Cc: Maxime Ripard, devicetree, Chen-Yu Tsai, linux-arm-kernel

The Allwinner SoCs have an interrupt controller supported in Linux, with a
matching Device Tree binding.

Now that we have the DT validation in place, let's convert the device tree
bindings for that controller over to a YAML schemas.

Signed-off-by: Maxime Ripard <maxime.ripard@bootlin.com>
---
 .../allwinner,sun4i-a10-ic.yaml               | 49 +++++++++++++++++++
 .../allwinner,sun4i-ic.txt                    | 20 --------
 2 files changed, 49 insertions(+), 20 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/interrupt-controller/allwinner,sun4i-a10-ic.yaml
 delete mode 100644 Documentation/devicetree/bindings/interrupt-controller/allwinner,sun4i-ic.txt

diff --git a/Documentation/devicetree/bindings/interrupt-controller/allwinner,sun4i-a10-ic.yaml b/Documentation/devicetree/bindings/interrupt-controller/allwinner,sun4i-a10-ic.yaml
new file mode 100644
index 000000000000..806cf4770f75
--- /dev/null
+++ b/Documentation/devicetree/bindings/interrupt-controller/allwinner,sun4i-a10-ic.yaml
@@ -0,0 +1,49 @@
+# SPDX-License-Identifier: GPL-2.0
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/interrupt-controller/allwinner,sun4i-a10-ic.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Allwinner A10 Interrupt Controller Device Tree Bindings
+
+maintainers:
+  - Chen-Yu Tsai <wens@csie.org>
+  - Maxime Ripard <maxime.ripard@bootlin.com>
+
+allOf:
+  - $ref: /schemas/interrupt-controller.yaml#
+
+properties:
+  "#interrupt-cells":
+    const: 1
+
+  compatible:
+    enum:
+      - allwinner,sun4i-a10-ic
+      - allwinner,suniv-f1c100s-ic
+
+  reg:
+    maxItems: 1
+
+  interrupt-controller: true
+
+required:
+  - "#interrupt-cells"
+  - compatible
+  - reg
+  - interrupt-controller
+
+# FIXME: We should set it, but it would report all the generic
+# properties as additional properties.
+# additionalProperties: false
+
+examples:
+  - |
+    intc: interrupt-controller {
+        compatible = "allwinner,sun4i-a10-ic";
+        reg = <0x01c20400 0x400>;
+        interrupt-controller;
+        #interrupt-cells = <1>;
+    };
+
+...
diff --git a/Documentation/devicetree/bindings/interrupt-controller/allwinner,sun4i-ic.txt b/Documentation/devicetree/bindings/interrupt-controller/allwinner,sun4i-ic.txt
deleted file mode 100644
index 404352524c3a..000000000000
--- a/Documentation/devicetree/bindings/interrupt-controller/allwinner,sun4i-ic.txt
+++ /dev/null
@@ -1,20 +0,0 @@
-Allwinner Sunxi Interrupt Controller
-
-Required properties:
-
-- compatible : should be one of the following:
-              "allwinner,sun4i-a10-ic"
-              "allwinner,suniv-f1c100s-ic"
-- reg : Specifies base physical address and size of the registers.
-- interrupt-controller : Identifies the node as an interrupt controller
-- #interrupt-cells : Specifies the number of cells needed to encode an
-  interrupt source. The value shall be 1.
-
-Example:
-
-intc: interrupt-controller {
-	compatible = "allwinner,sun4i-a10-ic";
-	reg = <0x01c20400 0x400>;
-	interrupt-controller;
-	#interrupt-cells = <1>;
-};
-- 
2.21.0


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH 2/2] dt-bindings: irq: Convert Allwinner NMI Controller to a schema
  2019-07-23 13:26 [PATCH 1/2] dt-bindings: irq: Convert Allwinner IRQ Controller to a schema Maxime Ripard
@ 2019-07-23 13:26 ` Maxime Ripard
  2019-07-23 16:32   ` Rob Herring
  2019-07-23 16:14 ` [PATCH 1/2] dt-bindings: irq: Convert Allwinner IRQ " Rob Herring
  1 sibling, 1 reply; 6+ messages in thread
From: Maxime Ripard @ 2019-07-23 13:26 UTC (permalink / raw)
  To: Mark Rutland, Rob Herring, Frank Rowand, tglx, jason, maz
  Cc: Maxime Ripard, devicetree, Chen-Yu Tsai, linux-arm-kernel

The Allwinner SoCs have an interrupt controller called NMI supported in
Linux, with a matching Device Tree binding.

Now that we have the DT validation in place, let's convert the device tree
bindings for that controller over to a YAML schemas.

Signed-off-by: Maxime Ripard <maxime.ripard@bootlin.com>
---
 .../allwinner,sun7i-a20-sc-nmi.yaml           | 83 +++++++++++++++++++
 .../allwinner,sunxi-nmi.txt                   | 29 -------
 2 files changed, 83 insertions(+), 29 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/interrupt-controller/allwinner,sun7i-a20-sc-nmi.yaml
 delete mode 100644 Documentation/devicetree/bindings/interrupt-controller/allwinner,sunxi-nmi.txt

diff --git a/Documentation/devicetree/bindings/interrupt-controller/allwinner,sun7i-a20-sc-nmi.yaml b/Documentation/devicetree/bindings/interrupt-controller/allwinner,sun7i-a20-sc-nmi.yaml
new file mode 100644
index 000000000000..cb8077b0c8dd
--- /dev/null
+++ b/Documentation/devicetree/bindings/interrupt-controller/allwinner,sun7i-a20-sc-nmi.yaml
@@ -0,0 +1,83 @@
+# SPDX-License-Identifier: GPL-2.0
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/interrupt-controller/allwinner,sun7i-a20-sc-nmi.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Allwinner A20 Non-Maskable Interrupt Controller Device Tree Bindings
+
+maintainers:
+  - Chen-Yu Tsai <wens@csie.org>
+  - Maxime Ripard <maxime.ripard@bootlin.com>
+
+allOf:
+  - $ref: /schemas/interrupt-controller.yaml#
+
+select:
+  properties:
+    compatible:
+      contains:
+        enum:
+          - allwinner,sun6i-a31-r-intc
+          - allwinner,sun7i-a20-sc-nmi
+          - allwinner,sun9i-a80-sc-nmi
+
+          # Deprecated
+          - allwinner,sun6i-a31-sc-nmi
+
+  required:
+    - compatible
+
+properties:
+  "#interrupt-cells":
+    const: 2
+    description:
+      The first cell is the IRQ number, the second cell the trigger
+      type as defined in interrupt.txt in this directory.
+
+  compatible:
+    oneOf:
+      - const: allwinner,sun6i-a31-r-intc
+      - const: allwinner,sun7i-a20-sc-nmi
+      - items:
+        - const: allwinner,sun8i-a83t-r-intc
+        - const: allwinner,sun6i-a31-r-intc
+      - const: allwinner,sun9i-a80-sc-nmi
+      - items:
+        - const: allwinner,sun50i-a64-r-intc
+        - const: allwinner,sun6i-a31-r-intc
+      - items:
+        - const: allwinner,sun50i-h6-r-intc
+        - const: allwinner,sun6i-a31-r-intc
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    maxItems: 1
+
+  interrupt-controller: true
+
+required:
+  - "#interrupt-cells"
+  - compatible
+  - reg
+  - interrupts
+  - interrupt-controller
+
+# FIXME: We should set it, but it would report all the generic
+# properties as additional properties.
+# additionalProperties: false
+
+examples:
+  - |
+    interrupt-controller@1c00030 {
+        compatible = "allwinner,sun7i-a20-sc-nmi";
+        interrupt-controller;
+        #interrupt-cells = <2>;
+        reg = <0x01c00030 0x0c>;
+        interrupt-parent = <&gic>;
+        interrupts = <0 0 4>;
+    };
+
+...
diff --git a/Documentation/devicetree/bindings/interrupt-controller/allwinner,sunxi-nmi.txt b/Documentation/devicetree/bindings/interrupt-controller/allwinner,sunxi-nmi.txt
deleted file mode 100644
index 24beadf7ba83..000000000000
--- a/Documentation/devicetree/bindings/interrupt-controller/allwinner,sunxi-nmi.txt
+++ /dev/null
@@ -1,29 +0,0 @@
-Allwinner Sunxi NMI Controller
-==============================
-
-Required properties:
-
-- compatible : should be one of the following:
-  - "allwinner,sun7i-a20-sc-nmi"
-  - "allwinner,sun6i-a31-sc-nmi" (deprecated)
-  - "allwinner,sun6i-a31-r-intc"
-  - "allwinner,sun9i-a80-nmi"
-- reg : Specifies base physical address and size of the registers.
-- interrupt-controller : Identifies the node as an interrupt controller
-- #interrupt-cells : Specifies the number of cells needed to encode an
-  interrupt source. The value shall be 2. The first cell is the IRQ number, the
-  second cell the trigger type as defined in interrupt.txt in this directory.
-- interrupts: Specifies the interrupt line (NMI) which is handled by
-  the interrupt controller in the parent controller's notation. This value
-  shall be the NMI.
-
-Example:
-
-sc-nmi-intc@1c00030 {
-	compatible = "allwinner,sun7i-a20-sc-nmi";
-	interrupt-controller;
-	#interrupt-cells = <2>;
-	reg = <0x01c00030 0x0c>;
-	interrupt-parent = <&gic>;
-	interrupts = <0 0 4>;
-};
-- 
2.21.0


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [PATCH 1/2] dt-bindings: irq: Convert Allwinner IRQ Controller to a schema
  2019-07-23 13:26 [PATCH 1/2] dt-bindings: irq: Convert Allwinner IRQ Controller to a schema Maxime Ripard
  2019-07-23 13:26 ` [PATCH 2/2] dt-bindings: irq: Convert Allwinner NMI " Maxime Ripard
@ 2019-07-23 16:14 ` Rob Herring
  1 sibling, 0 replies; 6+ messages in thread
From: Rob Herring @ 2019-07-23 16:14 UTC (permalink / raw)
  To: Maxime Ripard
  Cc: Mark Rutland, devicetree, Jason Cooper, maz, Chen-Yu Tsai,
	Thomas Gleixner, Frank Rowand,
	moderated list:ARM/FREESCALE IMX / MXC ARM ARCHITECTURE

On Tue, Jul 23, 2019 at 7:27 AM Maxime Ripard <maxime.ripard@bootlin.com> wrote:
>
> The Allwinner SoCs have an interrupt controller supported in Linux, with a
> matching Device Tree binding.
>
> Now that we have the DT validation in place, let's convert the device tree
> bindings for that controller over to a YAML schemas.
>
> Signed-off-by: Maxime Ripard <maxime.ripard@bootlin.com>
> ---
>  .../allwinner,sun4i-a10-ic.yaml               | 49 +++++++++++++++++++
>  .../allwinner,sun4i-ic.txt                    | 20 --------
>  2 files changed, 49 insertions(+), 20 deletions(-)
>  create mode 100644 Documentation/devicetree/bindings/interrupt-controller/allwinner,sun4i-a10-ic.yaml
>  delete mode 100644 Documentation/devicetree/bindings/interrupt-controller/allwinner,sun4i-ic.txt
>
> diff --git a/Documentation/devicetree/bindings/interrupt-controller/allwinner,sun4i-a10-ic.yaml b/Documentation/devicetree/bindings/interrupt-controller/allwinner,sun4i-a10-ic.yaml
> new file mode 100644
> index 000000000000..806cf4770f75
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/interrupt-controller/allwinner,sun4i-a10-ic.yaml
> @@ -0,0 +1,49 @@
> +# SPDX-License-Identifier: GPL-2.0
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/interrupt-controller/allwinner,sun4i-a10-ic.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Allwinner A10 Interrupt Controller Device Tree Bindings
> +
> +maintainers:
> +  - Chen-Yu Tsai <wens@csie.org>
> +  - Maxime Ripard <maxime.ripard@bootlin.com>
> +
> +allOf:
> +  - $ref: /schemas/interrupt-controller.yaml#
> +
> +properties:
> +  "#interrupt-cells":
> +    const: 1
> +
> +  compatible:
> +    enum:
> +      - allwinner,sun4i-a10-ic
> +      - allwinner,suniv-f1c100s-ic
> +
> +  reg:
> +    maxItems: 1
> +
> +  interrupt-controller: true
> +
> +required:
> +  - "#interrupt-cells"
> +  - compatible
> +  - reg
> +  - interrupt-controller
> +
> +# FIXME: We should set it, but it would report all the generic
> +# properties as additional properties.
> +# additionalProperties: false

Looks to me like you could enable this.

BTW, I think the fix is going to be just the new
'unevaluatedProperties: false'. We could start putting that in as
unknown keys are ignored (though the meta-schema will need an update
to allow it).

> +
> +examples:
> +  - |
> +    intc: interrupt-controller {

unit-address needed.

I need to figure out how to enable dtc warnings by default on the examples...

> +        compatible = "allwinner,sun4i-a10-ic";
> +        reg = <0x01c20400 0x400>;
> +        interrupt-controller;
> +        #interrupt-cells = <1>;
> +    };
> +
> +...

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH 2/2] dt-bindings: irq: Convert Allwinner NMI Controller to a schema
  2019-07-23 13:26 ` [PATCH 2/2] dt-bindings: irq: Convert Allwinner NMI " Maxime Ripard
@ 2019-07-23 16:32   ` Rob Herring
  2019-08-13  5:47     ` Maxime Ripard
  0 siblings, 1 reply; 6+ messages in thread
From: Rob Herring @ 2019-07-23 16:32 UTC (permalink / raw)
  To: Maxime Ripard
  Cc: Mark Rutland, devicetree, Jason Cooper, maz, Chen-Yu Tsai,
	Thomas Gleixner, Frank Rowand,
	moderated list:ARM/FREESCALE IMX / MXC ARM ARCHITECTURE

On Tue, Jul 23, 2019 at 7:27 AM Maxime Ripard <maxime.ripard@bootlin.com> wrote:
>
> The Allwinner SoCs have an interrupt controller called NMI supported in
> Linux, with a matching Device Tree binding.
>
> Now that we have the DT validation in place, let's convert the device tree
> bindings for that controller over to a YAML schemas.
>
> Signed-off-by: Maxime Ripard <maxime.ripard@bootlin.com>
> ---
>  .../allwinner,sun7i-a20-sc-nmi.yaml           | 83 +++++++++++++++++++
>  .../allwinner,sunxi-nmi.txt                   | 29 -------
>  2 files changed, 83 insertions(+), 29 deletions(-)
>  create mode 100644 Documentation/devicetree/bindings/interrupt-controller/allwinner,sun7i-a20-sc-nmi.yaml
>  delete mode 100644 Documentation/devicetree/bindings/interrupt-controller/allwinner,sunxi-nmi.txt
>
> diff --git a/Documentation/devicetree/bindings/interrupt-controller/allwinner,sun7i-a20-sc-nmi.yaml b/Documentation/devicetree/bindings/interrupt-controller/allwinner,sun7i-a20-sc-nmi.yaml
> new file mode 100644
> index 000000000000..cb8077b0c8dd
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/interrupt-controller/allwinner,sun7i-a20-sc-nmi.yaml
> @@ -0,0 +1,83 @@
> +# SPDX-License-Identifier: GPL-2.0
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/interrupt-controller/allwinner,sun7i-a20-sc-nmi.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Allwinner A20 Non-Maskable Interrupt Controller Device Tree Bindings
> +
> +maintainers:
> +  - Chen-Yu Tsai <wens@csie.org>
> +  - Maxime Ripard <maxime.ripard@bootlin.com>
> +
> +allOf:
> +  - $ref: /schemas/interrupt-controller.yaml#
> +
> +select:
> +  properties:
> +    compatible:
> +      contains:
> +        enum:
> +          - allwinner,sun6i-a31-r-intc
> +          - allwinner,sun7i-a20-sc-nmi
> +          - allwinner,sun9i-a80-sc-nmi

This should have all the possible compatibles in case all are not listed.

> +
> +          # Deprecated
> +          - allwinner,sun6i-a31-sc-nmi

I know we already did things this way before, but perhaps this should
be listed below with the 'deprecated' property. The tools can include
it in select, but then remove it from compatible property.

> +
> +  required:
> +    - compatible
> +
> +properties:
> +  "#interrupt-cells":
> +    const: 2
> +    description:
> +      The first cell is the IRQ number, the second cell the trigger
> +      type as defined in interrupt.txt in this directory.
> +
> +  compatible:
> +    oneOf:
> +      - const: allwinner,sun6i-a31-r-intc
> +      - const: allwinner,sun7i-a20-sc-nmi
> +      - items:
> +        - const: allwinner,sun8i-a83t-r-intc
> +        - const: allwinner,sun6i-a31-r-intc
> +      - const: allwinner,sun9i-a80-sc-nmi
> +      - items:
> +        - const: allwinner,sun50i-a64-r-intc
> +        - const: allwinner,sun6i-a31-r-intc
> +      - items:
> +        - const: allwinner,sun50i-h6-r-intc
> +        - const: allwinner,sun6i-a31-r-intc
> +
> +  reg:
> +    maxItems: 1
> +
> +  interrupts:
> +    maxItems: 1
> +
> +  interrupt-controller: true
> +
> +required:
> +  - "#interrupt-cells"
> +  - compatible
> +  - reg
> +  - interrupts
> +  - interrupt-controller
> +
> +# FIXME: We should set it, but it would report all the generic
> +# properties as additional properties.
> +# additionalProperties: false
> +
> +examples:
> +  - |
> +    interrupt-controller@1c00030 {
> +        compatible = "allwinner,sun7i-a20-sc-nmi";
> +        interrupt-controller;
> +        #interrupt-cells = <2>;
> +        reg = <0x01c00030 0x0c>;
> +        interrupt-parent = <&gic>;
> +        interrupts = <0 0 4>;
> +    };
> +
> +...

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH 2/2] dt-bindings: irq: Convert Allwinner NMI Controller to a schema
  2019-07-23 16:32   ` Rob Herring
@ 2019-08-13  5:47     ` Maxime Ripard
  2019-08-13 13:53       ` Rob Herring
  0 siblings, 1 reply; 6+ messages in thread
From: Maxime Ripard @ 2019-08-13  5:47 UTC (permalink / raw)
  To: Rob Herring
  Cc: Mark Rutland, devicetree, Jason Cooper, maz, Chen-Yu Tsai,
	Thomas Gleixner, Frank Rowand,
	moderated list:ARM/FREESCALE IMX / MXC ARM ARCHITECTURE

Hi Rob,

On Tue, Jul 23, 2019 at 10:32:41AM -0600, Rob Herring wrote:
> On Tue, Jul 23, 2019 at 7:27 AM Maxime Ripard <maxime.ripard@bootlin.com> wrote:
> >
> > The Allwinner SoCs have an interrupt controller called NMI supported in
> > Linux, with a matching Device Tree binding.
> >
> > Now that we have the DT validation in place, let's convert the device tree
> > bindings for that controller over to a YAML schemas.
> >
> > Signed-off-by: Maxime Ripard <maxime.ripard@bootlin.com>
> > ---
> >  .../allwinner,sun7i-a20-sc-nmi.yaml           | 83 +++++++++++++++++++
> >  .../allwinner,sunxi-nmi.txt                   | 29 -------
> >  2 files changed, 83 insertions(+), 29 deletions(-)
> >  create mode 100644 Documentation/devicetree/bindings/interrupt-controller/allwinner,sun7i-a20-sc-nmi.yaml
> >  delete mode 100644 Documentation/devicetree/bindings/interrupt-controller/allwinner,sunxi-nmi.txt
> >
> > diff --git a/Documentation/devicetree/bindings/interrupt-controller/allwinner,sun7i-a20-sc-nmi.yaml b/Documentation/devicetree/bindings/interrupt-controller/allwinner,sun7i-a20-sc-nmi.yaml
> > new file mode 100644
> > index 000000000000..cb8077b0c8dd
> > --- /dev/null
> > +++ b/Documentation/devicetree/bindings/interrupt-controller/allwinner,sun7i-a20-sc-nmi.yaml
> > @@ -0,0 +1,83 @@
> > +# SPDX-License-Identifier: GPL-2.0
> > +%YAML 1.2
> > +---
> > +$id: http://devicetree.org/schemas/interrupt-controller/allwinner,sun7i-a20-sc-nmi.yaml#
> > +$schema: http://devicetree.org/meta-schemas/core.yaml#
> > +
> > +title: Allwinner A20 Non-Maskable Interrupt Controller Device Tree Bindings
> > +
> > +maintainers:
> > +  - Chen-Yu Tsai <wens@csie.org>
> > +  - Maxime Ripard <maxime.ripard@bootlin.com>
> > +
> > +allOf:
> > +  - $ref: /schemas/interrupt-controller.yaml#
> > +
> > +select:
> > +  properties:
> > +    compatible:
> > +      contains:
> > +        enum:
> > +          - allwinner,sun6i-a31-r-intc
> > +          - allwinner,sun7i-a20-sc-nmi
> > +          - allwinner,sun9i-a80-sc-nmi
>
> This should have all the possible compatibles in case all are not
> listed.

I'm sorry, but I'm not sure I understood what you meant here :/

>
> > +
> > +          # Deprecated
> > +          - allwinner,sun6i-a31-sc-nmi
>
> I know we already did things this way before, but perhaps this should
> be listed below with the 'deprecated' property. The tools can include
> it in select, but then remove it from compatible property.

Can we have more than just one of the choice for an enum?

In this particular case, since we have oneOf it's not really too much
of an issue, but there's a significant amount of users of enum for the
compatibles.

Thanks!
Maxime

> > +
> > +  required:
> > +    - compatible
> > +
> > +properties:
> > +  "#interrupt-cells":
> > +    const: 2
> > +    description:
> > +      The first cell is the IRQ number, the second cell the trigger
> > +      type as defined in interrupt.txt in this directory.
> > +
> > +  compatible:
> > +    oneOf:
> > +      - const: allwinner,sun6i-a31-r-intc
> > +      - const: allwinner,sun7i-a20-sc-nmi
> > +      - items:
> > +        - const: allwinner,sun8i-a83t-r-intc
> > +        - const: allwinner,sun6i-a31-r-intc
> > +      - const: allwinner,sun9i-a80-sc-nmi
> > +      - items:
> > +        - const: allwinner,sun50i-a64-r-intc
> > +        - const: allwinner,sun6i-a31-r-intc
> > +      - items:
> > +        - const: allwinner,sun50i-h6-r-intc
> > +        - const: allwinner,sun6i-a31-r-intc
> > +
> > +  reg:
> > +    maxItems: 1
> > +
> > +  interrupts:
> > +    maxItems: 1
> > +
> > +  interrupt-controller: true
> > +
> > +required:
> > +  - "#interrupt-cells"
> > +  - compatible
> > +  - reg
> > +  - interrupts
> > +  - interrupt-controller
> > +
> > +# FIXME: We should set it, but it would report all the generic
> > +# properties as additional properties.
> > +# additionalProperties: false
> > +
> > +examples:
> > +  - |
> > +    interrupt-controller@1c00030 {
> > +        compatible = "allwinner,sun7i-a20-sc-nmi";
> > +        interrupt-controller;
> > +        #interrupt-cells = <2>;
> > +        reg = <0x01c00030 0x0c>;
> > +        interrupt-parent = <&gic>;
> > +        interrupts = <0 0 4>;
> > +    };
> > +
> > +...

--
Maxime Ripard, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH 2/2] dt-bindings: irq: Convert Allwinner NMI Controller to a schema
  2019-08-13  5:47     ` Maxime Ripard
@ 2019-08-13 13:53       ` Rob Herring
  0 siblings, 0 replies; 6+ messages in thread
From: Rob Herring @ 2019-08-13 13:53 UTC (permalink / raw)
  To: Maxime Ripard
  Cc: Mark Rutland, devicetree, Jason Cooper, maz, Chen-Yu Tsai,
	Thomas Gleixner, Frank Rowand,
	moderated list:ARM/FREESCALE IMX / MXC ARM ARCHITECTURE

On Mon, Aug 12, 2019 at 11:47 PM Maxime Ripard
<maxime.ripard@bootlin.com> wrote:
>
> Hi Rob,
>
> On Tue, Jul 23, 2019 at 10:32:41AM -0600, Rob Herring wrote:
> > On Tue, Jul 23, 2019 at 7:27 AM Maxime Ripard <maxime.ripard@bootlin.com> wrote:
> > >
> > > The Allwinner SoCs have an interrupt controller called NMI supported in
> > > Linux, with a matching Device Tree binding.
> > >
> > > Now that we have the DT validation in place, let's convert the device tree
> > > bindings for that controller over to a YAML schemas.
> > >
> > > Signed-off-by: Maxime Ripard <maxime.ripard@bootlin.com>
> > > ---
> > >  .../allwinner,sun7i-a20-sc-nmi.yaml           | 83 +++++++++++++++++++
> > >  .../allwinner,sunxi-nmi.txt                   | 29 -------
> > >  2 files changed, 83 insertions(+), 29 deletions(-)
> > >  create mode 100644 Documentation/devicetree/bindings/interrupt-controller/allwinner,sun7i-a20-sc-nmi.yaml
> > >  delete mode 100644 Documentation/devicetree/bindings/interrupt-controller/allwinner,sunxi-nmi.txt
> > >
> > > diff --git a/Documentation/devicetree/bindings/interrupt-controller/allwinner,sun7i-a20-sc-nmi.yaml b/Documentation/devicetree/bindings/interrupt-controller/allwinner,sun7i-a20-sc-nmi.yaml
> > > new file mode 100644
> > > index 000000000000..cb8077b0c8dd
> > > --- /dev/null
> > > +++ b/Documentation/devicetree/bindings/interrupt-controller/allwinner,sun7i-a20-sc-nmi.yaml
> > > @@ -0,0 +1,83 @@
> > > +# SPDX-License-Identifier: GPL-2.0
> > > +%YAML 1.2
> > > +---
> > > +$id: http://devicetree.org/schemas/interrupt-controller/allwinner,sun7i-a20-sc-nmi.yaml#
> > > +$schema: http://devicetree.org/meta-schemas/core.yaml#
> > > +
> > > +title: Allwinner A20 Non-Maskable Interrupt Controller Device Tree Bindings
> > > +
> > > +maintainers:
> > > +  - Chen-Yu Tsai <wens@csie.org>
> > > +  - Maxime Ripard <maxime.ripard@bootlin.com>
> > > +
> > > +allOf:
> > > +  - $ref: /schemas/interrupt-controller.yaml#
> > > +
> > > +select:
> > > +  properties:
> > > +    compatible:
> > > +      contains:
> > > +        enum:
> > > +          - allwinner,sun6i-a31-r-intc
> > > +          - allwinner,sun7i-a20-sc-nmi
> > > +          - allwinner,sun9i-a80-sc-nmi
> >
> > This should have all the possible compatibles in case all are not
> > listed.
>
> I'm sorry, but I'm not sure I understood what you meant here :/

You are missing these from the list:
allwinner,sun8i-a83t-r-intc
allwinner,sun50i-a64-r-intc
allwinner,sun50i-h6-r-intc

We need them all to catch any DTs with only the above strings.

>
> >
> > > +
> > > +          # Deprecated
> > > +          - allwinner,sun6i-a31-sc-nmi
> >
> > I know we already did things this way before, but perhaps this should
> > be listed below with the 'deprecated' property. The tools can include
> > it in select, but then remove it from compatible property.
>
> Can we have more than just one of the choice for an enum?
>
> In this particular case, since we have oneOf it's not really too much
> of an issue, but there's a significant amount of users of enum for the
> compatibles.

I think we have to use oneOf here. There's not that many cases of
deprecated compatibles.

Rob

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2019-08-13 13:54 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-07-23 13:26 [PATCH 1/2] dt-bindings: irq: Convert Allwinner IRQ Controller to a schema Maxime Ripard
2019-07-23 13:26 ` [PATCH 2/2] dt-bindings: irq: Convert Allwinner NMI " Maxime Ripard
2019-07-23 16:32   ` Rob Herring
2019-08-13  5:47     ` Maxime Ripard
2019-08-13 13:53       ` Rob Herring
2019-07-23 16:14 ` [PATCH 1/2] dt-bindings: irq: Convert Allwinner IRQ " Rob Herring

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).