From nobody Fri Apr 3 00:50:45 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 08DCFECAAD3 for ; Mon, 19 Sep 2022 11:13:18 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230038AbiISLNQ (ORCPT ); Mon, 19 Sep 2022 07:13:16 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53258 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229704AbiISLNI (ORCPT ); Mon, 19 Sep 2022 07:13:08 -0400 Received: from smtp1.axis.com (smtp1.axis.com [195.60.68.17]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 56DA513F7D; Mon, 19 Sep 2022 04:13:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=axis.com; q=dns/txt; s=axis-central1; t=1663585986; x=1695121986; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=w8KzUewuszzBRNR3DKM4RdYTDxQmFGm6YO23DI5b+0I=; b=oGtsfIhPDp3triA2iIVJf1ksiz9+MP8PLdTfi6h3JlYvM1x+qAPXPbyY e0TjI+2ICpAUxfCvAXwfSer3xTCYA6k2tNyTeIdL0vSvpZo5/eMrNzE1p BaApGdaBtppzV6UdZWSoKW0Bh99dFDLc+FdvcoYS2FDdImqDN5YjQeREv tpTbkF/YFiwi5bdopQCVXjdXbydebOv42u4HAVJ/ZjMPMFp8qxnUDZfRN 5VbBaVL96hFnzibeZr317dU+F1dRkEF8pqKyS2Ro393HJwXV5tZUtN5Vb cIHLuHdVPRuqtOW8Kjtf3/5lq70t10E3HP9LSBdJaSbrVx1h6HH08R6OE w==; From: Astrid Rost To: Mark Brown , Liam Girdwood , Krzysztof Kozlowski , Rob Herring , Dylan Reid CC: , , , Astrid Rost , Astrid Rost , Subject: [PATCH v3 1/3] dt-bindings: sound: ti,ts3a227e: convert to yaml Date: Mon, 19 Sep 2022 13:12:56 +0200 Message-ID: <20220919111258.3774-2-astrid.rost@axis.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20220919111258.3774-1-astrid.rost@axis.com> References: <20220919111258.3774-1-astrid.rost@axis.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" Convert from ts3a227e.txt to yaml. Signed-off-by: Astrid Rost Reviewed-by: Krzysztof Kozlowski --- .../bindings/sound/ti,ts3a227e.yaml | 65 +++++++++++++++++++ .../devicetree/bindings/sound/ts3a227e.txt | 30 --------- 2 files changed, 65 insertions(+), 30 deletions(-) create mode 100644 Documentation/devicetree/bindings/sound/ti,ts3a227e.yaml delete mode 100644 Documentation/devicetree/bindings/sound/ts3a227e.txt diff --git a/Documentation/devicetree/bindings/sound/ti,ts3a227e.yaml b/Doc= umentation/devicetree/bindings/sound/ti,ts3a227e.yaml new file mode 100644 index 000000000000..327d204cf957 --- /dev/null +++ b/Documentation/devicetree/bindings/sound/ti,ts3a227e.yaml @@ -0,0 +1,65 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/sound/ti,ts3a227e.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Texas Instruments TS3A227E + Autonomous Audio Accessory Detection and Configuration Switch + +maintainers: + - Dylan Reid + +description: | + The TS3A227E detect headsets of 3-ring and 4-ring standards and + switches automatically to route the microphone correctly. It also + handles key press detection in accordance with the Android audio + headset specification v1.0. + +properties: + compatible: + enum: + - ti,ts3a227e + + reg: + const: 0x3b + + interrupts: + maxItems: 1 + + ti,micbias: + $ref: /schemas/types.yaml#/definitions/uint32 + description: Intended MICBIAS voltage (datasheet section 9.6.7). + enum: + - 0 # 2.1 V + - 1 # 2.2 V + - 2 # 2.3 V + - 3 # 2.4 V + - 4 # 2.5 V + - 5 # 2.6 V + - 6 # 2.7 V + - 7 # 2.8 V + default: 1 + +required: + - compatible + - reg + - interrupts + +additionalProperties: false + +examples: + - | + #include + i2c { + #address-cells =3D <1>; + #size-cells =3D <0>; + codec: audio-controller@3b { + compatible =3D "ti,ts3a227e"; + reg =3D <0x3b>; + interrupt-parent =3D <&gpio1>; + interrupts =3D <3 IRQ_TYPE_LEVEL_LOW>; + }; + }; + +... diff --git a/Documentation/devicetree/bindings/sound/ts3a227e.txt b/Documen= tation/devicetree/bindings/sound/ts3a227e.txt deleted file mode 100644 index 21ab45bc7e8f..000000000000 --- a/Documentation/devicetree/bindings/sound/ts3a227e.txt +++ /dev/null @@ -1,30 +0,0 @@ -Texas Instruments TS3A227E -Autonomous Audio Accessory Detection and Configuration Switch - -The TS3A227E detect headsets of 3-ring and 4-ring standards and -switches automatically to route the microphone correctly. It also -handles key press detection in accordance with the Android audio -headset specification v1.0. - -Required properties: - - - compatible: Should contain "ti,ts3a227e". - - reg: The i2c address. Should contain <0x3b>. - - interrupts: Interrupt number for /INT pin from the 227e - -Optional properies: - - ti,micbias: Intended MICBIAS voltage (datasheet section 9.6.7). - Select 0/1/2/3/4/5/6/7 to specify MICBIAS voltage - 2.1V/2.2V/2.3V/2.4V/2.5V/2.6V/2.7V/2.8V - Default value is "1" (2.2V). - -Examples: - - i2c { - ts3a227e@3b { - compatible =3D "ti,ts3a227e"; - reg =3D <0x3b>; - interrupt-parent =3D <&gpio>; - interrupts =3D <3 IRQ_TYPE_LEVEL_LOW>; - }; - }; --=20 2.20.1 From nobody Fri Apr 3 00:50:45 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 87131ECAAD3 for ; Mon, 19 Sep 2022 11:13:22 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230078AbiISLNV (ORCPT ); Mon, 19 Sep 2022 07:13:21 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53288 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229846AbiISLNJ (ORCPT ); Mon, 19 Sep 2022 07:13:09 -0400 Received: from smtp1.axis.com (smtp1.axis.com [195.60.68.17]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id B19A913F78; Mon, 19 Sep 2022 04:13:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=axis.com; q=dns/txt; s=axis-central1; t=1663585988; x=1695121988; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=Ztqf2NwNv1t+35CYf00l5OZcaluiYfDwfmYhtP8ylqc=; b=e5eZH32D34S8GBWDPCIeJNQ9LtRanE2KO4hfFcRksu7BG35mztulToNy CK12TwPZgU9gjDbu6bgEv/CmnGpn1uRneA46Xc0yjASogo+zwUtNPaIen 0ax9NQd1uGkBGnxOY5WDEA3BuP2W6q40lWIg9qOm5d7jA0xh+0yfbq1xU 2PLziGJC7NplgYtgjKjzPHlCsOFMvLnTqgnn6Bu+XI0vc337JHhHNa5M1 bvS48wfSj/tPizHENlGgHcCan8edQVwQgodpqEF+SCvySs1L4a/egXGPR mGishhNhoU/etcxeKyyUMYRtwG5DYLuHtjfMNmcxA91kVAf1xdwVKBAfz w==; From: Astrid Rost To: Mark Brown , Liam Girdwood , Krzysztof Kozlowski , Rob Herring , Dylan Reid CC: , , , Astrid Rost , Astrid Rost , Subject: [PATCH v3 2/3] dt-bindings: sound: ti,s3a227e: add control of debounce Date: Mon, 19 Sep 2022 13:12:57 +0200 Message-ID: <20220919111258.3774-3-astrid.rost@axis.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20220919111258.3774-1-astrid.rost@axis.com> References: <20220919111258.3774-1-astrid.rost@axis.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" Add devicetree parameters to control the insertion, release and press debounce times. Signed-off-by: Astrid Rost --- .../bindings/sound/ti,ts3a227e.yaml | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/Documentation/devicetree/bindings/sound/ti,ts3a227e.yaml b/Doc= umentation/devicetree/bindings/sound/ti,ts3a227e.yaml index 327d204cf957..76ce323ce965 100644 --- a/Documentation/devicetree/bindings/sound/ti,ts3a227e.yaml +++ b/Documentation/devicetree/bindings/sound/ti,ts3a227e.yaml @@ -41,6 +41,35 @@ properties: - 7 # 2.8 V default: 1 =20 + ti,debounce-release-ms: + description: key release debounce time in ms (datasheet section 9.6.7). + enum: + - 0 # 0 ms + - 20 # 20 ms + default: 20 + + ti,debounce-press-ms: + description: key press debounce time in ms (datasheet section 9.6.7). + enum: + - 2 # 2 ms + - 40 # 40 ms + - 80 # 80 ms + - 120 # 120 ms + default: 80 + + ti,debounce-insertion-ms: + description: headset insertion debounce time in ms (datasheet section = 9.6.5). + enum: + - 2 # 2 ms + - 30 # 30 ms + - 60 # 60 ms + - 90 # 90 ms + - 120 # 120 ms + - 150 # 150 ms + - 1000 # 1 s + - 2000 # 2 s + default: 90 + required: - compatible - reg --=20 2.20.1 From nobody Fri Apr 3 00:50:45 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 6A070ECAAD3 for ; Mon, 19 Sep 2022 11:13:14 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229906AbiISLNK (ORCPT ); Mon, 19 Sep 2022 07:13:10 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53248 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229678AbiISLNG (ORCPT ); Mon, 19 Sep 2022 07:13:06 -0400 Received: from smtp2.axis.com (smtp2.axis.com [195.60.68.18]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 37E8F13F78 for ; Mon, 19 Sep 2022 04:13:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=axis.com; q=dns/txt; s=axis-central1; t=1663585985; x=1695121985; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=fWT8qRbiWNa5/mbcYWo86wQNVuPvppjS+ANHTTdMVNE=; b=AVQpQsvAeJoZYodBLlOYh1IHNxNIRwA5+dEs5MgYZhju8Yo5mEEAZJKZ qNowZUQIp838HwRbuaFEKXMA1M5R731z2A/doLz2Y2+QGQOBU6hX9FUlM Furg5Sx2QpcfOSOkMFJ4FlFVnPSsqdmd7GOY1+4KQa6FJTql8+ix6QrnE oC9ZJC1yu9OrQrJORxzA26yr2UyQcZAcmLF4W59PrJCOak21OLM9f+j1x D7kcBGYsSve/qoxNbvGkxpYFTb+ot1Os6p0gYsAcq3JnymMO/fbmAdyJh z6DB6Q3TJM5jlDiuJmk12cPgvhtkCyWQ5eDIR61j9giC1KNHhaUUTMZUl A==; From: Astrid Rost To: Mark Brown , Liam Girdwood , Krzysztof Kozlowski , Jaroslav Kysela , Takashi Iwai CC: , , , Astrid Rost , Astrid Rost Subject: [PATCH v3 3/3] ASoC: ts3a227e: add parameters to control debounce times Date: Mon, 19 Sep 2022 13:12:58 +0200 Message-ID: <20220919111258.3774-4-astrid.rost@axis.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20220919111258.3774-1-astrid.rost@axis.com> References: <20220919111258.3774-1-astrid.rost@axis.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" Add devicetree parameters to control the insert, release and press debounce times. Signed-off-by: Astrid Rost --- sound/soc/codecs/ts3a227e.c | 58 +++++++++++++++++++++++++++++++++---- 1 file changed, 52 insertions(+), 6 deletions(-) diff --git a/sound/soc/codecs/ts3a227e.c b/sound/soc/codecs/ts3a227e.c index d8ab0810fceb..f2d1367c46ca 100644 --- a/sound/soc/codecs/ts3a227e.c +++ b/sound/soc/codecs/ts3a227e.c @@ -78,12 +78,20 @@ static const int ts3a227e_buttons[] =3D { #define ADC_COMPLETE_INT_DISABLE 0x04 #define INTB_DISABLE 0x08 =20 +/* TS3A227E_REG_SETTING_1 0x4 */ +#define DEBOUNCE_INSERTION_SETTING_SFT (0) +#define DEBOUNCE_INSERTION_SETTING_MASK (0x7 << DEBOUNCE_PRESS_SETTING_SFT) + /* TS3A227E_REG_SETTING_2 0x05 */ #define KP_ENABLE 0x04 =20 /* TS3A227E_REG_SETTING_3 0x06 */ -#define MICBIAS_SETTING_SFT (3) +#define MICBIAS_SETTING_SFT 3 #define MICBIAS_SETTING_MASK (0x7 << MICBIAS_SETTING_SFT) +#define DEBOUNCE_RELEASE_SETTING_SFT 2 +#define DEBOUNCE_RELEASE_SETTING_MASK (0x1 << DEBOUNCE_RELEASE_SETTING_SFT) +#define DEBOUNCE_PRESS_SETTING_SFT 0 +#define DEBOUNCE_PRESS_SETTING_MASK (0x3 << DEBOUNCE_PRESS_SETTING_SFT) =20 /* TS3A227E_REG_ACCESSORY_STATUS 0x0b */ #define TYPE_3_POLE 0x01 @@ -136,7 +144,7 @@ static bool ts3a227e_volatile_reg(struct device *dev, u= nsigned int reg) { switch (reg) { case TS3A227E_REG_INTERRUPT ... TS3A227E_REG_INTERRUPT_DISABLE: - case TS3A227E_REG_SETTING_2: + case TS3A227E_REG_SETTING_1 ... TS3A227E_REG_SETTING_2: case TS3A227E_REG_SWITCH_STATUS_1 ... TS3A227E_REG_ADC_OUTPUT: return true; default: @@ -269,14 +277,52 @@ static const struct regmap_config ts3a227e_regmap_con= fig =3D { static int ts3a227e_parse_device_property(struct ts3a227e *ts3a227e, struct device *dev) { - u32 micbias; + u32 value; + u32 value_ms; + u32 setting3_value =3D 0; + u32 setting3_mask =3D 0; int err; =20 - err =3D device_property_read_u32(dev, "ti,micbias", &micbias); + err =3D device_property_read_u32(dev, "ti,micbias", &value); + if (!err) { + setting3_mask =3D MICBIAS_SETTING_MASK; + setting3_value =3D + (value << MICBIAS_SETTING_SFT) & MICBIAS_SETTING_MASK; + } + + err =3D device_property_read_u32(dev, "ti,debounce-release-ms", &value_ms= ); if (!err) { + value =3D (value_ms > 10); + setting3_mask |=3D DEBOUNCE_RELEASE_SETTING_MASK; + setting3_value |=3D (value << DEBOUNCE_RELEASE_SETTING_SFT) & + DEBOUNCE_RELEASE_SETTING_MASK; + } + + err =3D device_property_read_u32(dev, "ti,debounce-press-ms", &value_ms); + if (!err) { + value =3D (value_ms + 20) / 40; + if (value > 3) + value =3D 3; + setting3_mask |=3D DEBOUNCE_PRESS_SETTING_MASK; + setting3_value |=3D (value << DEBOUNCE_PRESS_SETTING_SFT) & + DEBOUNCE_PRESS_SETTING_MASK; + } + + if (setting3_mask) regmap_update_bits(ts3a227e->regmap, TS3A227E_REG_SETTING_3, - MICBIAS_SETTING_MASK, - (micbias & 0x07) << MICBIAS_SETTING_SFT); + setting3_mask, setting3_value); + + err =3D device_property_read_u32(dev, "ti,debounce-insertion-ms", &value_= ms); + if (!err) { + if (value_ms < 165) + value =3D (value_ms + 15) / 30; + else if (value_ms < 1500) + value =3D 6; + else + value =3D 7; + regmap_update_bits(ts3a227e->regmap, TS3A227E_REG_SETTING_1, + DEBOUNCE_INSERTION_SETTING_MASK, (value << DEBOUNCE_INSERTION_SETTING_S= FT) + & DEBOUNCE_INSERTION_SETTING_MASK); } =20 return 0; --=20 2.20.1