Message ID | 16e6c00389bf0ee881a055f81a3dbfd5bfc9c469.1676850819.git.soyer@irl.hu (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | Add alert-slider for OnePlus6 | expand |
On 20.02.2023 01:13, 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> > --- > .../boot/dts/qcom/sdm845-oneplus-common.dtsi | 43 ++++++++++++++++++- > 1 file changed, 41 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..ff982dd853a9 100644 > --- a/arch/arm64/boot/dts/qcom/sdm845-oneplus-common.dtsi > +++ b/arch/arm64/boot/dts/qcom/sdm845-oneplus-common.dtsi > @@ -52,6 +52,45 @@ key-vol-up { > }; > }; > > + alert-slider { This is out of order, alphabetically. > + 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>; > + debounce-interval = <50>; Is there a reason it can't be the default 5ms, since it should more or less be a simple input ping to the userspace? Other than that: Reviewed-by: Konrad Dybcio <konrad.dybcio@linaro.org> Konrad > + 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>; > + debounce-interval = <50>; > + 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>; > + debounce-interval = <50>; > + linux,can-disable; > + }; > + }; > + > reserved-memory { > /* > * The rmtfs_mem needs to be guarded due to "XPU limitations" > @@ -753,8 +792,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;
Hi Konrad, On 2023. 02. 20. 11:17, Konrad Dybcio wrote: > > > On 20.02.2023 01:13, 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> >> --- >> .../boot/dts/qcom/sdm845-oneplus-common.dtsi | 43 ++++++++++++++++++- >> 1 file changed, 41 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..ff982dd853a9 100644 >> --- a/arch/arm64/boot/dts/qcom/sdm845-oneplus-common.dtsi >> +++ b/arch/arm64/boot/dts/qcom/sdm845-oneplus-common.dtsi >> @@ -52,6 +52,45 @@ key-vol-up { >> }; >> }; >> >> + alert-slider { > This is out of order, alphabetically. > >> + 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>; >> + debounce-interval = <50>; > Is there a reason it can't be the default 5ms, since it should > more or less be a simple input ping to the userspace? > Yes, it's a simple input ping to the userspace. It works with the default 5ms also. Thanks, Gergo > Other than that: > > Reviewed-by: Konrad Dybcio <konrad.dybcio@linaro.org> > > Konrad >> + 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>; >> + debounce-interval = <50>; >> + 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>; >> + debounce-interval = <50>; >> + linux,can-disable; >> + }; >> + }; >> + >> reserved-memory { >> /* >> * The rmtfs_mem needs to be guarded due to "XPU limitations" >> @@ -753,8 +792,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;
diff --git a/arch/arm64/boot/dts/qcom/sdm845-oneplus-common.dtsi b/arch/arm64/boot/dts/qcom/sdm845-oneplus-common.dtsi index 64638ea94db7..ff982dd853a9 100644 --- a/arch/arm64/boot/dts/qcom/sdm845-oneplus-common.dtsi +++ b/arch/arm64/boot/dts/qcom/sdm845-oneplus-common.dtsi @@ -52,6 +52,45 @@ key-vol-up { }; }; + 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>; + debounce-interval = <50>; + 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>; + debounce-interval = <50>; + 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>; + debounce-interval = <50>; + linux,can-disable; + }; + }; + reserved-memory { /* * The rmtfs_mem needs to be guarded due to "XPU limitations" @@ -753,8 +792,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;