Hi Magnus, On Sun, Jun 20, 2021 at 8:01 AM Magnus Damm <damm@xxxxxxxxxxxxx> wrote: > From: Magnus Damm <damm+renesas@xxxxxxxxxxxxx> > > Add support for SW2 via "gpio-keys" on the R-Car V3M Eagle board. > > Signed-off-by: Magnus Damm <damm+renesas@xxxxxxxxxxxxx> Thanks for your patch! > --- 0001/arch/arm64/boot/dts/renesas/r8a77970-eagle.dts > +++ work/arch/arm64/boot/dts/renesas/r8a77970-eagle.dts 2021-06-19 19:26:28.399714892 +0900 > @@ -8,6 +8,8 @@ > > /dts-v1/; > #include "r8a77970.dtsi" > +#include <dt-bindings/gpio/gpio.h> > +#include <dt-bindings/input/input.h> > > / { > model = "Renesas Eagle board based on r8a77970"; > @@ -43,6 +45,42 @@ > }; > }; > > + keys { > + compatible = "gpio-keys"; > + > + pinctrl-0 = <&keys_pins>; > + pinctrl-names = "default"; > + > + key-1 { > + gpios = <&gpio1 21 GPIO_ACTIVE_LOW>; > + linux,code = <KEY_1>; > + label = "SW2-1"; > + wakeup-source; > + debounce-interval = <20>; > + }; > + key-2 { > + gpios = <&gpio1 22 GPIO_ACTIVE_LOW>; > + linux,code = <KEY_2>; > + label = "SW2-2"; > + wakeup-source; > + debounce-interval = <20>; > + }; > + key-3 { > + gpios = <&gpio1 23 GPIO_ACTIVE_LOW>; > + linux,code = <KEY_3>; > + label = "SW2-3"; > + wakeup-source; > + debounce-interval = <20>; > + }; > + key-4 { > + gpios = <&gpio1 24 GPIO_ACTIVE_LOW>; > + linux,code = <KEY_4>; > + label = "SW2-4"; > + wakeup-source; > + debounce-interval = <20>; > + }; > + }; > + > lvds-decoder { > compatible = "thine,thc63lvd1024"; > > @@ -196,6 +234,11 @@ > function = "i2c0"; > }; > > + keys_pins: keys { > + pins = "GP_1_21", "GP_1_22", "GP_1_23", "GP_1_24"; While Section 2.11 ("GPIO Interfaces for Debugging") of the "R-CarV3M System Evaluation Board / Eagle Hardware Manual" (Rev 0.08) says: When using the software switches, enable the internal pull-up functions of GP1_21, GP1_22, GP1_23, and GP1_24. I think GP_1_21 should be dropped, as it's already pulled-up by R427. Furthermore, as the Eagle DTS has CANFD enabled, SW2-1 and SW2-2 are not available, so both should be dropped. Presumably you have SW32=on, so SW2-2 works, and CANFD doesn't? Probably we should document this in the DTS. > + bias-pull-up; > + }; > + > qspi0_pins: qspi0 { > groups = "qspi0_ctrl", "qspi0_data4"; > function = "qspi0"; Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@xxxxxxxxxxxxxx In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds