Thread (3 messages) 3 messages, 2 authors, 2021-11-04

Re: [PATCH v2] dt-bindings: pinctrl: uniphier: Add child node definitions to describe pin mux and configuration

From: Kunihiko Hayashi <hayashi.kunihiko@socionext.com>
Date: 2021-11-04 07:32:29
Also in: linux-devicetree, linux-gpio, lkml

On 2021/11/03 5:57, Rob Herring wrote:
On Thu, Oct 28, 2021 at 10:46:39AM +0900, Kunihiko Hayashi wrote:
quoted
In arch/arm/boot/dts/uniphier-pinctrl.dtsi, there are child nodes of
pinctrl that defines pinmux and pincfg, however, there are no rules about
that in dt-bindings.

'make dtbs_check' results an error with the following message:

    pinctrl: 'ain1', 'ain2', 'ainiec1', 'aout', 'aout1', 'aout2', ...
    ... 'usb2', 'usb3' do not match any of the regexes: 'pinctrl-[0-9]+'

To avoid this issue, add the rules of pinmux and pincfg in each child node
and grandchild node.

Signed-off-by: Kunihiko Hayashi <hayashi.kunihiko@socionext.com>
---
Changes since v1:
- Replace additionalProperties with unevaluatedProperties
- Add additionalProperties for child and grandchild nodes

  .../pinctrl/socionext,uniphier-pinctrl.yaml        | 50 +++++++++++++++++++++-
  1 file changed, 49 insertions(+), 1 deletion(-)
diff --git a/Documentation/devicetree/bindings/pinctrl/socionext,uniphier-pinctrl.yaml
b/Documentation/devicetree/bindings/pinctrl/socionext,uniphier-pinctrl.yaml
quoted
index a804d9bc1602..7e504e003181 100644
--- a/Documentation/devicetree/bindings/pinctrl/socionext,uniphier-pinctrl.yaml
+++ b/Documentation/devicetree/bindings/pinctrl/socionext,uniphier-pinctrl.yaml
@@ -26,10 +26,58 @@ properties:
        - socionext,uniphier-pxs3-pinctrl
        - socionext,uniphier-nx1-pinctrl
  
+additionalProperties:
+  type: object
+
+patternProperties:
+  "^.*$":
+    if:
+      type: object
+    then:
+      allOf:
All of the above should be:

additionalProperties:
   type: object
   allOf:
   ...
I see. I'll rewrite it instead of "patternProperties".
quoted
+        - $ref: pincfg-node.yaml#
+        - $ref: pinmux-node.yaml#
+
+      properties:
+        phandle: true
+        function: true
+        groups: true
+        pins: true
+        bias-pull-up: true
+        bias-pull-down: true
+        bias-pull-pin-default: true
+        drive-strength: true
+
+      additionalProperties:
+        type: object
+
+      patternProperties:
+        "^.*$":
+          if:
+            type: object
+          then:
+            allOf:
+              - $ref: pincfg-node.yaml#
+              - $ref: pinmux-node.yaml#
+
+            properties:
+              phandle: true
+              function: true
+              groups: true
+              pins: true
+              bias-pull-up: true
+              bias-pull-down: true
+              bias-pull-pin-default: true
+              drive-strength: true
+
+            unevaluatedProperties: false
+
+      unevaluatedProperties: false
+
  required:
    - compatible
  
-additionalProperties: false
+unevaluatedProperties: false
Drop +unevaluatedProperties.
I understand that "additionalProperties" has already been used at the top
level, so this "unevaluatedProperties" is unnecessary.

For the same reason, "unevaluatedProperties" at the child node is also unnecessary.

I think "unevaluatedProperties" at the grandchild node should be left because
the grandchild node doesn't have "additionalProperties".


additionalProperties:
   type: object
   allOf:
     ...
     additionalProperties:
       type: object
       allOf:
         ...
         unevaluatedProperties: false
     [X]
[X]

Thank you,

---
Best Regards
Kunihiko Hayashi

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help