public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH v4 0/3] ASoC: ts3a227e control debounce times
@ 2022-09-21  8:18 Astrid Rost
  2022-09-21  8:18 ` [PATCH v4 1/3] dt-bindings: sound: ti,ts3a227e: convert to yaml Astrid Rost
                   ` (4 more replies)
  0 siblings, 5 replies; 8+ messages in thread
From: Astrid Rost @ 2022-09-21  8:18 UTC (permalink / raw)
  To: Mark Brown, Liam Girdwood, Krzysztof Kozlowski
  Cc: kernel, alsa-devel, linux-kernel, Astrid Rost, Astrid Rost

From: Astrid Rost <astridr@axis.com>

PATCH 1 - convert ts3a227e bindings to yaml.
PATCH 2 - add ts3a227e bindings to support debounce times.
PATCH 3 - add ts3a227e driver to support debounce times.

v3 -> v4
Removed the comments on enums in Patch2.

Signed-off-by: Astrid Rost <astrid.rost@axis.com>


Astrid Rost (3):
  dt-bindings: sound: ti,ts3a227e: convert to yaml
  dt-bindings: sound: ti,ts3a227e: add control of debounce
  ASoC: ts3a227e: add parameters to control debounce times

 .../bindings/sound/ti,ts3a227e.yaml           | 94 +++++++++++++++++++
 .../devicetree/bindings/sound/ts3a227e.txt    | 30 ------
 sound/soc/codecs/ts3a227e.c                   | 61 ++++++++++--
 3 files changed, 149 insertions(+), 36 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/sound/ti,ts3a227e.yaml
 delete mode 100644 Documentation/devicetree/bindings/sound/ts3a227e.txt

-- 
2.20.1


^ permalink raw reply	[flat|nested] 8+ messages in thread

* [PATCH v4 1/3] dt-bindings: sound: ti,ts3a227e: convert to yaml
  2022-09-21  8:18 [PATCH v4 0/3] ASoC: ts3a227e control debounce times Astrid Rost
@ 2022-09-21  8:18 ` Astrid Rost
  2022-09-21  8:26   ` Krzysztof Kozlowski
  2022-09-21  8:18 ` [PATCH v4 2/3] dt-bindings: sound: ti,ts3a227e: add control of debounce Astrid Rost
                   ` (3 subsequent siblings)
  4 siblings, 1 reply; 8+ messages in thread
From: Astrid Rost @ 2022-09-21  8:18 UTC (permalink / raw)
  To: Mark Brown, Liam Girdwood, Krzysztof Kozlowski, Rob Herring,
	Dylan Reid
  Cc: kernel, alsa-devel, linux-kernel, Astrid Rost, Astrid Rost,
	devicetree

Convert from ts3a227e.txt to yaml.

Signed-off-by: Astrid Rost <astrid.rost@axis.com>
---
 .../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/Documentation/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 <dgreid@chromium.org>
