Message ID | 20210315190806.66762-2-sander@svanheule.net |
---|---|
State | Superseded |
Headers | show |
Series | Add Realtek Otto GPIO support | expand |
On Mon, Mar 15, 2021 at 08:08:05PM +0100, Sander Vanheule wrote: > Add a binding description for Realtek's GPIO controller found on several > of their MIPS-based SoCs (codenamed Otto), such as the RTL838x and > RTL839x series of switch SoCs. > > A fallback binding 'realtek,otto-gpio' is provided for cases where the > actual port ordering is not known yet, and enabling the interrupt > controller may result in uncaught interrupts. > > Signed-off-by: Sander Vanheule <sander@svanheule.net> > Reviewed-by: Linus Walleij <linus.walleij@linaro.org> > --- > .../bindings/gpio/gpio-realtek-otto.yaml | 80 +++++++++++++++++++ Use compatible string: realtek,otto-gpio.yaml > 1 file changed, 80 insertions(+) > create mode 100644 Documentation/devicetree/bindings/gpio/gpio-realtek-otto.yaml > > diff --git a/Documentation/devicetree/bindings/gpio/gpio-realtek-otto.yaml b/Documentation/devicetree/bindings/gpio/gpio-realtek-otto.yaml > new file mode 100644 > index 000000000000..3e8151e3a169 > --- /dev/null > +++ b/Documentation/devicetree/bindings/gpio/gpio-realtek-otto.yaml > @@ -0,0 +1,80 @@ > +# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/gpio/gpio-realtek-otto.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: Realtek Otto GPIO controller > + > +maintainers: > + - Sander Vanheule <sander@svanheule.net> > + - Bert Vermeulen <bert@biot.com> > + > +description: | > + Realtek's GPIO controller on their MIPS switch SoCs (Otto platform) consists > + of two banks of 32 GPIOs. These GPIOs can generate edge-triggered interrupts. > + Each bank's interrupts are cascased into one interrupt line on the parent > + interrupt controller, if provided. > + This binding allows defining a single bank in the devicetree. The interrupt > + controller is not supported on the fallback compatible name, which only > + allows for GPIO port use. > + > +properties: > + $nodename: > + pattern: "^gpio@[0-9a-f]+$" > + > + compatible: > + oneOf: > + - items: > + - enum: > + - realtek,rtl8380-gpio > + - realtek,rtl8390-gpio > + - const: realtek,otto-gpio > + - const: realtek,otto-gpio This should be dropped. You should always have an SoC specific compatible. > + > + reg: > + maxItems: 1 > + > + "#gpio-cells": > + const: 2 > + > + gpio-controller: true > + > + ngpios: > + minimum: 1 > + maximum: 32 > + > + interrupt-controller: true > + > + "#interrupt-cells": > + const: 2 > + > + interrupts: > + maxItems: 1 > + > +required: > + - compatible > + - reg > + - "#gpio-cells" > + - gpio-controller > + > +additionalProperties: false > + > +dependencies: > + interrupt-controller: [ interrupts ] > + > +examples: > + - | > + gpio@3500 { > + compatible = "realtek,rtl8380-gpio", "realtek,otto-gpio"; > + reg = <0x3500 0x1c>; > + gpio-controller; > + #gpio-cells = <2>; > + ngpios = <24>; > + interrupt-controller; > + #interrupt-cells = <2>; > + interrupt-parent = <&rtlintc>; > + interrupts = <23>; > + }; > + > +... > -- > 2.30.2 >
diff --git a/Documentation/devicetree/bindings/gpio/gpio-realtek-otto.yaml b/Documentation/devicetree/bindings/gpio/gpio-realtek-otto.yaml new file mode 100644 index 000000000000..3e8151e3a169 --- /dev/null +++ b/Documentation/devicetree/bindings/gpio/gpio-realtek-otto.yaml @@ -0,0 +1,80 @@ +# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/gpio/gpio-realtek-otto.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Realtek Otto GPIO controller + +maintainers: + - Sander Vanheule <sander@svanheule.net> + - Bert Vermeulen <bert@biot.com> + +description: | + Realtek's GPIO controller on their MIPS switch SoCs (Otto platform) consists + of two banks of 32 GPIOs. These GPIOs can generate edge-triggered interrupts. + Each bank's interrupts are cascased into one interrupt line on the parent + interrupt controller, if provided. + This binding allows defining a single bank in the devicetree. The interrupt + controller is not supported on the fallback compatible name, which only + allows for GPIO port use. + +properties: + $nodename: + pattern: "^gpio@[0-9a-f]+$" + + compatible: + oneOf: + - items: + - enum: + - realtek,rtl8380-gpio + - realtek,rtl8390-gpio + - const: realtek,otto-gpio + - const: realtek,otto-gpio + + reg: + maxItems: 1 + + "#gpio-cells": + const: 2 + + gpio-controller: true + + ngpios: + minimum: 1 + maximum: 32 + + interrupt-controller: true + + "#interrupt-cells": + const: 2 + + interrupts: + maxItems: 1 + +required: + - compatible + - reg + - "#gpio-cells" + - gpio-controller + +additionalProperties: false + +dependencies: + interrupt-controller: [ interrupts ] + +examples: + - | + gpio@3500 { + compatible = "realtek,rtl8380-gpio", "realtek,otto-gpio"; + reg = <0x3500 0x1c>; + gpio-controller; + #gpio-cells = <2>; + ngpios = <24>; + interrupt-controller; + #interrupt-cells = <2>; + interrupt-parent = <&rtlintc>; + interrupts = <23>; + }; + +...