[PATCH v2 4/4] arm64: dts: amlogic: meson-s4-s905y4-khadas-vim1s: add POWER key support

Nick Xie
2026-02-28T06:38:47Z

Add the gpio-keys-polled node to support the Power button found on the
Khadas VIM1S board. The button is connected to the GPIOD_8 pin.

Use polled mode instead of gpio-keys because the GPIO interrupt
controller support for Meson S4 SoC is not yet available upstream.

Signed-off-by: Nick Xie <nick@khadas.com>
Reviewed-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
---
.../dts/amlogic/meson-s4-s905y4-khadas-vim1s.dts | 12 ++++++++++++
1 file changed, 12 insertions(+)

diff --git a/arch/arm64/boot/dts/amlogic/meson-s4-s905y4-khadas-vim1s.dts b/arch/arm64/boot/dts/amlogic/meson-s4-s905y4-khadas-vim1s.dts
index 0bd738c1e7862..664d64a267f2d 100644
--- a/arch/arm64/boot/dts/amlogic/meson-s4-s905y4-khadas-vim1s.dts
+++ b/arch/arm64/boot/dts/amlogic/meson-s4-s905y4-khadas-vim1s.dts
@@ -6,6 +6,7 @@
/dts-v1/;

#include "meson-s4.dtsi"
+#include <dt-bindings/input/input.h>
#include <dt-bindings/leds/common.h>

/ {
@@ -44,6 +45,17 @@ emmc_pwrseq: emmc-pwrseq {
reset-gpios = <&gpio GPIOB_9 GPIO_ACTIVE_LOW>;
};

+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ poll-interval = <100>;
+
+ power-button {
+ label = "power";
+ linux,code = <KEY_POWER>;
+ gpios = <&gpio GPIOD_8 GPIO_ACTIVE_LOW>;
+ };
+ };
+
pwm-leds {
compatible = "pwm-leds";