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: Caleb Connolly <caleb@connolly.tech>
Signed-off-by: Caleb Connolly <caleb@connolly.tech>
Signed-off-by: Gergo Koteles <soyer@irl.hu>
---
.../boot/dts/qcom/sdm845-oneplus-common.dtsi | 39 ++++++++++++++++++-
1 file changed, 37 insertions(+), 2 deletions(-)
diff --git a/arch/arm64/boot/dts/qcom/sdm845-oneplus-common.dtsi b/arch/arm64/boot/dts/qcom/sdm845-oneplus-common.dtsi
index 64638ea94db7..7567f5cf6e3f 100644
--- a/arch/arm64/boot/dts/qcom/sdm845-oneplus-common.dtsi
+++ b/arch/arm64/boot/dts/qcom/sdm845-oneplus-common.dtsi
@@ -20,6 +20,41 @@
/delete-node/ &rmtfs_mem;
/ {
+ 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;
@@ -753,8 +788,8 @@ &usb_1_hsphy {
&tlmm {
gpio-reserved-ranges = <0 4>, <81 4>;
- tri_state_key_default: tri-state-key-default-state {
- pins = "gpio40", "gpio42", "gpio26";
+ alert_slider_default: alert-slider-default-state {
+ pins = "gpio126", "gpio52", "gpio24";
function = "gpio";
drive-strength = <2>;
bias-disable;
--
2.39.2
On 22.02.2023 01:10, Gergo Koteles wrote: > 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: Caleb Connolly <caleb@connolly.tech> > Signed-off-by: Caleb Connolly <caleb@connolly.tech> > Signed-off-by: Gergo Koteles <soyer@irl.hu> > --- Reviewed-by: Konrad Dybcio <konrad.dybcio@linaro.org> Konrad > .../boot/dts/qcom/sdm845-oneplus-common.dtsi | 39 ++++++++++++++++++- > 1 file changed, 37 insertions(+), 2 deletions(-) > > diff --git a/arch/arm64/boot/dts/qcom/sdm845-oneplus-common.dtsi b/arch/arm64/boot/dts/qcom/sdm845-oneplus-common.dtsi > index 64638ea94db7..7567f5cf6e3f 100644 > --- a/arch/arm64/boot/dts/qcom/sdm845-oneplus-common.dtsi > +++ b/arch/arm64/boot/dts/qcom/sdm845-oneplus-common.dtsi > @@ -20,6 +20,41 @@ > /delete-node/ &rmtfs_mem; > > / { > + 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; > @@ -753,8 +788,8 @@ &usb_1_hsphy { > &tlmm { > gpio-reserved-ranges = <0 4>, <81 4>; > > - tri_state_key_default: tri-state-key-default-state { > - pins = "gpio40", "gpio42", "gpio26"; > + alert_slider_default: alert-slider-default-state { > + pins = "gpio126", "gpio52", "gpio24"; > function = "gpio"; > drive-strength = <2>; > bias-disable;
© 2016 - 2025 Red Hat, Inc.