Message ID | 20220107031905.2406176-1-robh@kernel.org |
---|---|
State | Accepted |
Commit | da4b3d88b0862141417f16121f378efffe44240f |
Headers | show |
Series | dt-bindings: Drop required 'interrupt-parent' | expand |
On Fri, Jan 7, 2022 at 4:19 AM Rob Herring <robh@kernel.org> wrote: > > 'interrupt-parent' is never required as it can be in a parent node or a > parent node itself can be an interrupt provider. Where exactly it lives is > outside the scope of a binding schema. > > Signed-off-by: Rob Herring <robh@kernel.org> > --- > .../devicetree/bindings/gpio/toshiba,gpio-visconti.yaml | 1 - > .../devicetree/bindings/mailbox/ti,omap-mailbox.yaml | 9 --------- > Documentation/devicetree/bindings/mfd/cirrus,madera.yaml | 1 - > .../devicetree/bindings/net/lantiq,etop-xway.yaml | 1 - > .../devicetree/bindings/net/lantiq,xrx200-net.yaml | 1 - > .../devicetree/bindings/pci/sifive,fu740-pcie.yaml | 1 - > .../devicetree/bindings/pci/xilinx-versal-cpm.yaml | 1 - > 7 files changed, 15 deletions(-) > > diff --git a/Documentation/devicetree/bindings/gpio/toshiba,gpio-visconti.yaml b/Documentation/devicetree/bindings/gpio/toshiba,gpio-visconti.yaml > index 9ad470e01953..b085450b527f 100644 > --- a/Documentation/devicetree/bindings/gpio/toshiba,gpio-visconti.yaml > +++ b/Documentation/devicetree/bindings/gpio/toshiba,gpio-visconti.yaml > @@ -43,7 +43,6 @@ required: > - gpio-controller > - interrupt-controller > - "#interrupt-cells" > - - interrupt-parent > > additionalProperties: false > > diff --git a/Documentation/devicetree/bindings/mailbox/ti,omap-mailbox.yaml b/Documentation/devicetree/bindings/mailbox/ti,omap-mailbox.yaml > index e864d798168d..d433e496ec6e 100644 > --- a/Documentation/devicetree/bindings/mailbox/ti,omap-mailbox.yaml > +++ b/Documentation/devicetree/bindings/mailbox/ti,omap-mailbox.yaml > @@ -175,15 +175,6 @@ required: > - ti,mbox-num-fifos > > allOf: > - - if: > - properties: > - compatible: > - enum: > - - ti,am654-mailbox > - then: > - required: > - - interrupt-parent > - > - if: > properties: > compatible: > diff --git a/Documentation/devicetree/bindings/mfd/cirrus,madera.yaml b/Documentation/devicetree/bindings/mfd/cirrus,madera.yaml > index 499c62c04daa..5dce62a7eff2 100644 > --- a/Documentation/devicetree/bindings/mfd/cirrus,madera.yaml > +++ b/Documentation/devicetree/bindings/mfd/cirrus,madera.yaml > @@ -221,7 +221,6 @@ required: > - '#gpio-cells' > - interrupt-controller > - '#interrupt-cells' > - - interrupt-parent > - interrupts > - AVDD-supply > - DBVDD1-supply > diff --git a/Documentation/devicetree/bindings/net/lantiq,etop-xway.yaml b/Documentation/devicetree/bindings/net/lantiq,etop-xway.yaml > index 437502c5ca96..3ce9f9a16baf 100644 > --- a/Documentation/devicetree/bindings/net/lantiq,etop-xway.yaml > +++ b/Documentation/devicetree/bindings/net/lantiq,etop-xway.yaml > @@ -46,7 +46,6 @@ properties: > required: > - compatible > - reg > - - interrupt-parent > - interrupts > - interrupt-names > - lantiq,tx-burst-length > diff --git a/Documentation/devicetree/bindings/net/lantiq,xrx200-net.yaml b/Documentation/devicetree/bindings/net/lantiq,xrx200-net.yaml > index 7bc074a42369..5bc1a21ca579 100644 > --- a/Documentation/devicetree/bindings/net/lantiq,xrx200-net.yaml > +++ b/Documentation/devicetree/bindings/net/lantiq,xrx200-net.yaml > @@ -38,7 +38,6 @@ properties: > required: > - compatible > - reg > - - interrupt-parent > - interrupts > - interrupt-names > - "#address-cells" > diff --git a/Documentation/devicetree/bindings/pci/sifive,fu740-pcie.yaml b/Documentation/devicetree/bindings/pci/sifive,fu740-pcie.yaml > index 2b9d1d6fc661..72c78f4ec269 100644 > --- a/Documentation/devicetree/bindings/pci/sifive,fu740-pcie.yaml > +++ b/Documentation/devicetree/bindings/pci/sifive,fu740-pcie.yaml > @@ -61,7 +61,6 @@ required: > - num-lanes > - interrupts > - interrupt-names > - - interrupt-parent > - interrupt-map-mask > - interrupt-map > - clock-names > diff --git a/Documentation/devicetree/bindings/pci/xilinx-versal-cpm.yaml b/Documentation/devicetree/bindings/pci/xilinx-versal-cpm.yaml > index a2bbc0eb7220..32f4641085bc 100644 > --- a/Documentation/devicetree/bindings/pci/xilinx-versal-cpm.yaml > +++ b/Documentation/devicetree/bindings/pci/xilinx-versal-cpm.yaml > @@ -55,7 +55,6 @@ required: > - reg-names > - "#interrupt-cells" > - interrupts > - - interrupt-parent > - interrupt-map > - interrupt-map-mask > - bus-range > -- > 2.32.0 > For GPIO: Acked-by: Bartosz Golaszewski <brgl@bgdev.pl>
On Fri, Jan 7, 2022 at 8:27 AM Suman Anna <s-anna@ti.com> wrote: > > Hi Rob, > > On 1/6/22 9:19 PM, Rob Herring wrote: > > 'interrupt-parent' is never required as it can be in a parent node or a > > parent node itself can be an interrupt provider. Where exactly it lives is > > outside the scope of a binding schema. > > > > Signed-off-by: Rob Herring <robh@kernel.org> > > --- > > .../devicetree/bindings/gpio/toshiba,gpio-visconti.yaml | 1 - > > .../devicetree/bindings/mailbox/ti,omap-mailbox.yaml | 9 --------- > > Documentation/devicetree/bindings/mfd/cirrus,madera.yaml | 1 - > > .../devicetree/bindings/net/lantiq,etop-xway.yaml | 1 - > > .../devicetree/bindings/net/lantiq,xrx200-net.yaml | 1 - > > .../devicetree/bindings/pci/sifive,fu740-pcie.yaml | 1 - > > .../devicetree/bindings/pci/xilinx-versal-cpm.yaml | 1 - > > 7 files changed, 15 deletions(-) > > > > diff --git a/Documentation/devicetree/bindings/gpio/toshiba,gpio-visconti.yaml b/Documentation/devicetree/bindings/gpio/toshiba,gpio-visconti.yaml > > index 9ad470e01953..b085450b527f 100644 > > --- a/Documentation/devicetree/bindings/gpio/toshiba,gpio-visconti.yaml > > +++ b/Documentation/devicetree/bindings/gpio/toshiba,gpio-visconti.yaml > > @@ -43,7 +43,6 @@ required: > > - gpio-controller > > - interrupt-controller > > - "#interrupt-cells" > > - - interrupt-parent > > > > additionalProperties: false > > > > diff --git a/Documentation/devicetree/bindings/mailbox/ti,omap-mailbox.yaml b/Documentation/devicetree/bindings/mailbox/ti,omap-mailbox.yaml > > index e864d798168d..d433e496ec6e 100644 > > --- a/Documentation/devicetree/bindings/mailbox/ti,omap-mailbox.yaml > > +++ b/Documentation/devicetree/bindings/mailbox/ti,omap-mailbox.yaml > > @@ -175,15 +175,6 @@ required: > > - ti,mbox-num-fifos > > > > allOf: > > - - if: > > - properties: > > - compatible: > > - enum: > > - - ti,am654-mailbox > > - then: > > - required: > > - - interrupt-parent > > - > > There are multiple interrupt controllers on TI K3 devices, and we need this > property to be defined _specifically_ to point to the relevant interrupt router > parent node. > > While what you state in general is true, I cannot have a node not define this on > K3 devices, and end up using the wrong interrupt parent (GIC > interrupt-controller). That's why the conditional compatible check. But you could. The parent node can have a default interrupt-parent and child nodes can override that. It doesn't matter which one is the default though typically you would want the one used the most to be the default. Looking at your dts files, it looks like you all did the opposite. The only way that wouldn't work is if the parent node is if the parent node has its own 'interrupts' or you are just abusing 'interrupt-parent' where the standard parsing doesn't work. You are also free to use 'interrupts-extended' anywhere 'interrupts' is used and then interrupt-parent being present is an error. How you structure all this is outside the scope of binding schemas which only need to define how many interrupts and what are they. Ensuring parents and cell sizes are correct is mostly done by dtc. Rob
Hi Rob, On 1/7/22 9:20 AM, Rob Herring wrote: > On Fri, Jan 7, 2022 at 8:27 AM Suman Anna <s-anna@ti.com> wrote: >> >> Hi Rob, >> >> On 1/6/22 9:19 PM, Rob Herring wrote: >>> 'interrupt-parent' is never required as it can be in a parent node or a >>> parent node itself can be an interrupt provider. Where exactly it lives is >>> outside the scope of a binding schema. >>> >>> Signed-off-by: Rob Herring <robh@kernel.org> >>> --- >>> .../devicetree/bindings/gpio/toshiba,gpio-visconti.yaml | 1 - >>> .../devicetree/bindings/mailbox/ti,omap-mailbox.yaml | 9 --------- >>> Documentation/devicetree/bindings/mfd/cirrus,madera.yaml | 1 - >>> .../devicetree/bindings/net/lantiq,etop-xway.yaml | 1 - >>> .../devicetree/bindings/net/lantiq,xrx200-net.yaml | 1 - >>> .../devicetree/bindings/pci/sifive,fu740-pcie.yaml | 1 - >>> .../devicetree/bindings/pci/xilinx-versal-cpm.yaml | 1 - >>> 7 files changed, 15 deletions(-) >>> >>> diff --git a/Documentation/devicetree/bindings/gpio/toshiba,gpio-visconti.yaml b/Documentation/devicetree/bindings/gpio/toshiba,gpio-visconti.yaml >>> index 9ad470e01953..b085450b527f 100644 >>> --- a/Documentation/devicetree/bindings/gpio/toshiba,gpio-visconti.yaml >>> +++ b/Documentation/devicetree/bindings/gpio/toshiba,gpio-visconti.yaml >>> @@ -43,7 +43,6 @@ required: >>> - gpio-controller >>> - interrupt-controller >>> - "#interrupt-cells" >>> - - interrupt-parent >>> >>> additionalProperties: false >>> >>> diff --git a/Documentation/devicetree/bindings/mailbox/ti,omap-mailbox.yaml b/Documentation/devicetree/bindings/mailbox/ti,omap-mailbox.yaml >>> index e864d798168d..d433e496ec6e 100644 >>> --- a/Documentation/devicetree/bindings/mailbox/ti,omap-mailbox.yaml >>> +++ b/Documentation/devicetree/bindings/mailbox/ti,omap-mailbox.yaml >>> @@ -175,15 +175,6 @@ required: >>> - ti,mbox-num-fifos >>> >>> allOf: >>> - - if: >>> - properties: >>> - compatible: >>> - enum: >>> - - ti,am654-mailbox >>> - then: >>> - required: >>> - - interrupt-parent >>> - >> >> There are multiple interrupt controllers on TI K3 devices, and we need this >> property to be defined _specifically_ to point to the relevant interrupt router >> parent node. >> >> While what you state in general is true, I cannot have a node not define this on >> K3 devices, and end up using the wrong interrupt parent (GIC >> interrupt-controller). That's why the conditional compatible check. > > But you could. > > The parent node can have a default interrupt-parent and child nodes > can override that. It doesn't matter which one is the default though > typically you would want the one used the most to be the default. > Looking at your dts files, it looks like you all did the opposite. Hmm, I am not sure I understood your last comment. Can you point out the specific usage? All our K3 dts files have the interrupt-parent = <&gic500> defined at the root-node, which is the default ARM GIC. Let us know if we need to fix something in our dts files. The > only way that wouldn't work is if the parent node is if the parent > node has its own 'interrupts' or you are just abusing > 'interrupt-parent' where the standard parsing doesn't work. All our K3 gic500 nodes does have an 'interrupts' property. > > You are also free to use 'interrupts-extended' anywhere 'interrupts' > is used and then interrupt-parent being present is an error. Yes, this is understood. The OMAP Mailbox binding is reused between multiple SoC families, some of which do not use an Interrupt Router in between. So, whats the best way to enforce this in the specific schema? I have used the common 'interrupts' property that applies to all SoCs, and enforced the conditional 'interrupt-parent' only on relevant compatibles. regards Suman How you > structure all this is outside the scope of binding schemas which only > need to define how many interrupts and what are they. Ensuring parents > and cell sizes are correct is mostly done by dtc. > > Rob >
diff --git a/Documentation/devicetree/bindings/gpio/toshiba,gpio-visconti.yaml b/Documentation/devicetree/bindings/gpio/toshiba,gpio-visconti.yaml index 9ad470e01953..b085450b527f 100644 --- a/Documentation/devicetree/bindings/gpio/toshiba,gpio-visconti.yaml +++ b/Documentation/devicetree/bindings/gpio/toshiba,gpio-visconti.yaml @@ -43,7 +43,6 @@ required: - gpio-controller - interrupt-controller - "#interrupt-cells" - - interrupt-parent additionalProperties: false diff --git a/Documentation/devicetree/bindings/mailbox/ti,omap-mailbox.yaml b/Documentation/devicetree/bindings/mailbox/ti,omap-mailbox.yaml index e864d798168d..d433e496ec6e 100644 --- a/Documentation/devicetree/bindings/mailbox/ti,omap-mailbox.yaml +++ b/Documentation/devicetree/bindings/mailbox/ti,omap-mailbox.yaml @@ -175,15 +175,6 @@ required: - ti,mbox-num-fifos allOf: - - if: - properties: - compatible: - enum: - - ti,am654-mailbox - then: - required: - - interrupt-parent - - if: properties: compatible: diff --git a/Documentation/devicetree/bindings/mfd/cirrus,madera.yaml b/Documentation/devicetree/bindings/mfd/cirrus,madera.yaml index 499c62c04daa..5dce62a7eff2 100644 --- a/Documentation/devicetree/bindings/mfd/cirrus,madera.yaml +++ b/Documentation/devicetree/bindings/mfd/cirrus,madera.yaml @@ -221,7 +221,6 @@ required: - '#gpio-cells' - interrupt-controller - '#interrupt-cells' - - interrupt-parent - interrupts - AVDD-supply - DBVDD1-supply diff --git a/Documentation/devicetree/bindings/net/lantiq,etop-xway.yaml b/Documentation/devicetree/bindings/net/lantiq,etop-xway.yaml index 437502c5ca96..3ce9f9a16baf 100644 --- a/Documentation/devicetree/bindings/net/lantiq,etop-xway.yaml +++ b/Documentation/devicetree/bindings/net/lantiq,etop-xway.yaml @@ -46,7 +46,6 @@ properties: required: - compatible - reg - - interrupt-parent - interrupts - interrupt-names - lantiq,tx-burst-length diff --git a/Documentation/devicetree/bindings/net/lantiq,xrx200-net.yaml b/Documentation/devicetree/bindings/net/lantiq,xrx200-net.yaml index 7bc074a42369..5bc1a21ca579 100644 --- a/Documentation/devicetree/bindings/net/lantiq,xrx200-net.yaml +++ b/Documentation/devicetree/bindings/net/lantiq,xrx200-net.yaml @@ -38,7 +38,6 @@ properties: required: - compatible - reg - - interrupt-parent - interrupts - interrupt-names - "#address-cells" diff --git a/Documentation/devicetree/bindings/pci/sifive,fu740-pcie.yaml b/Documentation/devicetree/bindings/pci/sifive,fu740-pcie.yaml index 2b9d1d6fc661..72c78f4ec269 100644 --- a/Documentation/devicetree/bindings/pci/sifive,fu740-pcie.yaml +++ b/Documentation/devicetree/bindings/pci/sifive,fu740-pcie.yaml @@ -61,7 +61,6 @@ required: - num-lanes - interrupts - interrupt-names - - interrupt-parent - interrupt-map-mask - interrupt-map - clock-names diff --git a/Documentation/devicetree/bindings/pci/xilinx-versal-cpm.yaml b/Documentation/devicetree/bindings/pci/xilinx-versal-cpm.yaml index a2bbc0eb7220..32f4641085bc 100644 --- a/Documentation/devicetree/bindings/pci/xilinx-versal-cpm.yaml +++ b/Documentation/devicetree/bindings/pci/xilinx-versal-cpm.yaml @@ -55,7 +55,6 @@ required: - reg-names - "#interrupt-cells" - interrupts - - interrupt-parent - interrupt-map - interrupt-map-mask - bus-range
'interrupt-parent' is never required as it can be in a parent node or a parent node itself can be an interrupt provider. Where exactly it lives is outside the scope of a binding schema. Signed-off-by: Rob Herring <robh@kernel.org> --- .../devicetree/bindings/gpio/toshiba,gpio-visconti.yaml | 1 - .../devicetree/bindings/mailbox/ti,omap-mailbox.yaml | 9 --------- Documentation/devicetree/bindings/mfd/cirrus,madera.yaml | 1 - .../devicetree/bindings/net/lantiq,etop-xway.yaml | 1 - .../devicetree/bindings/net/lantiq,xrx200-net.yaml | 1 - .../devicetree/bindings/pci/sifive,fu740-pcie.yaml | 1 - .../devicetree/bindings/pci/xilinx-versal-cpm.yaml | 1 - 7 files changed, 15 deletions(-)