mirror of
https://github.com/torvalds/linux.git
synced 2025-12-07 20:06:24 +00:00
arm64: dts: renesas: r9a09g047e57-smarc: Add gpio keys
RZ/G3E SMARC EVK has 3 user buttons called USER_SW1, USER_SW2 and
USER_SW3 and SLEEP button with NMI support. Add a DT node in device tree
to instantiate the gpio-keys driver for these buttons.
The system can enter into STR state by pressing the sleep button and
wakeup from STR is done by pressing power button. The USER_SW{1,2,3}
configured as wakeup-source, so it can wakeup the system during s2idle.
Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com>
Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
Link: https://lore.kernel.org/20250702092755.70847-1-biju.das.jz@bp.renesas.com
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
This commit is contained in:
committed by
Geert Uytterhoeven
parent
3d6c2bc762
commit
9e95446b0c
@@ -8,6 +8,7 @@
|
||||
/dts-v1/;
|
||||
|
||||
/* Switch selection settings */
|
||||
#define SW_LCD_EN 0
|
||||
#define SW_GPIO8_CAN0_STB 0
|
||||
#define SW_GPIO9_CAN1_STB 0
|
||||
#define SW_LCD_EN 0
|
||||
@@ -15,7 +16,16 @@
|
||||
#define SW_SD0_DEV_SEL 0
|
||||
#define SW_SDIO_M2E 0
|
||||
|
||||
#define PMOD_GPIO4 0
|
||||
#define PMOD_GPIO6 0
|
||||
#define PMOD_GPIO7 0
|
||||
|
||||
#define KEY_1_GPIO RZG3E_GPIO(3, 1)
|
||||
#define KEY_2_GPIO RZG3E_GPIO(8, 4)
|
||||
#define KEY_3_GPIO RZG3E_GPIO(8, 5)
|
||||
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
#include <dt-bindings/input/input.h>
|
||||
#include <dt-bindings/pinctrl/renesas,r9a09g047-pinctrl.h>
|
||||
#include "r9a09g047e57.dtsi"
|
||||
#include "rzg3e-smarc-som.dtsi"
|
||||
@@ -79,6 +89,29 @@
|
||||
pinctrl-names = "default";
|
||||
};
|
||||
|
||||
&keys {
|
||||
key-sleep {
|
||||
pinctrl-0 = <&nmi_pins>;
|
||||
pinctrl-names = "default";
|
||||
|
||||
interrupts-extended = <&icu 0 IRQ_TYPE_EDGE_FALLING>;
|
||||
linux,code = <KEY_SLEEP>;
|
||||
label = "SLEEP";
|
||||
debounce-interval = <20>;
|
||||
};
|
||||
#if PMOD_GPIO4
|
||||
/delete-node/ key-1;
|
||||
#endif
|
||||
|
||||
#if SW_LCD_EN || PMOD_GPIO6
|
||||
/delete-node/ key-2;
|
||||
#endif
|
||||
|
||||
#if SW_LCD_EN || PMOD_GPIO7
|
||||
/delete-node/ key-3;
|
||||
#endif
|
||||
};
|
||||
|
||||
&pinctrl {
|
||||
canfd_pins: canfd {
|
||||
can1_pins: can1 {
|
||||
@@ -97,6 +130,10 @@
|
||||
<RZG3E_PORT_PINMUX(D, 5, 4)>; /* SDA0 */
|
||||
};
|
||||
|
||||
nmi_pins: nmi {
|
||||
pinmux = <RZG3E_PORT_PINMUX(S, 0, 0)>; /* NMI */
|
||||
};
|
||||
|
||||
scif_pins: scif {
|
||||
pins = "SCIF_TXD", "SCIF_RXD";
|
||||
renesas,output-impedance = <1>;
|
||||
|
||||
@@ -23,6 +23,9 @@
|
||||
* SW_GPIO9_CAN1_STB:
|
||||
* 0 - Connect to GPIO9 PMOD (default)
|
||||
* 1 - Connect to CAN1 transceiver STB pin
|
||||
*
|
||||
* GPIO keys are enabled by default. Use PMOD_GPIO macros to disable them
|
||||
* if needed.
|
||||
*/
|
||||
|
||||
/ {
|
||||
@@ -53,6 +56,34 @@
|
||||
max-bitrate = <8000000>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
keys: keys {
|
||||
compatible = "gpio-keys";
|
||||
|
||||
key-1 {
|
||||
interrupts-extended = <&pinctrl KEY_1_GPIO IRQ_TYPE_EDGE_FALLING>;
|
||||
linux,code = <KEY_1>;
|
||||
label = "USER_SW1";
|
||||
wakeup-source;
|
||||
debounce-interval = <20>;
|
||||
};
|
||||
|
||||
key-2 {
|
||||
interrupts-extended = <&pinctrl KEY_2_GPIO IRQ_TYPE_EDGE_FALLING>;
|
||||
linux,code = <KEY_2>;
|
||||
label = "USER_SW2";
|
||||
wakeup-source;
|
||||
debounce-interval = <20>;
|
||||
};
|
||||
|
||||
key-3 {
|
||||
interrupts-extended = <&pinctrl KEY_3_GPIO IRQ_TYPE_EDGE_FALLING>;
|
||||
linux,code = <KEY_3>;
|
||||
label = "USER_SW3";
|
||||
wakeup-source;
|
||||
debounce-interval = <20>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&canfd {
|
||||
|
||||
Reference in New Issue
Block a user