Message ID | 20210426095426.118356-2-tsbogend@alpha.franken.de |
---|---|
State | New |
Headers | show |
Series | [v4,1/2] gpio: Add support for IDT 79RC3243x GPIO controller | expand |
On Mon, 26 Apr 2021 11:54:26 +0200, Thomas Bogendoerfer wrote: > Add YAML devicetree binding for IDT 79RC32434 GPIO controller > > Signed-off-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de> > --- > Changes in v4: > - renamed to idt,32434-gpio this time for real > > Changes in v3: > - renamed to idt,32434-gpio > - drop ngpio description > - use gpio0: gpio@50004 in example > > .../bindings/gpio/idt,32434-gpio.yaml | 71 +++++++++++++++++++ > 1 file changed, 71 insertions(+) > create mode 100644 Documentation/devicetree/bindings/gpio/idt,32434-gpio.yaml > Reviewed-by: Rob Herring <robh@kernel.org>
On Mon, Apr 26, 2021 at 11:54 AM Thomas Bogendoerfer <tsbogend@alpha.franken.de> wrote: > Add YAML devicetree binding for IDT 79RC32434 GPIO controller > > Signed-off-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de> > --- > Changes in v4: > - renamed to idt,32434-gpio this time for real Overall looks good to me. > +required: (...) > + - ngpios Is there a *technical* reason why this is required? Can't the driver just default to 32 gpios when not specified? > + - interrupt-controller > + - "#interrupt-cells" > + - interrupts Why can't interrupt support be made optional? It is fine if the driver errors out if not provided, but for the bindings this feels optional. Or does the thing break unless you handle the IRQs? Yours, Linus Walleij
On Sat, May 1, 2021 at 7:13 AM Linus Walleij <linus.walleij@linaro.org> wrote: > > On Mon, Apr 26, 2021 at 11:54 AM Thomas Bogendoerfer > <tsbogend@alpha.franken.de> wrote: > > > Add YAML devicetree binding for IDT 79RC32434 GPIO controller > > > > Signed-off-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de> > > --- > > Changes in v4: > > - renamed to idt,32434-gpio this time for real > > Overall looks good to me. > > > +required: > (...) > > + - ngpios > > Is there a *technical* reason why this is required? > > Can't the driver just default to 32 gpios when not specified? > > > + - interrupt-controller > > + - "#interrupt-cells" > > + - interrupts > > Why can't interrupt support be made optional? > > It is fine if the driver errors out if not provided, but > for the bindings this feels optional. > > Or does the thing break unless you handle the IRQs? If the hardware has interrupts, then we should describe that. It's the OS driver that may or may not support interrupts. Rob
On Tue, May 4, 2021 at 3:44 PM Rob Herring <robh+dt@kernel.org> wrote: > On Sat, May 1, 2021 at 7:13 AM Linus Walleij <linus.walleij@linaro.org> wrote: > > Why can't interrupt support be made optional? (...) > > If the hardware has interrupts, then we should describe that. It's the > OS driver that may or may not support interrupts. You're right of course. What was I thinking. Yours, Linus Walleij
On Sat, May 01, 2021 at 02:13:35PM +0200, Linus Walleij wrote: > On Mon, Apr 26, 2021 at 11:54 AM Thomas Bogendoerfer > <tsbogend@alpha.franken.de> wrote: > > > Add YAML devicetree binding for IDT 79RC32434 GPIO controller > > > > Signed-off-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de> > > --- > > Changes in v4: > > - renamed to idt,32434-gpio this time for real > > Overall looks good to me. > > > +required: > (...) > > + - ngpios > > Is there a *technical* reason why this is required? > > Can't the driver just default to 32 gpios when not specified? sure, I make it optional. > > + - interrupt-controller > > + - "#interrupt-cells" > > + - interrupts > > Why can't interrupt support be made optional? > > It is fine if the driver errors out if not provided, but > for the bindings this feels optional. I'll make them optional. > Or does the thing break unless you handle the IRQs? no, they could be used just as GPIOs. Thomas.
diff --git a/Documentation/devicetree/bindings/gpio/idt,32434-gpio.yaml b/Documentation/devicetree/bindings/gpio/idt,32434-gpio.yaml new file mode 100644 index 000000000000..517d14b6c2e2 --- /dev/null +++ b/Documentation/devicetree/bindings/gpio/idt,32434-gpio.yaml @@ -0,0 +1,71 @@ +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/gpio/idt,32434-gpio.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: IDT 79RC32434 GPIO controller + +maintainers: + - Thomas Bogendoerfer <tsbogend@alpha.franken.de> + +properties: + compatible: + const: idt,32434-gpio + + reg: + maxItems: 2 + + reg-names: + items: + - const: gpio + - const: pic + + gpio-controller: true + + "#gpio-cells": + const: 2 + + ngpios: + minimum: 1 + maximum: 32 + + interrupt-controller: true + + "#interrupt-cells": + const: 2 + + interrupts: + maxItems: 1 + +required: + - compatible + - reg + - reg-names + - gpio-controller + - "#gpio-cells" + - ngpios + - interrupt-controller + - "#interrupt-cells" + - interrupts + +additionalProperties: false + +examples: + - | + gpio0: gpio@50004 { + compatible = "idt,32434-gpio"; + reg = <0x50004 0x10>, <0x38030 0x0c>; + reg-names = "gpio", "pic"; + + interrupt-controller; + #interrupt-cells = <2>; + + interrupt-parent = <&cpuintc>; + interrupts = <6>; + + gpio-controller; + #gpio-cells = <2>; + + ngpios = <14>; + };
Add YAML devicetree binding for IDT 79RC32434 GPIO controller Signed-off-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de> --- Changes in v4: - renamed to idt,32434-gpio this time for real Changes in v3: - renamed to idt,32434-gpio - drop ngpio description - use gpio0: gpio@50004 in example .../bindings/gpio/idt,32434-gpio.yaml | 71 +++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 Documentation/devicetree/bindings/gpio/idt,32434-gpio.yaml