On 11/25/20 12:08 AM, Bjorn Andersson wrote: > 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.andersson@xxxxxxxxxx> > --- > .../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 { Tested-by: Steev Klimaszewski <steev@xxxxxxxx>