From: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
To: Rob Herring <robh@kernel.org>
Cc: broonie@kernel.org, devicetree@vger.kernel.org, perex@perex.cz,
alsa-devel@alsa-project.org, linux-kernel@vger.kernel.org,
lgirdwood@gmail.com
Subject: Re: [PATCH v4 1/9] ASoC: dt-bindings: wcd938x: add bindings for wcd938x
Date: Thu, 15 Apr 2021 17:53:24 +0100 [thread overview]
Message-ID: <96e7c752-a962-cb5b-c936-8151fd4c32ea@linaro.org> (raw)
In-Reply-To: <20210415162947.GA1511094@robh.at.kernel.org>
Thanks Rob for quick review,
On 15/04/2021 17:29, Rob Herring wrote:
> On Wed, Apr 14, 2021 at 04:48:37PM +0100, Srinivas Kandagatla wrote:
>> Qualcomm WCD9380/WCD9385 Codec is a standalone Hi-Fi audio codec IC
>> connected over SoundWire. This device has two SoundWire device RX and
>> TX respectively, supporting 4 x ADCs, ClassH, Ear, Aux PA, 2xHPH,
>> 7 x TX diff inputs, 8 DMICs, MBHC.
>>
>> Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
>> ---
>> .../bindings/sound/qcom,wcd938x.yaml | 176 ++++++++++++++++++
>> 1 file changed, 176 insertions(+)
>> create mode 100644 Documentation/devicetree/bindings/sound/qcom,wcd938x.yaml
>>
>> diff --git a/Documentation/devicetree/bindings/sound/qcom,wcd938x.yaml b/Documentation/devicetree/bindings/sound/qcom,wcd938x.yaml
>> new file mode 100644
>> index 000000000000..4c8fa8290af0
>> --- /dev/null
>> +++ b/Documentation/devicetree/bindings/sound/qcom,wcd938x.yaml
>> @@ -0,0 +1,176 @@
...
>> +additionalProperties: false
>> +
>> +examples:
>> + - |
>> + codec {
>> + compatible = "qcom,wcd9380-codec";
>> + reset-gpios = <&tlmm 32 0>;
>> + #sound-dai-cells = <1>;
>> + qcom,tx-device = <&wcd938x_tx>;
>> + qcom,rx-device = <&wcd938x_rx>;
>> + qcom,micbias1-microvolt = <1800000>;
>> + qcom,micbias2-microvolt = <1800000>;
>> + qcom,micbias3-microvolt = <1800000>;
>> + qcom,micbias4-microvolt = <1800000>;
>> + qcom,mbhc-hphl-switch;
>> + qcom,mbhc-ground-switch;
>> + qcom,mbhc-button0-vthreshold-microvolt = <75000>;
>> + qcom,mbhc-button1-vthreshold-microvolt = <150000>;
>> + qcom,mbhc-button2-vthreshold-microvolt = <237000>;
>> + qcom,mbhc-button3-vthreshold-microvolt = <500000>;
>> + qcom,mbhc-button5-vthreshold-microvolt = <500000>;
>> + qcom,mbhc-button6-vthreshold-microvolt = <500000>;
>> + qcom,mbhc-button7-vthreshold-microvolt = <500000>;
>> + };
>> +
>> + /* ... */
>> +
>> + soundwire@3230000 {
>> + #address-cells = <2>;
>> + #size-cells = <0>;
>> + reg = <0x03230000 0x2000>;
>> + wcd938x_tx: codec@0,3 {
>> + compatible = "sdw20217010d00";
>> + reg = <0 3>;
>> + qcom,direction = "tx";
>> + qcom,port-mapping = <2 3 4 5>;
>> + };
>> +
>> + wcd938x_rx: codec@0,4 {
>> + compatible = "sdw20217010d00";
>> + reg = <0 4>;
>> + qcom,direction = "rx";
>> + qcom,port-mapping = <1 2 3 4 5>;
>> + };
>
> This is a single device, right? We shouldn't need 3 nodes to describe
> it. I think this should all be a single node like this:
>
No, WCD938x is a Audio Codec which has two SoundWire Slave device (TX
and RX). WCD938X reset lines and supplies are common for both TX and RX
SoundWire devices.
However TX SoundWire device only has register access to codec
CSR(Control Status registers).
So there are two SoundWire devices and a WCD938X common parts. Now
making the common Codec part as a separate device made more sense here.
So we ended with total 3 devices.
1 . WCD938x Codec which deals with all the codec side including Common
parts.
2. TX SoundWire device to configure TX SoundWire ports/interface and
provide CSR access.
3. RX SoundWire device to configure RX Soundwire ports/interface
> codec@0,3 {
> reg = <0 3>, <0 4>;
We can't have this, as these two SoundWire devices hang on different
SoundWire bus instances.
> compatible = "sdw20217010d00";
>
> reset-gpios = <&tlmm 32 0>;
> #sound-dai-cells = <1>;
> qcom,micbias1-microvolt = <1800000>;
> qcom,micbias2-microvolt = <1800000>;
> qcom,micbias3-microvolt = <1800000>;
> qcom,micbias4-microvolt = <1800000>;
> qcom,mbhc-hphl-switch;
> qcom,mbhc-ground-switch;
> qcom,mbhc-button0-vthreshold-microvolt = <75000>;
> qcom,mbhc-button1-vthreshold-microvolt = <150000>;
> qcom,mbhc-button2-vthreshold-microvolt = <237000>;
> qcom,mbhc-button3-vthreshold-microvolt = <500000>;
> qcom,mbhc-button5-vthreshold-microvolt = <500000>;
> qcom,mbhc-button6-vthreshold-microvolt = <500000>;
> qcom,mbhc-button7-vthreshold-microvolt = <500000>;
> };
>
> You'll have to figure out the qcom,direction and qcom,port-mapping parts
> though.
That is the reason why we ended up with 3 devices here.
--srini
>
> Rob
>
next prev parent reply other threads:[~2021-04-15 16:53 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-04-14 15:48 [PATCH v4 0/9] ASoC: codecs: add wcd938x support Srinivas Kandagatla
2021-04-14 15:48 ` [PATCH v4 1/9] ASoC: dt-bindings: wcd938x: add bindings for wcd938x Srinivas Kandagatla
2021-04-15 16:29 ` Rob Herring
2021-04-15 16:53 ` Srinivas Kandagatla [this message]
2021-04-30 8:20 ` Srinivas Kandagatla
2021-04-15 17:06 ` Srinivas Kandagatla
2021-04-14 15:48 ` [PATCH v4 2/9] ASoC: codecs: wcd-clsh: add new version support Srinivas Kandagatla
2021-04-14 15:48 ` [PATCH v4 3/9] ASoC: codecs: wcd938x: add basic driver Srinivas Kandagatla
2021-04-15 1:15 ` kernel test robot
2021-04-15 2:54 ` kernel test robot
2021-04-14 15:48 ` [PATCH v4 4/9] ASoC: dt-bindings: wcd938x-sdw: add bindings for wcd938x-sdw Srinivas Kandagatla
2021-04-15 16:39 ` Rob Herring
2021-04-15 16:57 ` Srinivas Kandagatla
2021-04-14 15:48 ` [PATCH v4 5/9] ASoC: codecs: wcd938x-sdw: add SoundWire driver Srinivas Kandagatla
2021-04-14 15:48 ` [PATCH v4 6/9] ASoC: codecs: wcd938x: add basic controls Srinivas Kandagatla
2021-04-14 15:48 ` [PATCH v4 7/9] ASoC: codecs: wcd938x: add playback dapm widgets Srinivas Kandagatla
2021-04-14 15:48 ` [PATCH v4 8/9] ASoC: codecs: wcd938x: add capture " Srinivas Kandagatla
2021-04-14 15:48 ` [PATCH v4 9/9] ASoC: codecs: wcd938x: add audio routing Srinivas Kandagatla
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=96e7c752-a962-cb5b-c936-8151fd4c32ea@linaro.org \
--to=srinivas.kandagatla@linaro.org \
--cc=alsa-devel@alsa-project.org \
--cc=broonie@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=lgirdwood@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=perex@perex.cz \
--cc=robh@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).