[PATCH] arm64: dts: rockchip: Add power button for RK3399 Puma
Daniel Semkowicz
dse at thaumatec.com
Wed Sep 25 00:28:52 PDT 2024
There is a PWRBTN# input pin exposed on a Q7 connector. The pin
is routed to a GPIO0_A1 through a diode. Q7 specification describes
the PWRBTN# pin as a Power Button signal.
Configure the pin as KEY_POWER, so it can function as power button and
trigger device shutdown.
Add the pin definition to RK3399 Puma dts, so it can be reused
by derived platforms, but keep it disabled by default.
Enable the power button input on Haikou development board.
Signed-off-by: Daniel Semkowicz <dse at thaumatec.com>
---
.../boot/dts/rockchip/rk3399-puma-haikou.dts | 4 ++++
arch/arm64/boot/dts/rockchip/rk3399-puma.dtsi | 22 +++++++++++++++++++
2 files changed, 26 insertions(+)
diff --git a/arch/arm64/boot/dts/rockchip/rk3399-puma-haikou.dts b/arch/arm64/boot/dts/rockchip/rk3399-puma-haikou.dts
index f6f15946579e..0999026b16d0 100644
--- a/arch/arm64/boot/dts/rockchip/rk3399-puma-haikou.dts
+++ b/arch/arm64/boot/dts/rockchip/rk3399-puma-haikou.dts
@@ -143,6 +143,10 @@ vddd_codec: vddd-codec {
};
};
+&gpio_key_power {
+ status = "okay";
+};
+
&hdmi {
ddc-i2c-bus = <&i2c3>;
status = "okay";
diff --git a/arch/arm64/boot/dts/rockchip/rk3399-puma.dtsi b/arch/arm64/boot/dts/rockchip/rk3399-puma.dtsi
index 650b1ba9c192..389ffe604e74 100644
--- a/arch/arm64/boot/dts/rockchip/rk3399-puma.dtsi
+++ b/arch/arm64/boot/dts/rockchip/rk3399-puma.dtsi
@@ -3,6 +3,7 @@
* Copyright (c) 2017 Theobroma Systems Design und Consulting GmbH
*/
+#include <dt-bindings/input/input.h>
#include <dt-bindings/pwm/pwm.h>
#include "rk3399.dtsi"
@@ -39,6 +40,19 @@ clkin_gmac: external-gmac-clock {
#clock-cells = <0>;
};
+ gpio_key_power: gpio-key-power {
+ compatible = "gpio-keys";
+ pinctrl-0 = <&pwrbtn_pin>;
+ pinctrl-names = "default";
+ status = "disabled";
+
+ button-pwrbtn-n {
+ gpios = <&gpio0 RK_PA1 GPIO_ACTIVE_LOW>;
+ label = "PWRBTN#";
+ linux,code = <KEY_POWER>;
+ };
+ };
+
vcc1v2_phy: vcc1v2-phy {
compatible = "regulator-fixed";
regulator-name = "vcc1v2_phy";
@@ -475,6 +489,14 @@ &pinctrl {
pinctrl-names = "default";
pinctrl-0 = <&q7_thermal_pin &bios_disable_override_hog_pin>;
+ buttons {
+ pwrbtn_pin: pwrbtn-pin {
+ rockchip,pins =
+ /* PWRBTN# */
+ <0 RK_PA1 RK_FUNC_GPIO &pcfg_pull_up>;
+ };
+ };
+
gpios {
bios_disable_override_hog_pin: bios-disable-override-hog-pin {
rockchip,pins =
--
2.46.1
More information about the Linux-rockchip
mailing list