On 25.03.2023 12:18, Krzysztof Kozlowski wrote: > On 24/03/2023 23:51, Heiner Kallweit wrote: >> Convert Amlogic Meson pin controller binding to yaml. >> >> Reviewed-by: Rob Herring <robh@xxxxxxxxxx> >> 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 >> v5: >> - remove compatible definition from common yaml >> - move pincfg-node and pinmux-node definition to meson-gpio object definition >> v6: >> - add meson-pins definition >> - change usage of unevaluatedProperties >> v7: >> - add unevaluatedProperties to meson-gpio references under patternProperties >> --- >> .../pinctrl/amlogic,meson-pinctrl-a1.yaml | 67 +++++++++++++ >> .../pinctrl/amlogic,meson-pinctrl-common.yaml | 57 +++++++++++ >> .../amlogic,meson-pinctrl-g12a-aobus.yaml | 68 ++++++++++++++ >> .../amlogic,meson-pinctrl-g12a-periphs.yaml | 72 ++++++++++++++ >> .../pinctrl/amlogic,meson8-pinctrl-aobus.yaml | 76 +++++++++++++++ >> .../pinctrl/amlogic,meson8-pinctrl-cbus.yaml | 78 +++++++++++++++ >> .../bindings/pinctrl/meson,pinctrl.txt | 94 ------------------- >> 7 files changed, 418 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..1a8f2d248 >> --- /dev/null >> +++ b/Documentation/devicetree/bindings/pinctrl/amlogic,meson-pinctrl-a1.yaml >> @@ -0,0 +1,67 @@ >> +# 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 >> + >> +required: >> + - compatible >> + >> +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 >> + >> + unevaluatedProperties: false >> + >> +unevaluatedProperties: >> + type: object >> + $ref: amlogic,meson-pinctrl-common.yaml#/$defs/meson-pins >> + >> +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..a7b29ef0b >> --- /dev/null >> +++ b/Documentation/devicetree/bindings/pinctrl/amlogic,meson-pinctrl-common.yaml >> @@ -0,0 +1,57 @@ >> +# 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: >> + ranges: true >> + >> + "#address-cells": >> + enum: [1, 2] >> + >> + "#size-cells": >> + enum: [1, 2] >> + >> +required: >> + - ranges >> + - "#address-cells" >> + - "#size-cells" >> + >> +additionalProperties: true >> + >> +$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 >> + >> + meson-pins: >> + type: object >> + additionalProperties: >> + type: object >> + allOf: >> + - $ref: pincfg-node.yaml# >> + - $ref: pinmux-node.yaml# >> 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..6fd3d88f0 >> --- /dev/null >> +++ b/Documentation/devicetree/bindings/pinctrl/amlogic,meson-pinctrl-g12a-aobus.yaml >> @@ -0,0 +1,68 @@ >> +# 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 >> + >> +required: >> + - compatible >> + >> +patternProperties: >> + "^bank@[0-9a-z]+$": >> + $ref: amlogic,meson-pinctrl-common.yaml#/$defs/meson-gpio >> + >> + properties: >> + reg: >> + maxItems: 3 >> + >> + reg-names: >> + items: >> + - const: mux >> + - const: ds >> + - const: gpio >> + >> + unevaluatedProperties: false >> + >> +unevaluatedProperties: >> + type: object >> + $ref: amlogic,meson-pinctrl-common.yaml#/$defs/meson-pins >> + >> +examples: >> + - | >> + ao_pinctrl: pinctrl { >> + compatible = "amlogic,meson-g12a-aobus-pinctrl"; >> + #address-cells = <1>; >> + #size-cells = <1>; >> + ranges; >> + >> + bank@14 { >> + reg = <0x14 0x8>, >> + <0x1c 0x8>, >> + <0x24 0x14>; >> + reg-names = "mux", "ds", "gpio"; >> + gpio-controller; >> + #gpio-cells = <2>; >> + gpio-ranges = <&ao_pinctrl 0 0 15>; >> + }; >> + >> + 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-g12a-periphs.yaml b/Documentation/devicetree/bindings/pinctrl/amlogic,meson-pinctrl-g12a-periphs.yaml >> new file mode 100644 >> index 000000000..b68d1bb06 >> --- /dev/null >> +++ b/Documentation/devicetree/bindings/pinctrl/amlogic,meson-pinctrl-g12a-periphs.yaml >> @@ -0,0 +1,72 @@ >> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) >> +%YAML 1.2 >> +--- >> +$id: http://devicetree.org/schemas/pinctrl/amlogic,meson-pinctrl-g12a-periphs.yaml# >> +$schema: http://devicetree.org/meta-schemas/core.yaml# >> + >> +title: Amlogic Meson G12 PERIPHS pinmux controller >> + >> +maintainers: >> + - Neil Armstrong <neil.armstrong@xxxxxxxxxx> >> + >> +allOf: >> + - $ref: amlogic,meson-pinctrl-common.yaml# >> + >> +properties: >> + compatible: >> + enum: >> + - amlogic,meson-g12a-periphs-pinctrl >> + >> +required: >> + - compatible >> + >> +patternProperties: >> + "^bank@[0-9a-z]+$": >> + $ref: amlogic,meson-pinctrl-common.yaml#/$defs/meson-gpio >> + >> + properties: >> + reg: >> + maxItems: 5 >> + >> + reg-names: >> + items: >> + - const: gpio >> + - const: pull >> + - const: pull-enable >> + - const: mux >> + - const: ds >> + >> + unevaluatedProperties: false >> + >> +unevaluatedProperties: >> + type: object >> + $ref: amlogic,meson-pinctrl-common.yaml#/$defs/meson-pins >> + >> +examples: >> + - | >> + periphs_pinctrl: pinctrl { >> + compatible = "amlogic,meson-g12a-periphs-pinctrl"; >> + #address-cells = <1>; >> + #size-cells = <1>; >> + ranges; >> + >> + bank@40 { >> + reg = <0x40 0x4c>, >> + <0xe8 0x18>, >> + <0x120 0x18>, >> + <0x2c0 0x40>, >> + <0x340 0x1c>; >> + reg-names = "gpio", "pull", "pull-enable", "mux", "ds"; >> + gpio-controller; >> + #gpio-cells = <2>; >> + gpio-ranges = <&periphs_pinctrl 0 0 86>; >> + }; >> + >> + 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,meson8-pinctrl-aobus.yaml b/Documentation/devicetree/bindings/pinctrl/amlogic,meson8-pinctrl-aobus.yaml >> new file mode 100644 >> index 000000000..f529ecf8e >> --- /dev/null >> +++ b/Documentation/devicetree/bindings/pinctrl/amlogic,meson8-pinctrl-aobus.yaml >> @@ -0,0 +1,76 @@ >> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) >> +%YAML 1.2 >> +--- >> +$id: http://devicetree.org/schemas/pinctrl/amlogic,meson8-pinctrl-aobus.yaml# >> +$schema: http://devicetree.org/meta-schemas/core.yaml# >> + >> +title: Amlogic Meson8 AOBUS pinmux controller >> + >> +maintainers: >> + - Neil Armstrong <neil.armstrong@xxxxxxxxxx> >> + >> +allOf: >> + - $ref: amlogic,meson-pinctrl-common.yaml# >> + >> +properties: >> + compatible: >> + oneOf: >> + - enum: >> + - amlogic,meson8-aobus-pinctrl >> + - amlogic,meson8b-aobus-pinctrl >> + - amlogic,meson-gxbb-aobus-pinctrl >> + - amlogic,meson-gxl-aobus-pinctrl >> + - amlogic,meson-axg-aobus-pinctrl >> + - items: >> + - const: amlogic,meson8m2-aobus-pinctrl >> + - const: amlogic,meson8-aobus-pinctrl >> + >> +required: >> + - compatible >> + >> +patternProperties: >> + "^bank@[0-9a-z]+$": >> + $ref: amlogic,meson-pinctrl-common.yaml#/$defs/meson-gpio >> + >> + properties: >> + reg: >> + maxItems: 3 >> + >> + reg-names: >> + items: >> + - const: mux >> + - const: pull >> + - const: gpio >> + >> + unevaluatedProperties: false >> + >> +unevaluatedProperties: >> + type: object >> + $ref: amlogic,meson-pinctrl-common.yaml#/$defs/meson-pins >> + >> +examples: >> + - | >> + pinctrl_aobus: pinctrl { >> + compatible = "amlogic,meson8-aobus-pinctrl"; >> + #address-cells = <1>; >> + #size-cells = <1>; >> + ranges; >> + >> + bank@14 { >> + reg = <0x14 0x4>, >> + <0x2c 0x4>, >> + <0x24 0x8>; >> + reg-names = "mux", "pull", "gpio"; >> + gpio-controller; >> + #gpio-cells = <2>; >> + gpio-ranges = <&pinctrl_aobus 0 0 16>; >> + }; >> + >> + 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,meson8-pinctrl-cbus.yaml b/Documentation/devicetree/bindings/pinctrl/amlogic,meson8-pinctrl-cbus.yaml >> new file mode 100644 >> index 000000000..c12f9ec58 >> --- /dev/null >> +++ b/Documentation/devicetree/bindings/pinctrl/amlogic,meson8-pinctrl-cbus.yaml >> @@ -0,0 +1,78 @@ >> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) >> +%YAML 1.2 >> +--- >> +$id: http://devicetree.org/schemas/pinctrl/amlogic,meson8-pinctrl-cbus.yaml# >> +$schema: http://devicetree.org/meta-schemas/core.yaml# >> + >> +title: Amlogic Meson8 CBUS pinmux controller >> + >> +maintainers: >> + - Neil Armstrong <neil.armstrong@xxxxxxxxxx> >> + >> +allOf: >> + - $ref: amlogic,meson-pinctrl-common.yaml# >> + >> +properties: >> + compatible: >> + oneOf: >> + - enum: >> + - amlogic,meson8-cbus-pinctrl >> + - amlogic,meson8b-cbus-pinctrl >> + - amlogic,meson-gxbb-periphs-pinctrl >> + - amlogic,meson-gxl-periphs-pinctrl >> + - amlogic,meson-axg-periphs-pinctrl >> + - items: >> + - const: amlogic,meson8m2-cbus-pinctrl >> + - const: amlogic,meson8-cbus-pinctrl >> + >> +required: >> + - compatible >> + >> +patternProperties: >> + "^bank@[0-9a-z]+$": >> + $ref: amlogic,meson-pinctrl-common.yaml#/$defs/meson-gpio >> + >> + properties: >> + reg: >> + maxItems: 4 >> + >> + reg-names: >> + items: >> + - const: mux >> + - const: pull >> + - const: pull-enable >> + - const: gpio >> + >> + unevaluatedProperties: false > > Wrong placement. Rob asked you to put it after $ref and the review was > conditional based on this. Don't add review-tag if you do not follow the > comment. > I wasn't aware that this makes a difference, and in e.g. samsung,pinctrl.yaml I found it at the end of the patternProperties block. Thanks for the hint, then I will correct this and resubmit. patternProperties: "^(pin-[a-z0-9-]+|[a-z0-9-]+-pin)$": $ref: samsung,pinctrl-pins-cfg.yaml properties: samsung,pins: description: See samsung,pinctrl-pins-cfg.yaml $ref: /schemas/types.yaml#/definitions/string-array maxItems: 1 required: - samsung,pins unevaluatedProperties: false > Best regards, > Krzysztof >