Message ID | 20230209232556.91554-1-soyer@irl.hu |
---|---|
State | New |
Headers |
Return-Path: <linux-kernel-owner@vger.kernel.org> Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:eb09:0:0:0:0:0 with SMTP id s9csp633655wrn; Thu, 9 Feb 2023 15:28:24 -0800 (PST) X-Google-Smtp-Source: AK7set8CexkB4FArBZ+deRIm3JVwT0Mx7/v8il9a6/YYRALaBeBrl3YjkBzZgDeh1O46ZmL7eFtQ X-Received: by 2002:a17:906:730d:b0:880:50de:5e86 with SMTP id di13-20020a170906730d00b0088050de5e86mr18127157ejc.3.1675985303918; Thu, 09 Feb 2023 15:28:23 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1675985303; cv=none; d=google.com; s=arc-20160816; b=Dmhat4u/2OFgnnrKTY9vLXkctZHeWkQtQj48f+rqSREhTJzIkB0yyOBvpddsr21KAo 1N6wCRx1kUz/Pnqb3+aJ10miVjJljVTSki4Y2c7yohZ/GJb5IWxvJKMXoHdLIHJGaEyH 9KT7QnUulG8MnHIyS2FRU2D/r5Wz87oHA7JZEAGnLBA7jZV1WrzuNjUm39Ym8kUwLXgF 4xCUhunL3w7ICHkFTy0GbJBDSq0VSORryKIYlTte07AUlk+KrmwStOsdhAD8FlnggqYa pUk3hKFW7jef3OikPbZ52Tl9nf9giARUwoqjtO6etbrC+frGx4AfbwkeumkQ48zJ6eh0 z/GA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from; bh=9JVlttsINYmkiE2a6k4i34K+sgpyak+tm42UNu5jiv0=; b=xMAsUNAKbkzu+1ANVrvjf/N0cTyXZWqlJG7edOg3xoB74ozZUe3gvQGkEuKMx6ziDZ gmt1Q1bu5beeX4HOIyVTxES82jaqSeg4oF3KAKY+4yxH3Nr2jvlZ/aVKqvnAqsDj+uQi RelN0jKpwo7wXmxqQzUUMH6N95pdvnJU3D3R5RcsEn8SJUgv357t+LZPGyaUOGGOuhP4 V08rtk2AXrlh6nn3wBJfXS3I83f1/crSmf5fkgj/97SIdJuQsx0ptmG/hcETwwtJt1jG Ikw3cj/bc7FM2v7FGUuJQobkMzrS3oU9PD/QFZ64eLd47QsGaD+3Pwo/Rk4bOKMsn1Ok QSWg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=irl.hu Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id wc15-20020a170907124f00b0087881febdf5si3202314ejb.247.2023.02.09.15.27.44; Thu, 09 Feb 2023 15:28:23 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=irl.hu Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230437AbjBIX0M (ORCPT <rfc822;ybw1215001957@gmail.com> + 99 others); Thu, 9 Feb 2023 18:26:12 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:34282 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229925AbjBIX0K (ORCPT <rfc822;linux-kernel@vger.kernel.org>); Thu, 9 Feb 2023 18:26:10 -0500 Received: from irl.hu (irl.hu [95.85.9.111]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 96EB5658EE; Thu, 9 Feb 2023 15:26:00 -0800 (PST) Received: from localhost.localdomain (51b6913b.dsl.pool.telekom.hu [::ffff:81.182.145.59]) (AUTH: CRAM-MD5 soyer@irl.hu, ) by irl.hu with ESMTPSA id 000000000006F771.0000000063E58107.002B65BC; Fri, 10 Feb 2023 00:25:59 +0100 From: Gergo Koteles <soyer@irl.hu> To: Dmitry Torokhov <dmitry.torokhov@gmail.com>, Andy Gross <agross@kernel.org>, Bjorn Andersson <andersson@kernel.org>, Konrad Dybcio <konrad.dybcio@linaro.org>, Rob Herring <robh+dt@kernel.org>, Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org>, Jiri Kosina <jikos@kernel.org>, Benjamin Tissoires <benjamin.tissoires@redhat.com> Cc: linux-input@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org, Caleb Connolly <caleb@connolly.tech>, Gergo Koteles <soyer@irl.hu> Subject: [PATCH v2 3/3] arm64: dts: qcom: sdm845-oneplus: add tri-state-key Date: Fri, 10 Feb 2023 00:25:56 +0100 Message-Id: <20230209232556.91554-1-soyer@irl.hu> X-Mailer: git-send-email 2.39.1 Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Mime-Autoconverted: from 8bit to 7bit by courier 1.0 X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,SPF_HELO_PASS, SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: <linux-kernel.vger.kernel.org> X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1757397965991765446?= X-GMAIL-MSGID: =?utf-8?q?1757397965991765446?= |
Series |
Add tri-state-key for oneplus6
|
|
Commit Message
Gergo Koteles
Feb. 9, 2023, 11:25 p.m. UTC
The tri-state-key is a sound profile switch found on the OnePlus 6, Android maps the states to "mute", "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, 38 insertions(+), 1 deletion(-)
Comments
On 10/02/2023 00:25, Gergo Koteles wrote: > The tri-state-key is a sound profile switch found on the OnePlus 6, > Android maps the states to "mute", "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> Where are other patches? I got only 3/3. > --- > .../boot/dts/qcom/sdm845-oneplus-common.dtsi | 39 ++++++++++++++++++- > 1 file changed, 38 insertions(+), 1 deletion(-) > > 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>; Missing blank line. > + state-top { Does not look like you tested the DTS against bindings. Please run `make dtbs_check` (see Documentation/devicetree/bindings/writing-schema.rst for instructions). Best regards, Krzysztof
On 2023. 02. 10. 12:33, Krzysztof Kozlowski wrote: > On 10/02/2023 00:25, Gergo Koteles wrote: >> The tri-state-key is a sound profile switch found on the OnePlus 6, >> Android maps the states to "mute", "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> > > Where are other patches? I got only 3/3. > Hi Krzysztof, Sorry, I missed the --thread option for git format-patch. >> --- >> .../boot/dts/qcom/sdm845-oneplus-common.dtsi | 39 ++++++++++++++++++- >> 1 file changed, 38 insertions(+), 1 deletion(-) >> >> 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>; > > Missing blank line. > I'll add it to v3. >> + state-top { > > Does not look like you tested the DTS against bindings. Please run `make > dtbs_check` (see Documentation/devicetree/bindings/writing-schema.rst > for instructions). > I ran dtbs_check with DT_SCHEMA_FILES=Documentation/devicetree/bindings/arm/qcom.yaml. It only shows warnings for msm8996-oneplus3, but not for sdm845-oneplus phones. Is there anything else I need to check? ... arch/arm64/boot/dts/qcom/msm8996-oneplus3.dtb: /: qcom,board-id: 'oneOf' conditional failed, one must be fixed: [8, 0, 15801, 15, 8, 0, 15801, 16] is too long From schema: /Documentation/devicetree/bindings/arm/qcom.yaml ... DTC_CHK arch/arm64/boot/dts/qcom/sdm845-oneplus-enchilada.dtb DTC_CHK arch/arm64/boot/dts/qcom/sdm845-oneplus-fajita.dtb Thanks, Gergo > > Best regards, > Krzysztof >
On 10.02.2023 14:45, Gergo Koteles wrote: > On 2023. 02. 10. 12:33, Krzysztof Kozlowski wrote: >> On 10/02/2023 00:25, Gergo Koteles wrote: >>> The tri-state-key is a sound profile switch found on the OnePlus 6, >>> Android maps the states to "mute", "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> >> >> Where are other patches? I got only 3/3. >> > Hi Krzysztof, > > Sorry, I missed the --thread option for git format-patch. > >>> --- >>> .../boot/dts/qcom/sdm845-oneplus-common.dtsi | 39 ++++++++++++++++++- >>> 1 file changed, 38 insertions(+), 1 deletion(-) >>> >>> 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>; >> >> Missing blank line. >> > > I'll add it to v3. While at it, please put pinctrl-names after pinctrl-0. > >>> + state-top { >> >> Does not look like you tested the DTS against bindings. Please run `make >> dtbs_check` (see Documentation/devicetree/bindings/writing-schema.rst >> for instructions). >> > > I ran dtbs_check with DT_SCHEMA_FILES=Documentation/devicetree/bindings/arm/qcom.yaml. It only shows warnings for msm8996-oneplus3, but not for sdm845-oneplus phones. Is there anything else I need to check? You're only checking against a schema file which validates msm-id and machine compatibles. The goal is to not introduce *any* new warnings. You want to run: make (your make args) CHECK_DTBS=1 qcom/sdm845-oneplus-enchilada.dtb pre and post your patch. Konrad > > > ... > arch/arm64/boot/dts/qcom/msm8996-oneplus3.dtb: /: qcom,board-id: 'oneOf' conditional failed, one must be fixed: > [8, 0, 15801, 15, 8, 0, 15801, 16] is too long > From schema: /Documentation/devicetree/bindings/arm/qcom.yaml > ... > DTC_CHK arch/arm64/boot/dts/qcom/sdm845-oneplus-enchilada.dtb > DTC_CHK arch/arm64/boot/dts/qcom/sdm845-oneplus-fajita.dtb > > > Thanks, > Gergo > >> >> Best regards, >> Krzysztof >> >
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 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. 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
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? #define ABS_SND_PROFILE 0x22 /* 0 = silent; 1 = vibrate; 2 = ring */ 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 >
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;