Skip to contentSkip to conversation

dt-bindings: mfd: aspeed: Drop 'oneOf' for pinctrl node

PATCH Applied Rob Herring (Arm) 3 participants 5 messages Apr 30, 2024 – May 2, 2024

Subsystems (4)
lore
Share & tools
lore

Rob Herring (Arm)

author maintainer
#0 lore raw

PATCH 1/1 dt-bindings: mfd: aspeed: Drop 'oneOf' for pinctrl node

The use of 'oneOf' to include 1 of 3 possible child node schemas results in error messages containing the actual error message(s) for the correct SoC buried in the tons of error messages from the 2 schemas that don't apply. It also causes the pinctrl schema to be applied twice as it will be applied when the compatible matches.

All that's really needed in the parent schema is to ensure one of the possible compatible strings is present in the pinctrl node so that its schema will be applied separately.

---
 .../bindings/mfd/aspeed,ast2x00-scu.yaml         | 16 ++++++++++++----
 1 file changed, 12 insertions(+), 4 deletions(-)
Documentation/devicetree/bindings/mfd/aspeed,ast2x00-scu.yaml +12 -4
index 1689b986f441..86ee69c0f45b 100644
@@ -47,10 +47,18 @@ patternProperties:
     type: object
 
   '^pinctrl(@[0-9a-f]+)?$':
-    oneOf:
-      - $ref: /schemas/pinctrl/aspeed,ast2400-pinctrl.yaml
-      - $ref: /schemas/pinctrl/aspeed,ast2500-pinctrl.yaml
-      - $ref: /schemas/pinctrl/aspeed,ast2600-pinctrl.yaml
+    type: object
+    additionalProperties: true
+    properties:
+      compatible:
+        contains:
+          enum:
+            - aspeed,ast2400-pinctrl
+            - aspeed,ast2500-pinctrl
+            - aspeed,ast2600-pinctrl
+
+    required:
+      - compatible
 
   '^interrupt-controller@[0-9a-f]+$':
     description: See Documentation/devicetree/bindings/interrupt-controller/aspeed,ast2xxx-scu-ic.txt
Signature · 1 line
2.43.0
maintainer
#1 lore raw
Quoted 9 lines · Rob Herring (Arm)

The use of 'oneOf' to include 1 of 3 possible child node schemas results in error messages containing the actual error message(s) for the correct SoC buried in the tons of error messages from the 2 schemas that don't apply. It also causes the pinctrl schema to be applied twice as it will be applied when the compatible matches.

All that's really needed in the parent schema is to ensure one of the possible compatible strings is present in the pinctrl node so that its schema will be applied separately.

Thanks, I think it improves the readability of intent in the binding as well.

To understand the impact better I grabbed the patch and diffed the output of make CHECK_DTBS=y aspeed/aspeed-ast2600-evb.dtb before and after applying it, but there was no significant difference in output. Should that not demonstrate the errors being cleaned up? If not, what should?

Andrew

author maintainer
#2 lore raw
Quoted 12 lines · On Tue, Apr 30, 2024 at 7:40?PM Andrew Jeffery <[email protected]>…
Quoted 9 lines · Rob Herring (Arm)

The use of 'oneOf' to include 1 of 3 possible child node schemas results in error messages containing the actual error message(s) for the correct SoC buried in the tons of error messages from the 2 schemas that don't apply. It also causes the pinctrl schema to be applied twice as it will be applied when the compatible matches.

All that's really needed in the parent schema is to ensure one of the possible compatible strings is present in the pinctrl node so that its schema will be applied separately.

Quoted 8 lines

Thanks, I think it improves the readability of intent in the binding as well.

To understand the impact better I grabbed the patch and diffed the output of make CHECK_DTBS=y aspeed/aspeed-ast2600-evb.dtb before and after applying it, but there was no significant difference in output. Should that not demonstrate the errors being cleaned up? If not, what should?

Try it on one of the new boards posted in the last 1-2 days. It showed up on my testing dtbs_check on patches. I didn't send a report because there was so much noise in it.

Rob

maintainer Reviewed-by
#3 lore raw
Quoted 23 lines · Rob Herring
Quoted 12 lines · On Tue, Apr 30, 2024 at 7:40?PM Andrew Jeffery <[email protected]>…
Quoted 9 lines · Rob Herring (Arm)

The use of 'oneOf' to include 1 of 3 possible child node schemas results in error messages containing the actual error message(s) for the correct SoC buried in the tons of error messages from the 2 schemas that don't apply. It also causes the pinctrl schema to be applied twice as it will be applied when the compatible matches.

All that's really needed in the parent schema is to ensure one of the possible compatible strings is present in the pinctrl node so that its schema will be applied separately.

Quoted 8 lines

Thanks, I think it improves the readability of intent in the binding as well.

To understand the impact better I grabbed the patch and diffed the output of make CHECK_DTBS=y aspeed/aspeed-ast2600-evb.dtb before and after applying it, but there was no significant difference in output. Should that not demonstrate the errors being cleaned up? If not, what should?

Quoted 3 lines

Try it on one of the new boards posted in the last 1-2 days. It showed up on my testing dtbs_check on patches. I didn't send a report because there was so much noise in it.

I tried with aspeed/aspeed-bmc-ibm-blueridge.dtb and yeah, it does clean up a lot of barf. Nice. Thanks.

[1]: https://lore.kernel.org/lkml/20240429210131.373487-14-eajames at linux.ibm.com/

maintainer Applied
#4 lore raw

Re: (subset) [PATCH] dt-bindings: mfd: aspeed: Drop 'oneOf' for pinctrl node

In reply to Rob Herring (Arm)
Quoted 11 lines · Rob Herring (Arm)

The use of 'oneOf' to include 1 of 3 possible child node schemas results in error messages containing the actual error message(s) for the correct SoC buried in the tons of error messages from the 2 schemas that don't apply. It also causes the pinctrl schema to be applied twice as it will be applied when the compatible matches.

All that's really needed in the parent schema is to ensure one of the possible compatible strings is present in the pinctrl node so that its schema will be applied separately.

[...]

Applied, thanks!

[1/1] dt-bindings: mfd: aspeed: Drop 'oneOf' for pinctrl node

      commit: 8f553c27697bc5e11074e37dfc0def6e39e489b2

--
Lee Jones [???]