On Mon, Jan 11, 2021 at 07:29:28PM +0100, AngeloGioacchino Del Regno wrote: > Add bindings for the Awinic AW9523/AW9523B I2C GPIO Expander driver. > > Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@xxxxxxxxxxxxxx> > --- > .../pinctrl/awinic,aw9523-pinctrl.yaml | 112 ++++++++++++++++++ > 1 file changed, 112 insertions(+) > create mode 100644 Documentation/devicetree/bindings/pinctrl/awinic,aw9523-pinctrl.yaml > > diff --git a/Documentation/devicetree/bindings/pinctrl/awinic,aw9523-pinctrl.yaml b/Documentation/devicetree/bindings/pinctrl/awinic,aw9523-pinctrl.yaml > new file mode 100644 > index 000000000000..a705c05bb5a2 > --- /dev/null > +++ b/Documentation/devicetree/bindings/pinctrl/awinic,aw9523-pinctrl.yaml > @@ -0,0 +1,112 @@ > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/pinctrl/awinic,aw9523-pinctrl.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: Awinic AW9523/AW9523B I2C GPIO Expander > + > +maintainers: > + - AngeloGioacchino Del Regno <angelogioacchino.delregno@xxxxxxxxxxxxxx> > + > +description: | > + The Awinic AW9523/AW9523B I2C GPIO Expander featuring 16 multi-function > + I/O, 256 steps PWM mode and interrupt support. > + > +properties: > + compatible: > + const: awinic,aw9523-pinctrl > + > + reg: > + maxItems: 1 > + > + '#gpio-cells': > + description: | > + Specifying the pin number and flags, as defined in > + include/dt-bindings/gpio/gpio.h > + const: 2 > + > + gpio-controller: true > + > + gpio-ranges: > + maxItems: 1 > + > + interrupt-controller: true > + > + interrupts: > + maxItems: 1 > + description: Specifies the INTN pin IRQ. > + > + '#interrupt-cells': > + description: > + Specifies the PIN numbers and Flags, as defined in defined in > + include/dt-bindings/interrupt-controller/irq.h > + const: 2 > + > +#PIN CONFIGURATION NODES > +patternProperties: > + '^.*$': > + if: > + type: object > + $ref: "/schemas/pinctrl/pincfg-node.yaml" > + then: I wish people would stop copying this if/then hack... For new bindings, just name your nodes something sensible you can match on like '-pins$'. > + properties: > + pins: > + description: > + List of gpio pins affected by the properties specified in > + this subnode. > + items: > + pattern: "^gpio([0-9]|1[0-5])$" > + minItems: 1 > + maxItems: 16 > + > + function: > + description: > + Specify the alternative function to be configured for the > + specified pins. > + > + enum: [ gpio, pwm ] > + > + bias-disable: true > + bias-pull-down: true > + bias-pull-up: true > + drive-open-drain: true > + drive-push-pull: true > + input-enable: true > + output-high: true > + output-low: true > + > + required: > + - pins > + - function > + > + additionalProperties: false > + > +required: > + - compatible > + - reg > + - gpio-controller > + - '#gpio-cells' > + - gpio-ranges > + > +additionalProperties: false > + > +examples: > + - | > + #include <dt-bindings/gpio/gpio.h> > + #include <dt-bindings/interrupt-controller/irq.h> > + > + i2c_node { > + gpio-expander@58 { > + compatible = "awinic,aw9523-pinctrl"; > + reg = <0x58>; > + interrupt-parent = <&tlmm>; > + interrupts = <50 IRQ_TYPE_EDGE_FALLING>; > + gpio-controller; > + #gpio-cells = <2>; > + gpio-ranges = <&tlmm 0 0 16>; > + interrupt-controller; > + #interrupt-cells = <2>; > + reset-gpios = <&tlmm 51 GPIO_ACTIVE_HIGH>; > + }; > + }; > -- > 2.29.2 >