On 16/05/2024 06:47, Mohammad Rafi Shaik wrote: > From: Prasad Kumpatla <quic_pkumpatl@xxxxxxxxxxx> > > Document the Qualcomm WCD9370/WCD9375 Audio Codec and the > Soundwire devices than can be found on Qualcomm QCM6490 based platforms. > > The Qualcomm WCD9370/WCD9375 Audio Codec communicates Thank you for your patch. There is something to discuss/improve. > + > + qcom,tx-port-mapping: > + description: | > + Specifies static port mapping between device and host tx ports. > + In the order of the device port index which are adc1_port, adc23_port, > + dmic03_mbhc_port, dmic46_port. > + Supports maximum 4 tx soundwire ports. > + > + WCD9370 TX Port 1 (ADC1) <=> SWR2 Port 2 > + WCD9370 TX Port 2 (ADC2, 3) <=> SWR2 Port 2 > + WCD9370 TX Port 3 (DMIC0,1,2,3 & MBHC) <=> SWR2 Port 3 > + WCD9370 TX Port 4 (DMIC4,5,6,7) <=> SWR2 Port 4 > + > + $ref: /schemas/types.yaml#/definitions/uint32-array > + minItems: 4 > + maxItems: 4 > + items: > + oneOf: oneOf here is not needed. Previously used enum should be fine. > + - minimum: 1 > + maximum: 4 > + > + qcom,rx-port-mapping: > + description: | > + Specifies static port mapping between device and host rx ports. > + In the order of device port index which are hph_port, clsh_port, > + comp_port, lo_port, dsd port. > + Supports maximum 5 rx soundwire ports. > + > + WCD9370 RX Port 1 (HPH_L/R) <==> SWR1 Port 1 (HPH_L/R) > + WCD9370 RX Port 2 (CLSH) <==> SWR1 Port 2 (CLSH) > + WCD9370 RX Port 3 (COMP_L/R) <==> SWR1 Port 3 (COMP_L/R) > + WCD9370 RX Port 4 (LO) <==> SWR1 Port 4 (LO) > + WCD9370 RX Port 5 (DSD_L/R) <==> SWR1 Port 5 (DSD) > + > + $ref: /schemas/types.yaml#/definitions/uint32-array > + minItems: 5 > + maxItems: 5 > + items: > + oneOf: Again, no need for oneof. > + - minimum: 1 > + maximum: 5 > + > +required: > + - compatible > + - reg > + > +additionalProperties: false > + > +examples: > + - | > + soundwire@3210000 { > + reg = <0x03210000 0x2000>; > + #address-cells = <2>; > + #size-cells = <0>; > + wcd937x_rx: codec@0,4 { > + compatible = "sdw20217010a00"; > + reg = <0 4>; > + qcom,rx-port-mapping = <1 2 3 4 5>; > + }; > + }; > + > + soundwire@3230000 { > + reg = <0x03230000 0x2000>; > + #address-cells = <2>; > + #size-cells = <0>; > + wcd937x_tx: codec@0,3 { > + compatible = "sdw20217010a00"; > + reg = <0 3>; > + qcom,tx-port-mapping = <2 2 3 4>; > + }; > + }; > + > +... > diff --git a/Documentation/devicetree/bindings/sound/qcom,wcd937x.yaml b/Documentation/devicetree/bindings/sound/qcom,wcd937x.yaml > new file mode 100644 > index 000000000000..5c76083691ea > --- /dev/null > +++ b/Documentation/devicetree/bindings/sound/qcom,wcd937x.yaml > @@ -0,0 +1,80 @@ > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/sound/qcom,wcd937x.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: Qualcomm WCD9370/WCD9375 Audio Codec > + > +maintainers: > + - Srinivas Kandagatla <srinivas.kandagatla@xxxxxxxxxx> > + > +description: > + Qualcomm WCD9370/WCD9375 Codec is a standalone Hi-Fi audio codec IC. > + It has RX and TX Soundwire slave devices. > + > +allOf: > + - $ref: dai-common.yaml# > + - $ref: qcom,wcd93xx-common.yaml# > + > +properties: > + compatible: > + oneOf: > + - const: qcom,wcd9370-codec > + - items: > + - const: qcom,wcd9375-codec > + - const: qcom,wcd9370-codec > + > + vdd-px-supply: > + description: A reference to the 1.8V I/O supply > + > +required: > + - compatible I guess VDDPX is not really optional in the hardware is it? > + > +unevaluatedProperties: false > + > +examples: > + - | > + codec { > + compatible = "qcom,wcd9370-codec"; > + pinctrl-names = "default", "sleep"; > + pinctrl-0 = <&wcd_reset_n>; > + pinctrl-1 = <&wcd_reset_n_sleep>; > + reset-gpios = <&tlmm 83 0>; Use defines for common/known flags, like GPIO flags. > + vdd-buck-supply = <&vreg_l17b_1p8>; > + vdd-rxtx-supply = <&vreg_l18b_1p8>; > + vdd-px-supply = <&vreg_l18b_1p8>; > + vdd-mic-bias-supply = <&vreg_bob>; > + qcom,micbias1-microvolt = <1800000>; > + qcom,micbias2-microvolt = <1800000>; > + qcom,micbias3-microvolt = <1800000>; > + qcom,micbias4-microvolt = <1800000>; > + qcom,rx-device = <&wcd937x_rx>; > + qcom,tx-device = <&wcd937x_tx>; > + #sound-dai-cells = <1>; > + }; > + > + /* ... */ > + > + soundwire@3210000 { > + reg = <0x03210000 0x2000>; > + #address-cells = <2>; > + #size-cells = <0>; > + wcd937x_rx: codec@0,4 { > + compatible = "sdw20217010a00"; > + reg = <0 4>; Just one space goes before = This applies to all places. > + qcom,rx-port-mapping = <1 2 3 4 5>; > + }; > + }; > + > + soundwire@3230000 { > + reg = <0x03230000 0x2000>; > + #address-cells = <2>; > + #size-cells = <0>; > + wcd937x_tx: codec@0,3 { > + compatible = "sdw20217010a00"; > + reg = <0 3>; Best regards, Krzysztof