+
+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 <dt-bindings/interrupt-controller/irq.h>
+    i2c {
+        #address-cells = <1>;
+        #size-cells = <0>;
+        codec: audio-controller@3b {
+            compatible = "ti,ts3a227e";
+            reg = <0x3b>;
+            interrupt-parent = <&gpio1>;
+            interrupts = <3 IRQ_TYPE_LEVEL_LOW>;
+        };
+    };
+
+...
diff --git a/Documentation/devicetree/bindings/sound/ts3a227e.txt b/Documentation/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 = "ti,ts3a227e";
-			reg = <0x3b>;
-			interrupt-parent = <&gpio>;
-			interrupts = <3 IRQ_TYPE_LEVEL_LOW>;
-		};
-	};
-- 
2.20.1


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH v4 2/3] dt-bindings: sound: ti,ts3a227e: add control of debounce
  2022-09-21  8:18 [PATCH v4 0/3] ASoC: ts3a227e control debounce times Astrid Rost
  2022-09-21  8:18 ` [PATCH v4 1/3] dt-bindings: sound: ti,ts3a227e: convert to yaml Astrid Rost
@ 2022-09-21  8:18 ` Astrid Rost
  2022-09-21  8:27   ` Krzysztof Kozlowski
  2022-09-21  8:18 ` [PATCH v4 3/3] ASoC: ts3a227e: add parameters to control debounce times Astrid Rost
                   ` (2 subsequent siblings)
  4 siblings, 1 reply; 8+ messages in thread
From: Astrid Rost @ 2022-09-21  8:18 UTC (permalink / raw)
  To: Mark Brown, Liam Girdwood, Krzysztof Kozlowski, Rob Herring,
	Dylan Reid
  Cc: kernel, alsa-devel, linux-kernel, Astrid Rost, Astrid Rost,
	devicetree

Add devicetree parameters to control the insertion, release and press
debounce times.

Signed-off-by: Astrid Rost <astrid.rost@axis.com>
---
 .../bindings/sound/ti,ts3a227e.yaml           | 29 +++++++++++++++++++
 1 file changed, 29 insertions(+)

diff --git a/Documentation/devicetree/bindings/sound/ti,ts3a227e.yaml b/Documentation/devicetree/bindings/sound/ti,ts3a227e.yaml
index 327d204cf957..785930658029 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
 
+  ti,debounce-release-ms:
+    description: key release debounce time in ms (datasheet section 9.6.7).
+    enum:
+      - 0
+      - 20
+    default: 20
+
+  ti,debounce-press-ms:
+    description: key press debounce time in ms (datasheet section 9.6.7).
+    enum:
+      - 2
+      - 40
+      - 80
+      - 120
+    default: 80
+
+  ti,debounce-insertion-ms:
+    description: headset insertion debounce time in ms (datasheet section 9.6.5).
+    enum:
+      - 2
+      - 30
+      - 60
+      - 90
+      - 120
+      - 150
+      - 1000
+      - 2000
+    default: 90
+
 required:
   - compatible
   - reg
-- 
2.20.1


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH v4 3/3] ASoC: ts3a227e: add parameters to control debounce times
  2022-09-21  8:18 [PATCH v4 0/3] ASoC: ts3a227e control debounce times Astrid Rost
  2022-09-21  8:18 ` [PATCH v4 1/3] dt-bindings: sound: ti,ts3a227e: convert to yaml Astrid Rost
  2022-09-21  8:18 ` [PATCH v4 2/3] dt-bindings: sound: ti,ts3a227e: add control of debounce Astrid Rost
@ 2022-09-21  8:18 ` Astrid Rost
  2022-09-21  9:21 ` [PATCH v4 0/3] ASoC: ts3a227e " Mark Brown
  2022-09-21 16:28 ` Mark Brown
  4 siblings, 0 replies; 8+ messages in thread
From: Astrid Rost @ 2022-09-21  8:18 UTC (permalink / raw)
  To: Mark Brown, Liam Girdwood, Krzysztof Kozlowski, Jaroslav Kysela,
	Takashi Iwai
  Cc: kernel, alsa-devel, linux-kernel, Astrid Rost, Astrid Rost

Add devicetree parameters to control the insert, release and press
debounce times.

Signed-off-by: Astrid Rost <astrid.rost@axis.com>
---
 sound/soc/codecs/ts3a227e.c | 61 +++++++++++++++++++++++++++++++++----
 1 file changed, 55 insertions(+), 6 deletions(-)

