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@xxxxxxxxxxxxx> > Reviewed-by: Linus Walleij <linus.walleij@xxxxxxxxxx> > --- > .../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@xxxxxxxxxxxxx> > + - Bert Vermeulen <bert@xxxxxxxx> > + > +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 >