From: Gergo Koteles <[email protected]>

The alert-slider is a tri-state sound profile switch found on the
OnePlus 6, Android maps the states to "silent", "vibrate" and "ring".
Expose them as ABS_SND_PROFILE events.
The previous GPIO numbers were wrong. Update them to the correct ones.

Co-developed-by: Casey Connolly <[email protected]>
Signed-off-by: Casey Connolly <[email protected]>
Signed-off-by: Gergo Koteles <[email protected]>
Reviewed-by: Konrad Dybcio <[email protected]>
Tested-by: Guido Günther <[email protected]> # oneplus,fajita & oneplus,enchilada
Reviewed-by: Guido Günther <[email protected]>
Signed-off-by: David Heidelberg <[email protected]>
---
 .../arm64/boot/dts/qcom/sdm845-oneplus-common.dtsi | 35 ++++++++++++++++++++++
 1 file changed, 35 insertions(+)

diff --git a/arch/arm64/boot/dts/qcom/sdm845-oneplus-common.dtsi 
b/arch/arm64/boot/dts/qcom/sdm845-oneplus-common.dtsi
index db6dd04c51bb5..963dc4cc3bbb8 100644
--- a/arch/arm64/boot/dts/qcom/sdm845-oneplus-common.dtsi
+++ b/arch/arm64/boot/dts/qcom/sdm845-oneplus-common.dtsi
@@ -25,6 +25,41 @@ / {
        chassis-type = "handset";
        qcom,msm-id = <QCOM_ID_SDM845 0x20001>;
 
+       alert-slider {
+               compatible = "gpio-keys";
+               label = "Alert slider";
+
+               pinctrl-0 = <&alert_slider_default>;
+               pinctrl-names = "default";
+
+               switch-top {
+                       label = "Silent";
+                       linux,input-type = <EV_ABS>;
+                       linux,code = <ABS_SND_PROFILE>;
+                       linux,input-value = <SND_PROFILE_SILENT>;
+                       gpios = <&tlmm 126 GPIO_ACTIVE_LOW>;
+                       linux,can-disable;
+               };
+
+               switch-middle {
+                       label = "Vibrate";
+                       linux,input-type = <EV_ABS>;
+                       linux,code = <ABS_SND_PROFILE>;
+                       linux,input-value = <SND_PROFILE_VIBRATE>;
+                       gpios = <&tlmm 52 GPIO_ACTIVE_LOW>;
+                       linux,can-disable;
+               };
+
+               switch-bottom {
+                       label = "Ring";
+                       linux,input-type = <EV_ABS>;
+                       linux,code = <ABS_SND_PROFILE>;
+                       linux,input-value = <SND_PROFILE_RING>;
+                       gpios = <&tlmm 24 GPIO_ACTIVE_LOW>;
+                       linux,can-disable;
+               };
+       };
+
        aliases {
                serial0 = &uart9;
                serial1 = &uart6;

-- 
2.51.0



Reply via email to