diff --git a/sound/soc/codecs/ts3a227e.c b/sound/soc/codecs/ts3a227e.c
index d8ab0810fceb..2305a472d132 100644
--- a/sound/soc/codecs/ts3a227e.c
+++ b/sound/soc/codecs/ts3a227e.c
@@ -78,12 +78,20 @@ static const int ts3a227e_buttons[] = {
 #define ADC_COMPLETE_INT_DISABLE 0x04
 #define INTB_DISABLE 0x08
 
+/* 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
 
 /* 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)
 
 /* TS3A227E_REG_ACCESSORY_STATUS  0x0b */
 #define TYPE_3_POLE 0x01
@@ -136,7 +144,7 @@ static bool ts3a227e_volatile_reg(struct device *dev, unsigned 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,55 @@ static const struct regmap_config ts3a227e_regmap_config = {
 static int ts3a227e_parse_device_property(struct ts3a227e *ts3a227e,
 				struct device *dev)
 {
-	u32 micbias;
+	u32 value;
+	u32 value_ms;
+	u32 setting3_value = 0;
+	u32 setting3_mask = 0;
 	int err;
 
-	err = device_property_read_u32(dev, "ti,micbias", &micbias);
+	err = device_property_read_u32(dev, "ti,micbias", &value);
+	if (!err) {
+		setting3_mask = MICBIAS_SETTING_MASK;
+		setting3_value = (value << MICBIAS_SETTING_SFT) &
+				 MICBIAS_SETTING_MASK;
+	}
+
+	err = device_property_read_u32(dev, "ti,debounce-release-ms",
+				       &value_ms);
 	if (!err) {
+		value = (value_ms > 10);
+		setting3_mask |= DEBOUNCE_RELEASE_SETTING_MASK;
+		setting3_value |= (value << DEBOUNCE_RELEASE_SETTING_SFT) &
+				  DEBOUNCE_RELEASE_SETTING_MASK;
+	}
+
+	err = device_property_read_u32(dev, "ti,debounce-press-ms", &value_ms);
+	if (!err) {
+		value = (value_ms + 20) / 40;
+		if (value > 3)
+			value = 3;
+		setting3_mask |= DEBOUNCE_PRESS_SETTING_MASK;
+		setting3_value |= (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 = device_property_read_u32(dev, "ti,debounce-insertion-ms",
+				       &value_ms);
+	if (!err) {
+		if (value_ms < 165)
+			value = (value_ms + 15) / 30;
+		else if (value_ms < 1500)
+			value = 6;
+		else
+			value = 7;
+		regmap_update_bits(ts3a227e->regmap, TS3A227E_REG_SETTING_1,
+				   DEBOUNCE_INSERTION_SETTING_MASK,
+				   (value << DEBOUNCE_INSERTION_SETTING_SFT) &
+					   DEBOUNCE_INSERTION_SETTING_MASK);
 	}
 
 	return 0;
-- 
2.20.1


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* Re: [PATCH v4 1/3] dt-bindings: sound: ti,ts3a227e: convert to yaml
  2022-09-21  8:18 ` [PATCH v4 1/3] dt-bindings: sound: ti,ts3a227e: convert to yaml Astrid Rost
@ 2022-09-21  8:26   ` Krzysztof Kozlowski
  0 siblings, 0 replies; 8+ messages in thread
From: Krzysztof Kozlowski @ 2022-09-21  8:26 UTC (permalink / raw)
  To: Astrid Rost, Mark Brown, Liam Girdwood, Krzysztof Kozlowski,
	Rob Herring, Dylan Reid
  Cc: kernel, alsa-devel, linux-kernel, Astrid Rost, devicetree

On 21/09/2022 10:18, Astrid Rost wrote:
> Convert from ts3a227e.txt to yaml.
> 
> Signed-off-by: Astrid Rost <astrid.rost@axis.com>

Please add Acked-by/Reviewed-by tags when posting new versions. However,
there's no need to repost patches *only* to add the tags. The upstream
maintainer will do that for acks received on the version they apply.

https://elixir.bootlin.com/linux/v5.17/source/Documentation/process/submitting-patches.rst#L540

If a tag was not added on purpose, please state why and what changed.


Best regards,
Krzysztof

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH v4 2/3] dt-bindings: sound: ti,ts3a227e: add control of debounce
  2022-09-21  8:18 ` [PATCH v4 2/3] dt-bindings: sound: ti,ts3a227e: add control of debounce Astrid Rost
@ 2022-09-21  8:27   ` Krzysztof Kozlowski
  0 siblings, 0 replies; 8+ messages in thread
From: Krzysztof Kozlowski @ 2022-09-21  8:27 UTC (permalink / raw)
  To: Astrid Rost, Mark Brown, Liam Girdwood, Krzysztof Kozlowski,
	Rob Herring, Dylan Reid
  Cc: kernel, alsa-devel, linux-kernel, Astrid Rost, devicetree

On 21/09/2022 10:18, Astrid Rost wrote:
> Add devicetree parameters to control the insertion, release and press
> debounce times.
> 
> Signed-off-by: Astrid Rost <astrid.rost@axis.com>


Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>


Best regards,
Krzysztof

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH v4 0/3] ASoC: ts3a227e control debounce times
  2022-09-21  8:18 [PATCH v4 0/3] ASoC: ts3a227e control debounce times Astrid Rost
                   ` (2 preceding siblings ...)
  2022-09-21  8:18 ` [PATCH v4 3/3] ASoC: ts3a227e: add parameters to control debounce times Astrid Rost
@ 2022-09-21  9:21 ` Mark Brown
  2022-09-21 16:28 ` Mark Brown
  4 siblings, 0 replies; 8+ messages in thread
From: Mark Brown @ 2022-09-21  9:21 UTC (permalink / raw)
  To: Astrid Rost
  Cc: Liam Girdwood, Krzysztof Kozlowski, kernel, alsa-devel,
	linux-kernel, Astrid Rost

[-- Attachment #1: Type: text/plain, Size: 526 bytes --]

On Wed, Sep 21, 2022 at 10:18:31AM +0200, Astrid Rost wrote:

> Astrid Rost (3):
>   dt-bindings: sound: ti,ts3a227e: convert to yaml
>   dt-bindings: sound: ti,ts3a227e: add control of debounce

Please submit patches using subject lines reflecting the style for the
subsystem, this makes it easier for people to identify relevant patches.
Look at what existing commits in the area you're changing are doing and
make sure your subject lines visually resemble what they're doing.
There's no need to resubmit to fix this alone.

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH v4 0/3] ASoC: ts3a227e control debounce times
  2022-09-21  8:18 [PATCH v4 0/3] ASoC: ts3a227e control debounce times Astrid Rost
                   ` (3 preceding siblings ...)
  2022-09-21  9:21 ` [PATCH v4 0/3] ASoC: ts3a227e " Mark Brown
@ 2022-09-21 16:28 ` Mark Brown
  4 siblings, 0 replies; 8+ messages in thread
From: Mark Brown @ 2022-09-21 16:28 UTC (permalink / raw)
  To: Liam Girdwood, Krzysztof Kozlowski, Astrid Rost
  Cc: alsa-devel, linux-kernel, Astrid Rost, kernel

On Wed, 21 Sep 2022 10:18:31 +0200, Astrid Rost wrote:
> From: Astrid Rost <astridr@axis.com>
> 
> PATCH 1 - convert ts3a227e bindings to yaml.
> PATCH 2 - add ts3a227e bindings to support debounce times.
> PATCH 3 - add ts3a227e driver to support debounce times.
> 
> v3 -> v4
> Removed the comments on enums in Patch2.
> 
> [...]

Applied to

   broonie/sound.git for-next

Thanks!

[1/3] dt-bindings: sound: ti,ts3a227e: convert to yaml
      commit: be541bd473618f64fa14138dc7f63b0643363f7b
[2/3] dt-bindings: sound: ti,ts3a227e: add control of debounce
      commit: 6a47412d0798735b0715d224574d216dba9e630c
[3/3] ASoC: ts3a227e: add parameters to control debounce times
      commit: d20fa87e80c363a1c9534afb31df2fa90087e51d

All being well this means that it will be integrated into the linux-next
tree (usually sometime in the next 24 hours) and sent to Linus during
the next merge window (or sooner if it is a bug fix), however if
problems are discovered then the patch may be dropped or reverted.

You may get further e-mails resulting from automated or manual testing
and review of the tree, please engage with people reporting problems and
send followup patches addressing any issues that are reported if needed.

If any updates are required or you are submitting further changes they
should be sent as incremental updates against current git, existing
patches will not be replaced.

Please add any relevant lists and maintainers to the CCs when replying
to this mail.

Thanks,
Mark

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2022-09-21 16:42 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-09-21  8:18 [PATCH v4 0/3] ASoC: ts3a227e control debounce times Astrid Rost
2022-09-21  8:18 ` [PATCH v4 1/3] dt-bindings: sound: ti,ts3a227e: convert to yaml Astrid Rost
2022-09-21  8:26   ` Krzysztof Kozlowski
2022-09-21  8:18 ` [PATCH v4 2/3] dt-bindings: sound: ti,ts3a227e: add control of debounce Astrid Rost
2022-09-21  8:27   ` Krzysztof Kozlowski
2022-09-21  8:18 ` [PATCH v4 3/3] ASoC: ts3a227e: add parameters to control debounce times Astrid Rost
2022-09-21  9:21 ` [PATCH v4 0/3] ASoC: ts3a227e " Mark Brown
2022-09-21 16:28 ` Mark Brown

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox