Re: [PATCH 1/4] ASoC: dt-bindings: wcd934x: add bindings for Headset Button detection

From: Srinivas Kandagatla
Date: Tue May 11 2021 - 05:02:15 EST




On 10/05/2021 17:45, Rob Herring wrote:
On Mon, May 10, 2021 at 11:11:58AM +0100, Srinivas Kandagatla wrote:
Add bindings required for Multi Button Headset detection.
WCD934x support Headsets with upto 8 buttons including, impedance measurement
on both L/R Headset speakers and cross connection detection.

Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@xxxxxxxxxx>
---
.../bindings/sound/qcom,wcd934x.yaml | 65 +++++++++++++++++++
1 file changed, 65 insertions(+)

A search tells me this is not v1...


I did submit something for wcd9335 in the past but not for wcd934x which is still v1.

Most of these codecs have same MBHC block so the mbhc bindings look same across them.



diff --git a/Documentation/devicetree/bindings/sound/qcom,wcd934x.yaml b/Documentation/devicetree/bindings/sound/qcom,wcd934x.yaml
index e8f716b5f875..b25c6ca4e97c 100644
--- a/Documentation/devicetree/bindings/sound/qcom,wcd934x.yaml
+++ b/Documentation/devicetree/bindings/sound/qcom,wcd934x.yaml
@@ -77,6 +77,64 @@ properties:
minimum: 1800000
maximum: 2850000
+ qcom,hphl-jack-type-normally-closed:
+ description: Indicates that HPHL jack switch type is normally closed
+ type: boolean
+
+ qcom,ground-jack-type-normally-closed:
+ description: Indicates that Headset Ground switch type is normally closed
+ type: boolean

I asked before if 'normally closed' was the more common case and you
said yes. So I'd expect 'open' here, but now you've changed the
polarity of the property. And now not present is not described at all.

Yes "normally closed" is the normal use case however Banajit commented on these binding with normally-open at https://lkml.org/lkml/2018/9/26/410

Ground pin may not be present on most of the headset jacks.
So we can not consider the headset jacks as Normally closed when this property is not specified in the device tree.

So having binding with normally-closed makes it much safer to use.


+
+ qcom,mbhc-headset-vthreshold-microvolt:
+ description: Voltage threshold value for headset detection
+ minimum: 0
+ maximum: 2850000
+
+ qcom,mbhc-headphone-vthreshold-microvolt:
+ description: Voltage threshold value for headphone detection
+ minimum: 0
+ maximum: 2850000
+
+ qcom,mbhc-button0-vthreshold-microvolt:
+ description: Voltage threshold value for headset button0
+ minimum: 0
+ maximum: 500000
+
+ qcom,mbhc-button1-vthreshold-microvolt:
+ description: Voltage threshold value for headset button1
+ minimum: 0
+ maximum: 500000
+
+ qcom,mbhc-button2-vthreshold-microvolt:
+ description: Voltage threshold value for headset button2
+ minimum: 0
+ maximum: 500000
+
+ qcom,mbhc-button3-vthreshold-microvolt:
+ description: Voltage threshold value for headset button3
+ minimum: 0
+ maximum: 500000
+
+ qcom,mbhc-button4-vthreshold-microvolt:
+ description: Voltage threshold value for headset button4
+ minimum: 0
+ maximum: 500000
+
+ qcom,mbhc-button5-vthreshold-microvolt:
+ description: Voltage threshold value for headset button5
+ minimum: 0
+ maximum: 500000
+
+ qcom,mbhc-button6-vthreshold-microvolt:
+ description: Voltage threshold value for headset button6
+ minimum: 0
+ maximum: 500000
+
+ qcom,mbhc-button7-vthreshold-microvolt:
+ description: Voltage threshold value headset button7
+ minimum: 0
+ maximum: 500000

These can all be a single pattern property:
'^qcom,mbhc-button[0-7]-vthreshold-microvolt$'

Thanks for the hint, this works, will change it in next version.

--srini