Message ID | 20230209232556.91554-1-soyer@irl.hu |
---|---|
State | New |
Headers | show |
Series | None | expand |
Hi! > +++ b/arch/arm64/boot/dts/qcom/sdm845-oneplus-common.dtsi > @@ -52,6 +52,43 @@ key-vol-up { > }; > }; > > + tri-state-key { > + compatible = "gpio-keys"; > + label = "Tri-state key"; > + pinctrl-names = "default"; > + pinctrl-0 = <&tri_state_key_default>; > + state-top { > + label = "Tri-state key top"; "top/middle" is not too useful. Do we need the label at all? If so, should it say "loud/vibrations only/mute"? BR, Pavel
On 16/02/2023 03:32, Gergo Koteles wrote: > Hi, > >> >> >> On 11/02/2023 16:40, Pavel Machek wrote: >>> Hi! >>> >>>> +++ b/arch/arm64/boot/dts/qcom/sdm845-oneplus-common.dtsi >>>> @@ -52,6 +52,43 @@ key-vol-up { >>>> }; >>>> }; >>>> >>>> + tri-state-key { >>>> + compatible = "gpio-keys"; >>>> + label = "Tri-state key"; >>>> + pinctrl-names = "default"; >>>> + pinctrl-0 = <&tri_state_key_default>; >>>> + state-top { >>>> + label = "Tri-state key top"; >>> >>> "top/middle" is not too useful. Do we need the label at all? If so, >>> should it say "loud/vibrations only/mute"? >> >> "mute", "vibrate" and "ring" sound good to me. >> > > OnePlus uses the silent/vibrate/ring, iPhone the silent/ring names. > Maybe silent/vibrate/ring are more familiar. > > Adding labels can document these modes here. > Should we also document these in input-event-codes.h? Maybe it would be best to define macros for these rather than leave them as magic numbers > #define ABS_SND_PROFILE 0x22 /* 0 = silent; 1 = vibrate; 2 = ring */ #define ABS_SND_PROFILE_SILENT 0 #define ABS_SND_PROFILE_VIBRATE 1 #define ABS_SND_PROFILE_RING 2 > > > Thanks, > Gergo > >> Although it would be nice if users can easily map the physical key >> position to the action when viewing the input device or remapping the >> key in userspace. >> >> Do you have any ideas or recommendations on how to do this? >>> >>> BR, >>> Pavel >> >> -- >> Kind Regards, >> Caleb >> > -- Kind Regards, Caleb
diff --git a/arch/arm64/boot/dts/qcom/sdm845-oneplus-common.dtsi b/arch/arm64/boot/dts/qcom/sdm845-oneplus-common.dtsi index 64638ea94db7..e45d4fdead82 100644 --- a/arch/arm64/boot/dts/qcom/sdm845-oneplus-common.dtsi +++ b/arch/arm64/boot/dts/qcom/sdm845-oneplus-common.dtsi @@ -52,6 +52,43 @@ key-vol-up { }; }; + tri-state-key { + compatible = "gpio-keys"; + label = "Tri-state key"; + pinctrl-names = "default"; + pinctrl-0 = <&tri_state_key_default>; + state-top { + label = "Tri-state key top"; + linux,input-type = <EV_ABS>; + linux,code = <ABS_SND_PROFILE>; + linux,input-value = <0>; + gpios = <&tlmm 126 GPIO_ACTIVE_LOW>; + debounce-interval = <50>; + linux,can-disable; + }; + + state-middle { + label = "Tri-state key middle"; + linux,input-type = <EV_ABS>; + linux,code = <ABS_SND_PROFILE>; + linux,input-value = <1>; + gpios = <&tlmm 52 GPIO_ACTIVE_LOW>; + debounce-interval = <50>; + linux,can-disable; + + }; + + state-bottom { + label = "Tri-state key bottom"; + linux,input-type = <EV_ABS>; + linux,code = <ABS_SND_PROFILE>; + linux,input-value = <2>; + 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" @@ -754,7 +791,7 @@ &tlmm { gpio-reserved-ranges = <0 4>, <81 4>; tri_state_key_default: tri-state-key-default-state { - pins = "gpio40", "gpio42", "gpio26"; + pins = "gpio126", "gpio52", "gpio24"; function = "gpio"; drive-strength = <2>; bias-disable;