Re: [PATCH] arm64: dts: renesas: rzg3s-smarc: Add gpio keys

From: claudiu beznea
Date: Fri Jan 12 2024 - 10:38:59 EST


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@xxxxxxxxx> wrote:
>> From: Claudiu Beznea <claudiu.beznea.uj@xxxxxxxxxxxxxx>
>>
>> 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@xxxxxxxxxxxxxx>
>
> 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@xxxxxxxxx>
> i.e. will queue in renesas-devel for v6.9, with the above fixed.
>
> Gr{oetje,eeting}s,
>
> Geert
>