On 12/03/2023 23:06, Heiner Kallweit wrote: > Convert Amlogic Meson pin controller binding to yaml. > > Signed-off-by: Heiner Kallweit <hkallweit1@xxxxxxxxx> > --- > v2: > - consider that more than one compatible can be set > - remove bus part from example > v3: > - remove minItem/maxItem properties for compatible > v4: > - split patch to be able to deal with the different reg/reg-names > --- > .../pinctrl/amlogic,meson-pinctrl-a1.yaml | 60 ++++++++++++ > .../pinctrl/amlogic,meson-pinctrl-common.yaml | 53 +++++++++++ > .../amlogic,meson-pinctrl-g12a-aobus.yaml | 61 ++++++++++++ > .../amlogic,meson-pinctrl-g12a-periphs.yaml | 65 +++++++++++++ > .../pinctrl/amlogic,meson8-pinctrl-aobus.yaml | 69 ++++++++++++++ > .../pinctrl/amlogic,meson8-pinctrl-cbus.yaml | 71 ++++++++++++++ > .../bindings/pinctrl/meson,pinctrl.txt | 94 ------------------- > 7 files changed, 379 insertions(+), 94 deletions(-) > create mode 100644 Documentation/devicetree/bindings/pinctrl/amlogic,meson-pinctrl-a1.yaml > create mode 100644 Documentation/devicetree/bindings/pinctrl/amlogic,meson-pinctrl-common.yaml > create mode 100644 Documentation/devicetree/bindings/pinctrl/amlogic,meson-pinctrl-g12a-aobus.yaml > create mode 100644 Documentation/devicetree/bindings/pinctrl/amlogic,meson-pinctrl-g12a-periphs.yaml > create mode 100644 Documentation/devicetree/bindings/pinctrl/amlogic,meson8-pinctrl-aobus.yaml > create mode 100644 Documentation/devicetree/bindings/pinctrl/amlogic,meson8-pinctrl-cbus.yaml > delete mode 100644 Documentation/devicetree/bindings/pinctrl/meson,pinctrl.txt > > diff --git a/Documentation/devicetree/bindings/pinctrl/amlogic,meson-pinctrl-a1.yaml b/Documentation/devicetree/bindings/pinctrl/amlogic,meson-pinctrl-a1.yaml > new file mode 100644 > index 000000000..1db9d8453 > --- /dev/null > +++ b/Documentation/devicetree/bindings/pinctrl/amlogic,meson-pinctrl-a1.yaml > @@ -0,0 +1,60 @@ > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/pinctrl/amlogic,meson-pinctrl-a1.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: Amlogic Meson A1 pinmux controller > + > +maintainers: > + - Neil Armstrong <neil.armstrong@xxxxxxxxxx> > + > +allOf: > + - $ref: amlogic,meson-pinctrl-common.yaml# > + > +properties: > + compatible: > + enum: > + - amlogic,meson-a1-periphs-pinctrl > + - amlogic,meson-s4-periphs-pinctrl > + > +additionalProperties: true No, this cannot be true. This goes to the same place as in example-schema, so before required. > + > +patternProperties: > + "^bank@[0-9a-z]+$": > + $ref: amlogic,meson-pinctrl-common.yaml#/$defs/meson-gpio > + > + properties: > + reg: > + maxItems: 2 > + > + reg-names: > + items: > + - const: mux > + - const: gpio Missing required-compatible. > + > +examples: > + - | > + periphs_pinctrl: pinctrl { > + compatible = "amlogic,meson-a1-periphs-pinctrl"; > + #address-cells = <1>; > + #size-cells = <1>; > + ranges; > + > + bank@400 { > + reg = <0x0400 0x003c>, > + <0x0480 0x0118>; > + reg-names = "mux", "gpio"; > + gpio-controller; > + #gpio-cells = <2>; > + gpio-ranges = <&periphs_pinctrl 0 0 62>; > + > + cec_ao_a_h_pins: cec_ao_a_h { > + mux { > + groups = "cec_ao_a_h"; > + function = "cec_ao_a_h"; > + bias-disable; > + }; > + }; > + }; > + }; > diff --git a/Documentation/devicetree/bindings/pinctrl/amlogic,meson-pinctrl-common.yaml b/Documentation/devicetree/bindings/pinctrl/amlogic,meson-pinctrl-common.yaml > new file mode 100644 > index 000000000..035219f6e > --- /dev/null > +++ b/Documentation/devicetree/bindings/pinctrl/amlogic,meson-pinctrl-common.yaml > @@ -0,0 +1,53 @@ > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/pinctrl/amlogic,meson-pinctrl-common.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: Amlogic Meson pinmux controller > + > +maintainers: > + - Neil Armstrong <neil.armstrong@xxxxxxxxxx> > + > +allOf: > + - $ref: pinctrl.yaml# > + > +properties: > + compatible: true Drop. > + ranges: true > + > + "#address-cells": > + enum: [1, 2] > + > + "#size-cells": > + enum: [1, 2] > + > +required: > + - compatible Drop > + - ranges > + - "#address-cells" > + - "#size-cells" > + > +additionalProperties: > + allOf: > + - $ref: pincfg-node.yaml# > + - $ref: pinmux-node.yaml# I don't think this readable. Properties should rather reference the schema, and now you allow evaluation of anything. Which probably caused your wrong additionalProperties in the first place. This could be part of node definition below. > + > +$defs: > + meson-gpio: > + type: object > + properties: > + gpio-controller: true > + > + "#gpio-cells": > + const: 2 > + > + gpio-ranges: > + maxItems: 1 > + > + required: > + - reg > + - reg-names > + - gpio-controller > + - "#gpio-cells" > + - gpio-ranges > diff --git a/Documentation/devicetree/bindings/pinctrl/amlogic,meson-pinctrl-g12a-aobus.yaml b/Documentation/devicetree/bindings/pinctrl/amlogic,meson-pinctrl-g12a-aobus.yaml > new file mode 100644 > index 000000000..5a84e17f3 > --- /dev/null > +++ b/Documentation/devicetree/bindings/pinctrl/amlogic,meson-pinctrl-g12a-aobus.yaml > @@ -0,0 +1,61 @@ > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/pinctrl/amlogic,meson-pinctrl-g12a-aobus.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: Amlogic Meson G12 AOBUS pinmux controller > + > +maintainers: > + - Neil Armstrong <neil.armstrong@xxxxxxxxxx> > + > +allOf: > + - $ref: amlogic,meson-pinctrl-common.yaml# > + > +properties: > + compatible: > + enum: > + - amlogic,meson-g12a-aobus-pinctrl > + > +additionalProperties: true Same problems... and further as well. Best regards, Krzysztof