Thread (4 messages) 4 messages, 3 authors, 2020-08-20

Re: [PATCH/RFC v2] dt-bindings: pinctrl: sh-pfc: Convert to json-schema

From: Geert Uytterhoeven <geert@linux-m68k.org>
Date: 2020-08-20 11:25:36
Also in: linux-gpio, linux-renesas-soc

Hi Rob,

On Tue, Aug 18, 2020 at 9:10 AM Geert Uytterhoeven [off-list ref] wrote:
On Tue, Aug 18, 2020 at 1:32 AM Rob Herring [off-list ref] wrote:
quoted
On Fri, Aug 07, 2020 at 04:13:45PM +0200, Geert Uytterhoeven wrote:
quoted
Convert the Renesas Pin Function Controller (PFC) Device Tree binding
documentation to json-schema.

Document missing properties.
Drop deprecated and obsolete #gpio-range-cells property.
Update the example to match reality.
Drop consumer examples, as they do not belong here.

Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
---
Still RFC, due to the FIXMEs near the enum descriptions.
If I enable the enums checks, I get e.g.:

    [[1800]] is not one of [1800, 3300]

Note the double square brackets around 1800.
The usual error message doesn't have them, e.g.:

    2000 is not one of [1800, 3300]

So this looks like a bug in the tooling?
Yes, we only recently started supporting schemas under
'additionalProperties', but failed to apply fixups.

I have a fix I'm testing out. I'm bumping the version requirement in
5.10, so I'll make sure it is there.
Thanks, looking forward to it.
I can confirm this is fixed in v2020.08.1.
quoted
quoted
--- /dev/null
+++ b/Documentation/devicetree/bindings/pinctrl/renesas,pfc.yaml
quoted
quoted
+  interrupts-extended:
Just use 'interrupts' here. 'interrupt-extended' is always magically
supported.
Apparently not everywhere...

    Documentation/devicetree/bindings/pinctrl/renesas,pfc.example.dt.yaml:
pin-controller@e6050000: 'interrupts' is a required property
The existing fixup doesn't handle "required: interrupts"  if that is inside an
if/then/else block.
quoted
quoted
+additionalProperties:
+  anyOf:
+    - type: object
+      allOf:
+        - $ref: pincfg-node.yaml#
+        - $ref: pinmux-node.yaml#
+
+      description:
+        Pin controller client devices use pin configuration subnodes (children
+        and grandchildren) for desired pin configuration.
+        Client device subnodes use below standard properties.
+
+      properties:
+        phandle: true
Once fixed, this won't be necessary.
OK.
Seems to be still an issue in v2020.08.1?
quoted
quoted
+        function: true
+        groups: true
+        pins: true
+        bias-disable: true
+        bias-pull-down: true
+        bias-pull-up: true
+        drive-strength:
+          true # FIXME enum: [ 3, 6, 9, 12, 15, 18, 21, 24 ] # Superset of supported values
+          # avb:pins_mdio:drive-strength: [[24]] is not one of [3, 6, 9, 12, 15, 18, 21, 24]
+        power-source:
+          true # FIXME enum: [ 1800, 3300 ]
+          # sd0_uhs:power-source: [[1800]] is not one of [1800, 3300]
+        gpio-hog: true
+        gpios: true
+        input: true
+        output-high: true
+        output-low: true
+
+      additionalProperties: false
+
+    - type: object
+      properties:
+        phandle: true
For this one, you can just link it back to the first entry:

- type: object
  additionalProperties:
    $ref: "#/additionalProperties/anyOf/0"
Thanks, cool!
Works great!

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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help