* [PATCH v6 1/2] Input: add ABS_SND_PROFILE
2025-07-31 21:17 [PATCH v6 0/2] Add support for sound profile switching and leverage for OnePlus 6 slider David Heidelberg via B4 Relay
@ 2025-07-31 21:17 ` David Heidelberg via B4 Relay
2025-10-27 14:52 ` Bjorn Andersson
2025-07-31 21:17 ` [PATCH v6 2/2] arm64: dts: qcom: sdm845-oneplus: Add alert-slider David Heidelberg via B4 Relay
2025-09-26 21:31 ` [PATCH v6 0/2] Add support for sound profile switching and leverage for OnePlus 6 slider David Heidelberg
2 siblings, 1 reply; 6+ messages in thread
From: David Heidelberg via B4 Relay @ 2025-07-31 21:17 UTC (permalink / raw)
To: Dmitry Torokhov, Jonathan Corbet, Jiri Kosina, Benjamin Tissoires,
Bjorn Andersson, Konrad Dybcio, Rob Herring, Krzysztof Kozlowski,
Conor Dooley
Cc: linux-input, linux-doc, linux-kernel, linux-arm-msm, devicetree,
Gergo Koteles, David Heidelberg
From: Gergo Koteles <soyer@irl.hu>
ABS_SND_PROFILE used to describe the state of a multi-value sound profile
switch. This will be used for the alert-slider on OnePlus phones or other
phones.
Profile values added as SND_PROFLE_(SILENT|VIBRATE|RING) identifiers
to input-event-codes.h so they can be used from DTS.
Signed-off-by: Gergo Koteles <soyer@irl.hu>
Signed-off-by: David Heidelberg <david@ixit.cz>
---
Documentation/input/event-codes.rst | 6 ++++++
drivers/hid/hid-debug.c | 1 +
include/uapi/linux/input-event-codes.h | 9 +++++++++
3 files changed, 16 insertions(+)
diff --git a/Documentation/input/event-codes.rst b/Documentation/input/event-codes.rst
index b4557462edd7b3fef9e9cd6c2c3cb2d05bb531ab..d43336e64d6aa4fe8a41b7e9947f4f214df6e1ab 100644
--- a/Documentation/input/event-codes.rst
+++ b/Documentation/input/event-codes.rst
@@ -241,6 +241,12 @@ A few EV_ABS codes have special meanings:
emitted only when the selected profile changes, indicating the newly
selected profile value.
+* ABS_SND_PROFILE:
+
+ - Used to describe the state of a multi-value sound profile switch.
+ An event is emitted only when the selected profile changes,
+ indicating the newly selected profile value.
+
* ABS_MT_<name>:
- Used to describe multitouch input events. Please see
diff --git a/drivers/hid/hid-debug.c b/drivers/hid/hid-debug.c
index 7107071c7c516af48c0c5fc1206c1e01bae3889f..c58500d8b94b581e41ae098d6ce99db7783986b7 100644
--- a/drivers/hid/hid-debug.c
+++ b/drivers/hid/hid-debug.c
@@ -3513,6 +3513,7 @@ static const char *absolutes[ABS_CNT] = {
[ABS_DISTANCE] = "Distance", [ABS_TILT_X] = "XTilt",
[ABS_TILT_Y] = "YTilt", [ABS_TOOL_WIDTH] = "ToolWidth",
[ABS_VOLUME] = "Volume", [ABS_PROFILE] = "Profile",
+ [ABS_SND_PROFILE] = "SoundProfile",
[ABS_MISC] = "Misc",
[ABS_MT_SLOT] = "MTSlot",
[ABS_MT_TOUCH_MAJOR] = "MTMajor",
diff --git a/include/uapi/linux/input-event-codes.h b/include/uapi/linux/input-event-codes.h
index 08cb157ab59364a41ac425fc9a4ea8eb2fae0e86..f443f61f9bb8e3c212da522d9b99a386a13c4475 100644
--- a/include/uapi/linux/input-event-codes.h
+++ b/include/uapi/linux/input-event-codes.h
@@ -875,6 +875,7 @@
#define ABS_VOLUME 0x20
#define ABS_PROFILE 0x21
+#define ABS_SND_PROFILE 0x22
#define ABS_MISC 0x28
@@ -984,4 +985,12 @@
#define SND_MAX 0x07
#define SND_CNT (SND_MAX+1)
+/*
+ * ABS_SND_PROFILE values
+ */
+
+#define SND_PROFILE_SILENT 0x00
+#define SND_PROFILE_VIBRATE 0x01
+#define SND_PROFILE_RING 0x02
+
#endif
--
2.50.1
^ permalink raw reply related [flat|nested] 6+ messages in thread* Re: [PATCH v6 1/2] Input: add ABS_SND_PROFILE
2025-07-31 21:17 ` [PATCH v6 1/2] Input: add ABS_SND_PROFILE David Heidelberg via B4 Relay
@ 2025-10-27 14:52 ` Bjorn Andersson
2025-10-27 15:39 ` David Heidelberg
0 siblings, 1 reply; 6+ messages in thread
From: Bjorn Andersson @ 2025-10-27 14:52 UTC (permalink / raw)
To: david
Cc: Dmitry Torokhov, Jonathan Corbet, Jiri Kosina, Benjamin Tissoires,
Konrad Dybcio, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
linux-input, linux-doc, linux-kernel, linux-arm-msm, devicetree,
Gergo Koteles
On Thu, Jul 31, 2025 at 11:17:01PM +0200, David Heidelberg via B4 Relay wrote:
> From: Gergo Koteles <soyer@irl.hu>
>
> ABS_SND_PROFILE used to describe the state of a multi-value sound profile
> switch. This will be used for the alert-slider on OnePlus phones or other
> phones.
>
> Profile values added as SND_PROFLE_(SILENT|VIBRATE|RING) identifiers
> to input-event-codes.h so they can be used from DTS.
>
Reviewed-by: Bjorn Andersson <andersson@kernel.org>
Regards,
Bjorn
> Signed-off-by: Gergo Koteles <soyer@irl.hu>
> Signed-off-by: David Heidelberg <david@ixit.cz>
> ---
> Documentation/input/event-codes.rst | 6 ++++++
> drivers/hid/hid-debug.c | 1 +
> include/uapi/linux/input-event-codes.h | 9 +++++++++
> 3 files changed, 16 insertions(+)
>
> diff --git a/Documentation/input/event-codes.rst b/Documentation/input/event-codes.rst
> index b4557462edd7b3fef9e9cd6c2c3cb2d05bb531ab..d43336e64d6aa4fe8a41b7e9947f4f214df6e1ab 100644
> --- a/Documentation/input/event-codes.rst
> +++ b/Documentation/input/event-codes.rst
> @@ -241,6 +241,12 @@ A few EV_ABS codes have special meanings:
> emitted only when the selected profile changes, indicating the newly
> selected profile value.
>
> +* ABS_SND_PROFILE:
> +
> + - Used to describe the state of a multi-value sound profile switch.
> + An event is emitted only when the selected profile changes,
> + indicating the newly selected profile value.
> +
> * ABS_MT_<name>:
>
> - Used to describe multitouch input events. Please see
> diff --git a/drivers/hid/hid-debug.c b/drivers/hid/hid-debug.c
> index 7107071c7c516af48c0c5fc1206c1e01bae3889f..c58500d8b94b581e41ae098d6ce99db7783986b7 100644
> --- a/drivers/hid/hid-debug.c
> +++ b/drivers/hid/hid-debug.c
> @@ -3513,6 +3513,7 @@ static const char *absolutes[ABS_CNT] = {
> [ABS_DISTANCE] = "Distance", [ABS_TILT_X] = "XTilt",
> [ABS_TILT_Y] = "YTilt", [ABS_TOOL_WIDTH] = "ToolWidth",
> [ABS_VOLUME] = "Volume", [ABS_PROFILE] = "Profile",
> + [ABS_SND_PROFILE] = "SoundProfile",
> [ABS_MISC] = "Misc",
> [ABS_MT_SLOT] = "MTSlot",
> [ABS_MT_TOUCH_MAJOR] = "MTMajor",
> diff --git a/include/uapi/linux/input-event-codes.h b/include/uapi/linux/input-event-codes.h
> index 08cb157ab59364a41ac425fc9a4ea8eb2fae0e86..f443f61f9bb8e3c212da522d9b99a386a13c4475 100644
> --- a/include/uapi/linux/input-event-codes.h
> +++ b/include/uapi/linux/input-event-codes.h
> @@ -875,6 +875,7 @@
>
> #define ABS_VOLUME 0x20
> #define ABS_PROFILE 0x21
> +#define ABS_SND_PROFILE 0x22
>
> #define ABS_MISC 0x28
>
> @@ -984,4 +985,12 @@
> #define SND_MAX 0x07
> #define SND_CNT (SND_MAX+1)
>
> +/*
> + * ABS_SND_PROFILE values
> + */
> +
> +#define SND_PROFILE_SILENT 0x00
> +#define SND_PROFILE_VIBRATE 0x01
> +#define SND_PROFILE_RING 0x02
> +
> #endif
>
> --
> 2.50.1
>
>
^ permalink raw reply [flat|nested] 6+ messages in thread* Re: [PATCH v6 1/2] Input: add ABS_SND_PROFILE
2025-10-27 14:52 ` Bjorn Andersson
@ 2025-10-27 15:39 ` David Heidelberg
0 siblings, 0 replies; 6+ messages in thread
From: David Heidelberg @ 2025-10-27 15:39 UTC (permalink / raw)
To: Bjorn Andersson
Cc: Dmitry Torokhov, Jonathan Corbet, Jiri Kosina, Benjamin Tissoires,
Konrad Dybcio, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
linux-input, linux-doc, linux-kernel, linux-arm-msm, devicetree,
Gergo Koteles
On 27/10/2025 15:52, Bjorn Andersson wrote:
> On Thu, Jul 31, 2025 at 11:17:01PM +0200, David Heidelberg via B4 Relay wrote:
>> From: Gergo Koteles <soyer@irl.hu>
>>
>> ABS_SND_PROFILE used to describe the state of a multi-value sound profile
>> switch. This will be used for the alert-slider on OnePlus phones or other
>> phones.
>>
>> Profile values added as SND_PROFLE_(SILENT|VIBRATE|RING) identifiers
>> to input-event-codes.h so they can be used from DTS.
>>
>
> Reviewed-by: Bjorn Andersson <andersson@kernel.org>
There is already v7 [1], this patch is without a change in the series,
so I assume your R-b applies there too! :)
Thank you Bjorn.
David
[1]
https://patchwork.kernel.org/project/linux-input/patch/20251014-op6-tri-state-v7-1-938a6367197b@ixit.cz/>
> Regards,
> Bjorn
>
>> Signed-off-by: Gergo Koteles <soyer@irl.hu>
>> Signed-off-by: David Heidelberg <david@ixit.cz>
>> ---
^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH v6 2/2] arm64: dts: qcom: sdm845-oneplus: Add alert-slider
2025-07-31 21:17 [PATCH v6 0/2] Add support for sound profile switching and leverage for OnePlus 6 slider David Heidelberg via B4 Relay
2025-07-31 21:17 ` [PATCH v6 1/2] Input: add ABS_SND_PROFILE David Heidelberg via B4 Relay
@ 2025-07-31 21:17 ` David Heidelberg via B4 Relay
2025-09-26 21:31 ` [PATCH v6 0/2] Add support for sound profile switching and leverage for OnePlus 6 slider David Heidelberg
2 siblings, 0 replies; 6+ messages in thread
From: David Heidelberg via B4 Relay @ 2025-07-31 21:17 UTC (permalink / raw)
To: Dmitry Torokhov, Jonathan Corbet, Jiri Kosina, Benjamin Tissoires,
Bjorn Andersson, Konrad Dybcio, Rob Herring, Krzysztof Kozlowski,
Conor Dooley
Cc: linux-input, linux-doc, linux-kernel, linux-arm-msm, devicetree,
Gergo Koteles, Casey Connolly, David Heidelberg, Konrad Dybcio
From: Gergo Koteles <soyer@irl.hu>
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 <casey@connolly.tech>
Signed-off-by: Casey Connolly <casey@connolly.tech>
Signed-off-by: Gergo Koteles <soyer@irl.hu>
Reviewed-by: Konrad Dybcio <konrad.dybcio@linaro.org>
Signed-off-by: David Heidelberg <david@ixit.cz>
---
.../arm64/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 b118d666e535a433f44b66c71b36e55df2ce5c80..242c78828992f9fbb384b690352660a496b22411 100644
--- a/arch/arm64/boot/dts/qcom/sdm845-oneplus-common.dtsi
+++ b/arch/arm64/boot/dts/qcom/sdm845-oneplus-common.dtsi
@@ -21,6 +21,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;
@@ -799,8 +834,8 @@ hall_sensor_default: hall-sensor-default-state {
bias-disable;
};
- 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.50.1
^ permalink raw reply related [flat|nested] 6+ messages in thread* Re: [PATCH v6 0/2] Add support for sound profile switching and leverage for OnePlus 6 slider
2025-07-31 21:17 [PATCH v6 0/2] Add support for sound profile switching and leverage for OnePlus 6 slider David Heidelberg via B4 Relay
2025-07-31 21:17 ` [PATCH v6 1/2] Input: add ABS_SND_PROFILE David Heidelberg via B4 Relay
2025-07-31 21:17 ` [PATCH v6 2/2] arm64: dts: qcom: sdm845-oneplus: Add alert-slider David Heidelberg via B4 Relay
@ 2025-09-26 21:31 ` David Heidelberg
2 siblings, 0 replies; 6+ messages in thread
From: David Heidelberg @ 2025-09-26 21:31 UTC (permalink / raw)
To: Dmitry Torokhov, Jonathan Corbet, Jiri Kosina, Benjamin Tissoires,
Bjorn Andersson, Konrad Dybcio, Rob Herring, Krzysztof Kozlowski,
Conor Dooley
Cc: linux-input, linux-doc, linux-kernel, linux-arm-msm, devicetree,
Gergo Koteles, Casey Connolly
Hello!
Small reminder about this great patchset opening a way for handling
slider switches.
Thank you
David
On 31/07/2025 23:17, David Heidelberg via B4 Relay wrote:
> This code was tested for two years within the downstream Snapdragon 845 tree.
> It is now perfectly integrated with feedbackd in the Phosh environment.
>
> Changes in v6:
> - Rebased again next-20250731, otherwise just a resent.
> - Link to v5: https://lore.kernel.org/r/20250419-op6-tri-state-v5-0-443127078517@ixit.cz
>
> Changes in v5:
> - Dropped merged
> "Input: gpio-keys - add support for linux,input-value DTS property"
> - Link to v4: https://lore.kernel.org/all/cover.1677022414.git.soyer@irl.hu/
>
> Changes in v4:
> - DTS: use default debounce-interval, order alphabetically
> - Link to v3: https://lore.kernel.org/lkml/cover.1676850819.git.soyer@irl.hu/
>
> Changes in v3:
> - rename tri-state-key to alert-slider, fix DTS warnings,
>
> Changes in v2:
> - rebase to qcom/for-next
> add SND_PROFILE_* identifiers to input-event-codes.h
>
> base-commit: 02ac8d2a011b630481d959298a1cc76ca0717f3e
> ---
> Gergo Koteles (2):
> Input: add ABS_SND_PROFILE
> arm64: dts: qcom: sdm845-oneplus: Add alert-slider
>
> Documentation/input/event-codes.rst | 6 ++++
> .../arm64/boot/dts/qcom/sdm845-oneplus-common.dtsi | 39 ++++++++++++++++++++--
> drivers/hid/hid-debug.c | 1 +
> include/uapi/linux/input-event-codes.h | 9 +++++
> 4 files changed, 53 insertions(+), 2 deletions(-)
> ---
> base-commit: 84b92a499e7eca54ba1df6f6c6e01766025943f1
> change-id: 20250419-op6-tri-state-ed1a05a11125
>
> Best regards,
--
David Heidelberg
^ permalink raw reply [flat|nested] 6+ messages in thread