Re: [PATCH 4/8] dt-bindings: pinctrl: Add Nuvoton WPCM450

From: Linus Walleij
Date: Fri Jun 04 2021 - 05:37:04 EST


Hi Jonathan!

thanks for your patch!

On Wed, Jun 2, 2021 at 2:04 PM Jonathan Neuschäfer
<j.neuschaefer@xxxxxxx> wrote:

> + interrupts: true

maxitems 4 right?

Make an enum:

interrupts:
- description: what IRQ0 is for
- description: what IRQ1 is for
- description: what IRQ2 is for
- description: what IRQ3 is for

And describe how these interrupts are used. Because I am suspicious that they
actually correspond to 4 different GPIO blocks, which should then be their own
nodes.

> +examples:
> + - |
> + #include <dt-bindings/interrupt-controller/irq.h>
> + #include <dt-bindings/gpio/gpio.h>
> + pinctrl: pinctrl@b8003000 {
> + compatible = "nuvoton,wpcm450-pinctrl";
> + reg = <0xb8003000 0x1000>;
> + gpio-controller;
> + #gpio-cells = <2>;
> + interrupts = <2 IRQ_TYPE_LEVEL_HIGH
> + 3 IRQ_TYPE_LEVEL_HIGH
> + 4 IRQ_TYPE_LEVEL_HIGH
> + 5 IRQ_TYPE_LEVEL_HIGH>;

So these.

> + rmii2 {
> + groups = "rmii2";
> + function = "rmii2";
> + };
> +
> + pinctrl_uid: uid {
> + pins = "gpio14";
> + input-debounce = <1>;
> + };

I challenge you here and encourage you to put a node for each
GPIO "port":

port0: gpio@0 {
....
};
port1: gpio@1 {
....
};


> + gpio-keys {
> + compatible = "gpio-keys";
> + pinctrl-names = "default";
> + pinctrl-0 = <&pinctrl_uid>;
> +
> + uid {
> + label = "UID";
> + linux,code = <102>;
> + gpios = <&pinctrl 14 GPIO_ACTIVE_HIGH>;

Would be gpios <&port0 14...>

Yours,
Linus Walleij