[PATCH] arm64: dts: rk3399-pinephone-pro: Add support for volume keys

Peter Robinson pbrobinson at gmail.com
Wed Apr 5 05:38:13 PDT 2023


From: Ondrej Jirman <megi at xff.cz>

These are implemented via regular ADC, so regular polling is needed,
for these keys to work.

Signed-off-by: Martijn Braam <martijn at brixit.nl>
Co-developed-by: Kamil Trzciński <ayufan at ayufan.eu>
Signed-off-by: Ondrej Jirman <megi at xff.cz>
Signed-off-by: Peter Robinson <pbrobinson at gmail.com>
---
 .../dts/rockchip/rk3399-pinephone-pro.dts     | 26 +++++++++++++++++++
 1 file changed, 26 insertions(+)

diff --git a/arch/arm64/boot/dts/rockchip/rk3399-pinephone-pro.dts b/arch/arm64/boot/dts/rockchip/rk3399-pinephone-pro.dts
index a0795a2b1cb1..ecd48040eb0c 100644
--- a/arch/arm64/boot/dts/rockchip/rk3399-pinephone-pro.dts
+++ b/arch/arm64/boot/dts/rockchip/rk3399-pinephone-pro.dts
@@ -10,6 +10,7 @@
  */
 
 /dts-v1/;
+#include <dt-bindings/input/gpio-keys.h>
 #include <dt-bindings/input/linux-event-codes.h>
 #include "rk3399.dtsi"
 #include "rk3399-opp.dtsi"
@@ -29,6 +30,26 @@ chosen {
 		stdout-path = "serial2:115200n8";
 	};
 
+	adc-keys {
+		compatible = "adc-keys";
+		io-channels = <&saradc 1>;
+		io-channel-names = "buttons";
+		keyup-threshold-microvolt = <1600000>;
+		poll-interval = <100>;
+
+		button-up {
+			label = "Volume Up";
+			linux,code = <KEY_VOLUMEUP>;
+			press-threshold-microvolt = <100000>;
+		};
+
+		button-down {
+			label = "Volume Down";
+			linux,code = <KEY_VOLUMEDOWN>;
+			press-threshold-microvolt = <300000>;
+		};
+	};
+
 	gpio-keys {
 		compatible = "gpio-keys";
 		pinctrl-names = "default";
@@ -429,6 +450,11 @@ &sdio0 {
 	status = "okay";
 };
 
+&saradc {
+	vref-supply = <&vcca1v8_s3>;
+	status = "okay";
+};
+
 &sdmmc {
 	bus-width = <4>;
 	cap-sd-highspeed;
-- 
2.40.0




More information about the linux-arm-kernel mailing list