Message ID | 20231227130810.2744550-1-claudiu.beznea.uj@bp.renesas.com (mailing list archive) |
---|---|
State | Mainlined |
Commit | 347c80f7c7b207ad8cb183822df75f70b7dc0773 |
Delegated to: | Geert Uytterhoeven |
Headers | show |
Series | arm64: dts: renesas: rzg3s-smarc: Add gpio keys | expand |
Hi Claudiu, On Wed, Dec 27, 2023 at 2:08 PM Claudiu <claudiu.beznea@tuxon.dev> wrote: > From: Claudiu Beznea <claudiu.beznea.uj@bp.renesas.com> > > RZ SMARC Carrier II board has 3 user buttons called USER_SW1, USER_SW2, > USER_SW3. Add a DT node in device tree to propertly instantiate the > gpio-keys driver for these buttons. > > Signed-off-by: Claudiu Beznea <claudiu.beznea.uj@bp.renesas.com> Thanks for your patch! > --- a/arch/arm64/boot/dts/renesas/rzg3s-smarc.dtsi > +++ b/arch/arm64/boot/dts/renesas/rzg3s-smarc.dtsi > @@ -6,6 +6,7 @@ > */ > > #include <dt-bindings/gpio/gpio.h> > +#include <dt-bindings/input/input.h> > #include <dt-bindings/pinctrl/rzg2l-pinctrl.h> > > / { > @@ -14,6 +15,37 @@ aliases { > mmc1 = &sdhi1; > }; > > + keys { Do you mind if I s/keys/keypad/ while applying? ... > + compatible = "gpio-keys"; > + > + key-1 { > + interrupts = <RZG2L_GPIO(18, 0) IRQ_TYPE_EDGE_FALLING>; Oh, the horror of interrupt controllers that don't support generating interrupts on both edges... > + interrupt-parent = <&pinctrl>; ... and move these one level up, to avoid duplication? > + linux,code = <KEY_1>; > + label = "USER_SW1"; > + wakeup-source; > + debounce-interval = <20>; > + }; > + > + key-2 { > + interrupts = <RZG2L_GPIO(0, 1) IRQ_TYPE_EDGE_FALLING>; > + interrupt-parent = <&pinctrl>; > + linux,code = <KEY_2>; > + label = "USER_SW2"; > + wakeup-source; > + debounce-interval = <20>; > + }; > + > + key-3 { > + interrupts = <RZG2L_GPIO(0, 3) IRQ_TYPE_EDGE_FALLING>; > + interrupt-parent = <&pinctrl>; > + linux,code = <KEY_3>; > + label = "USER_SW3"; > + wakeup-source; > + debounce-interval = <20>; > + }; > + }; > + > vcc_sdhi1: regulator-vcc-sdhi1 { > compatible = "regulator-fixed"; > regulator-name = "SDHI1 Vcc"; Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be> i.e. will queue in renesas-devel for v6.9, with the above fixed. Gr{oetje,eeting}s, Geert
Hi, Geert, On 12.01.2024 15:55, Geert Uytterhoeven wrote: > Hi Claudiu, > > On Wed, Dec 27, 2023 at 2:08 PM Claudiu <claudiu.beznea@tuxon.dev> wrote: >> From: Claudiu Beznea <claudiu.beznea.uj@bp.renesas.com> >> >> RZ SMARC Carrier II board has 3 user buttons called USER_SW1, USER_SW2, >> USER_SW3. Add a DT node in device tree to propertly instantiate the >> gpio-keys driver for these buttons. >> >> Signed-off-by: Claudiu Beznea <claudiu.beznea.uj@bp.renesas.com> > > Thanks for your patch! > >> --- a/arch/arm64/boot/dts/renesas/rzg3s-smarc.dtsi >> +++ b/arch/arm64/boot/dts/renesas/rzg3s-smarc.dtsi >> @@ -6,6 +6,7 @@ >> */ >> >> #include <dt-bindings/gpio/gpio.h> >> +#include <dt-bindings/input/input.h> >> #include <dt-bindings/pinctrl/rzg2l-pinctrl.h> >> >> / { >> @@ -14,6 +15,37 @@ aliases { >> mmc1 = &sdhi1; >> }; >> >> + keys { > > Do you mind if I s/keys/keypad/ while applying? ... Is not actually a keypad... there are 3 buttons in a corner of the board... I see only 2 entries in arm64 and arm DTS directory following this pattern for gpio-keys compatible node: arch/arm/boot/dts/renesas/r8a7779-marzen.dts arch/arm/boot/dts/renesas/r8a7779-marzen.dts But if you prefer it like this, I have nothing against. Just asking, do you have a particular reason for naming it like this? > >> + compatible = "gpio-keys"; >> + >> + key-1 { >> + interrupts = <RZG2L_GPIO(18, 0) IRQ_TYPE_EDGE_FALLING>; > > Oh, the horror of interrupt controllers that don't support generating > interrupts on both edges... Yes. > >> + interrupt-parent = <&pinctrl>; > > ... and move these one level up, to avoid duplication? Moving it just near compatible will make the schema validation to fail with this (driver is working, though): arch/arm64/boot/dts/renesas/r9a08g045s33-smarc.dtb: keys: 'interrupt-parent' does not match any of the regexes: '^(button|event|key|switch|(button|event|key|switch)-[a-z0-9-]+|[a-z0-9-]+-(button|event|key|switch))$', 'pinctrl-[0-9]+' from schema $id: http://devicetree.org/schemas/input/gpio-keys.yaml# Thank you, Claudiu Beznea > >> + linux,code = <KEY_1>; >> + label = "USER_SW1"; >> + wakeup-source; >> + debounce-interval = <20>; >> + }; >> + >> + key-2 { >> + interrupts = <RZG2L_GPIO(0, 1) IRQ_TYPE_EDGE_FALLING>; >> + interrupt-parent = <&pinctrl>; >> + linux,code = <KEY_2>; >> + label = "USER_SW2"; >> + wakeup-source; >> + debounce-interval = <20>; >> + }; >> + >> + key-3 { >> + interrupts = <RZG2L_GPIO(0, 3) IRQ_TYPE_EDGE_FALLING>; >> + interrupt-parent = <&pinctrl>; >> + linux,code = <KEY_3>; >> + label = "USER_SW3"; >> + wakeup-source; >> + debounce-interval = <20>; >> + }; >> + }; >> + >> vcc_sdhi1: regulator-vcc-sdhi1 { >> compatible = "regulator-fixed"; >> regulator-name = "SDHI1 Vcc"; > > Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be> > i.e. will queue in renesas-devel for v6.9, with the above fixed. > > Gr{oetje,eeting}s, > > Geert >
Hi Claudiu, On Fri, Jan 12, 2024 at 4:38 PM claudiu beznea <claudiu.beznea@tuxon.dev> wrote: > On 12.01.2024 15:55, Geert Uytterhoeven wrote: > > On Wed, Dec 27, 2023 at 2:08 PM Claudiu <claudiu.beznea@tuxon.dev> wrote: > >> From: Claudiu Beznea <claudiu.beznea.uj@bp.renesas.com> > >> > >> RZ SMARC Carrier II board has 3 user buttons called USER_SW1, USER_SW2, > >> USER_SW3. Add a DT node in device tree to propertly instantiate the > >> gpio-keys driver for these buttons. > >> > >> Signed-off-by: Claudiu Beznea <claudiu.beznea.uj@bp.renesas.com> > > > > Thanks for your patch! > > > >> --- a/arch/arm64/boot/dts/renesas/rzg3s-smarc.dtsi > >> +++ b/arch/arm64/boot/dts/renesas/rzg3s-smarc.dtsi > >> @@ -14,6 +15,37 @@ aliases { > >> mmc1 = &sdhi1; > >> }; > >> > >> + keys { > > > > Do you mind if I s/keys/keypad/ while applying? ... > > Is not actually a keypad... there are 3 buttons in a corner of the board... > > I see only 2 entries in arm64 and arm DTS directory following this pattern > for gpio-keys compatible node: > > arch/arm/boot/dts/renesas/r8a7779-marzen.dts > arch/arm/boot/dts/renesas/r8a7779-marzen.dts > > But if you prefer it like this, I have nothing against. > > Just asking, do you have a particular reason for naming it like this? See the discussion in [1], and the resulting patch[2], which added the (so far) single user in arch/arm/boot/dts/renesas/r8a7779-marzen.dts [1] https://lore.kernel.org/all/20231023144134.1881973-1-geert+renesas@glider.be [2] https://lore.kernel.org/all/eec1ccfb75c6215428609fdcaf3a37c75fe1fc87.1698228163.git.geert+renesas@glider.be > > >> + interrupt-parent = <&pinctrl>; > > > > ... and move these one level up, to avoid duplication? > > Moving it just near compatible will make the schema validation to fail with > this (driver is working, though): > > arch/arm64/boot/dts/renesas/r9a08g045s33-smarc.dtb: keys: > 'interrupt-parent' does not match any of the regexes: > '^(button|event|key|switch|(button|event|key|switch)-[a-z0-9-]+|[a-z0-9-]+-(button|event|key|switch))$', > 'pinctrl-[0-9]+' > from schema $id: http://devicetree.org/schemas/input/gpio-keys.yaml# Oops, I had completely forgotten r8a7779-marzen.dts triggers this, too... Let's keep it for now. Gr{oetje,eeting}s, Geert
Hi, Geert, On 12.01.2024 18:20, Geert Uytterhoeven wrote: > Hi Claudiu, > > On Fri, Jan 12, 2024 at 4:38 PM claudiu beznea <claudiu.beznea@tuxon.dev> wrote: >> On 12.01.2024 15:55, Geert Uytterhoeven wrote: >>> On Wed, Dec 27, 2023 at 2:08 PM Claudiu <claudiu.beznea@tuxon.dev> wrote: >>>> From: Claudiu Beznea <claudiu.beznea.uj@bp.renesas.com> >>>> >>>> RZ SMARC Carrier II board has 3 user buttons called USER_SW1, USER_SW2, >>>> USER_SW3. Add a DT node in device tree to propertly instantiate the >>>> gpio-keys driver for these buttons. >>>> >>>> Signed-off-by: Claudiu Beznea <claudiu.beznea.uj@bp.renesas.com> >>> >>> Thanks for your patch! >>> >>>> --- a/arch/arm64/boot/dts/renesas/rzg3s-smarc.dtsi >>>> +++ b/arch/arm64/boot/dts/renesas/rzg3s-smarc.dtsi >>>> @@ -14,6 +15,37 @@ aliases { >>>> mmc1 = &sdhi1; >>>> }; >>>> >>>> + keys { >>> >>> Do you mind if I s/keys/keypad/ while applying? ... >> >> Is not actually a keypad... there are 3 buttons in a corner of the board... >> >> I see only 2 entries in arm64 and arm DTS directory following this pattern >> for gpio-keys compatible node: >> >> arch/arm/boot/dts/renesas/r8a7779-marzen.dts >> arch/arm/boot/dts/renesas/r8a7779-marzen.dts >> >> But if you prefer it like this, I have nothing against. >> >> Just asking, do you have a particular reason for naming it like this? > > See the discussion in [1], and the resulting patch[2], which added the > (so far) single user in arch/arm/boot/dts/renesas/r8a7779-marzen.dts > > [1] https://lore.kernel.org/all/20231023144134.1881973-1-geert+renesas@glider.be Ah, I remember part of this discussion. Good for me to rename it as you proposed. > [2] https://lore.kernel.org/all/eec1ccfb75c6215428609fdcaf3a37c75fe1fc87.1698228163.git.geert+renesas@glider.be >> >>>> + interrupt-parent = <&pinctrl>; >>> >>> ... and move these one level up, to avoid duplication? >> >> Moving it just near compatible will make the schema validation to fail with >> this (driver is working, though): >> >> arch/arm64/boot/dts/renesas/r9a08g045s33-smarc.dtb: keys: >> 'interrupt-parent' does not match any of the regexes: >> '^(button|event|key|switch|(button|event|key|switch)-[a-z0-9-]+|[a-z0-9-]+-(button|event|key|switch))$', >> 'pinctrl-[0-9]+' >> from schema $id: http://devicetree.org/schemas/input/gpio-keys.yaml# > > Oops, I had completely forgotten r8a7779-marzen.dts triggers this, too... > Let's keep it for now. > > Gr{oetje,eeting}s, > > Geert >
diff --git a/arch/arm64/boot/dts/renesas/rzg3s-smarc.dtsi b/arch/arm64/boot/dts/renesas/rzg3s-smarc.dtsi index 214520137230..deb2ad37bb2e 100644 --- a/arch/arm64/boot/dts/renesas/rzg3s-smarc.dtsi +++ b/arch/arm64/boot/dts/renesas/rzg3s-smarc.dtsi @@ -6,6 +6,7 @@ */ #include <dt-bindings/gpio/gpio.h> +#include <dt-bindings/input/input.h> #include <dt-bindings/pinctrl/rzg2l-pinctrl.h> / { @@ -14,6 +15,37 @@ aliases { mmc1 = &sdhi1; }; + keys { + compatible = "gpio-keys"; + + key-1 { + interrupts = <RZG2L_GPIO(18, 0) IRQ_TYPE_EDGE_FALLING>; + interrupt-parent = <&pinctrl>; + linux,code = <KEY_1>; + label = "USER_SW1"; + wakeup-source; + debounce-interval = <20>; + }; + + key-2 { + interrupts = <RZG2L_GPIO(0, 1) IRQ_TYPE_EDGE_FALLING>; + interrupt-parent = <&pinctrl>; + linux,code = <KEY_2>; + label = "USER_SW2"; + wakeup-source; + debounce-interval = <20>; + }; + + key-3 { + interrupts = <RZG2L_GPIO(0, 3) IRQ_TYPE_EDGE_FALLING>; + interrupt-parent = <&pinctrl>; + linux,code = <KEY_3>; + label = "USER_SW3"; + wakeup-source; + debounce-interval = <20>; + }; + }; + vcc_sdhi1: regulator-vcc-sdhi1 { compatible = "regulator-fixed"; regulator-name = "SDHI1 Vcc"; @@ -35,6 +67,27 @@ vccq_sdhi1: regulator-vccq-sdhi1 { }; &pinctrl { + key-1-gpio-hog { + gpio-hog; + gpios = <RZG2L_GPIO(18, 0) GPIO_ACTIVE_LOW>; + input; + line-name = "key-1-gpio-irq"; + }; + + key-2-gpio-hog { + gpio-hog; + gpios = <RZG2L_GPIO(0, 1) GPIO_ACTIVE_LOW>; + input; + line-name = "key-2-gpio-irq"; + }; + + key-3-gpio-hog { + gpio-hog; + gpios = <RZG2L_GPIO(0, 3) GPIO_ACTIVE_LOW>; + input; + line-name = "key-3-gpio-irq"; + }; + scif0_pins: scif0 { pinmux = <RZG2L_PORT_PINMUX(6, 3, 1)>, /* RXD */ <RZG2L_PORT_PINMUX(6, 4, 1)>; /* TXD */