The LID state can be read from GPIO 124 and the "tablet mode" from GPIO
95, expose these to the system using gpio-keys and mark the falling edge
of the LID state as a wakeup-source - to wake the system from suspend.

Signed-off-by: Bjorn Andersson <bjorn.anders...@linaro.org>
---
 .../boot/dts/qcom/sdm850-lenovo-yoga-c630.dts | 39 +++++++++++++++++++
 1 file changed, 39 insertions(+)

diff --git a/arch/arm64/boot/dts/qcom/sdm850-lenovo-yoga-c630.dts 
b/arch/arm64/boot/dts/qcom/sdm850-lenovo-yoga-c630.dts
index bb314973eb0c..f956dbf664c1 100644
--- a/arch/arm64/boot/dts/qcom/sdm850-lenovo-yoga-c630.dts
+++ b/arch/arm64/boot/dts/qcom/sdm850-lenovo-yoga-c630.dts
@@ -8,6 +8,8 @@
 /dts-v1/;
 
 #include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/gpio-keys.h>
+#include <dt-bindings/input/input.h>
 #include <dt-bindings/regulator/qcom,rpmh-regulator.h>
 #include <dt-bindings/sound/qcom,q6afe.h>
 #include <dt-bindings/sound/qcom,q6asm.h>
@@ -21,6 +23,27 @@ / {
        aliases {
                hsuart0 = &uart6;
        };
+
+       gpio-keys {
+               compatible = "gpio-keys";
+
+               pinctrl-names = "default";
+               pinctrl-0 = <&lid_pin_active>, <&mode_pin_active>;
+
+               lid {
+                       gpios = <&tlmm 124 GPIO_ACTIVE_HIGH>;
+                       linux,input-type = <EV_SW>;
+                       linux,code = <SW_LID>;
+                       wakeup-source;
+                       wakeup-event-action = <EV_ACT_DEASSERTED>;
+               };
+
+               mode {
+                       gpios = <&tlmm 95 GPIO_ACTIVE_HIGH>;
+                       linux,input-type = <EV_SW>;
+                       linux,code = <SW_TABLET_MODE>;
+               };
+       };
 };
 
 &adsp_pas {
@@ -466,6 +489,22 @@ wcd_intr_default: wcd_intr_default {
                bias-pull-down;
                drive-strength = <2>;
        };
+
+       lid_pin_active: lid-pin {
+               pins = "gpio124";
+               function = "gpio";
+
+               input-enable;
+               bias-disable;
+       };
+
+       mode_pin_active: mode-pin {
+               pins = "gpio95";
+               function = "gpio";
+
+               input-enable;
+               bias-disable;
+       };
 };
 
 &uart6 {
-- 
2.29.2

Reply via email to