Hi, Biju, On 03.07.2025 10:42, Biju Das wrote: > Hi Claudiu, > >> -----Original Message----- >> From: Claudiu Beznea <claudiu.beznea@xxxxxxxxx> >> Sent: 03 July 2025 08:17 >> Subject: Re: [PATCH] arm64: dts: renesas: r9a09g047e57-smarc: Add gpio keys >> >> Hi, Biju, >> >> On 01.07.2025 17:38, Biju Das wrote: >>> Hi Geert, >>> >>>> -----Original Message----- >>>> From: Geert Uytterhoeven <geert@xxxxxxxxxxxxxx> >>>> Sent: 01 July 2025 12:50 >>>> Subject: Re: [PATCH] arm64: dts: renesas: r9a09g047e57-smarc: Add >>>> gpio keys >>>> >>>> Hi Biju, >>>> >>>> On Tue, 1 Jul 2025 at 13:40, Biju Das <biju.das.jz@xxxxxxxxxxxxxx> wrote: >>>>>> From: Geert Uytterhoeven <geert@xxxxxxxxxxxxxx> On Mon, 14 Apr 2025 >>>>>> at 17:38, Biju Das <biju.das.jz@xxxxxxxxxxxxxx> wrote: >>>>>>> RZ/G3E SMARC EVK has 3 user buttons called USER_SW1, USER_SW2 and >>>>>>> USER_SW3. Add a DT node in device tree to instantiate the >>>>>>> gpio-keys driver for these buttons. >>>>>>> >>>>>>> Signed-off-by: Biju Das <biju.das.jz@xxxxxxxxxxxxxx> >>>> >>>>>>> --- a/arch/arm64/boot/dts/renesas/renesas-smarc2.dtsi >>>>>>> +++ b/arch/arm64/boot/dts/renesas/renesas-smarc2.dtsi >>>>>>> @@ -12,8 +12,13 @@ >>>>>>> * SW_SDIO_M2E: >>>>>>> * 0 - SMARC SDIO signal is connected to uSD1 >>>>>>> * 1 - SMARC SDIO signal is connected to M.2 Key E connector >>>>>>> + * >>>>>>> + * GPIO keys are enabled by default. Use PMOD_GPIO macros to >>>>>>> + disable them >>>>>>> + * if needed. >>>>>>> */ >>>>>>> >>>>>>> +#include <dt-bindings/input/input.h> >>>>>>> + >>>>>>> / { >>>>>>> model = "Renesas RZ SMARC Carrier-II Board"; >>>>>>> compatible = "renesas,smarc2-evk"; @@ -27,6 +32,31 @@ >>>>>>> aliases { >>>>>>> serial3 = &scif0; >>>>>>> mmc1 = &sdhi1; >>>>>>> }; >>>>>>> + >>>>>>> + keys: keys { >>>>>>> + compatible = "gpio-keys"; >>>>>>> + >>>>>>> + key-1 { >>>>>>> + interrupts-extended = <&pinctrl KEY_1_GPIO >>>>>>> + IRQ_TYPE_EDGE_FALLING>; >>>>>> >>>>>> So you are using them as interrupts. Don't you need to configure >>>>>> pin control for that (function 15 = IRQ14)? >>>>> >>>>> The same pin can be configured as TINT or IRQ15, currently it is configured as TINT IRQ. >>>>> Is it ok? >>>> >>>> OK. >>>> >>>>>> Alternatively, can't you use them as gpios with interrupt facilities? >>>>> >>>>> interrupts-extended = <&pinctrl KEY_1_GPIO IRQ_TYPE_EDGE_FALLING>; >>>>> >>>>> The TINT IRQ will provide the same right? Am I missing anything here? >>>> >>>> When you use interrupts directly, the system will detect only key >>>> presses, and fake (timer-based) key releases. >>>> When you use GPIOs with interrupt-capability, the system can detect both key presses and releases. >>>> >>>> See also commit cab3511ea7a0b1fc ("ARM: dts: marzen: Add slide switches"). >>> >>> As per [1], for GPIOs with interrupt-capability, IRQ controller needs to support both edges. >>> But TINT supports Rising or Falling edge, but not both. So, we cannot use this. >> >> If I clearly understand it, this has been solved on RZ/G3S SMARC Carrier-II by defining these pins as >> gpio hogs: >> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/arch/arm64/boot/dts/renesas/rz >> g3s-smarc.dtsi#n141 > > Looks like it is redundant, you may need to take out the gpio hog node as > pinctrl driver already configure the pin as input pin[1]. The pinctrl support wasn't there at the moment gpio hog was introduced. > > As per [2], still it is not GPIOs with interrupt-capability. OK, the I must have been wrong. I haven't looked in deep over this thread. Sorry for the noise, Claudiu > > [1] > https://elixir.bootlin.com/linux/v6.16-rc4/source/drivers/pinctrl/renesas/pinctrl-rzg2l.c#L2534 > [2] > https://elixir.bootlin.com/linux/v6.16-rc4/source/arch/arm64/boot/dts/renesas/rzg3s-smarc.dtsi#L30 > > > Cheers, > Biju