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 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/sound/qcom,wcd938x.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml#
+title: Bindings for Qualcomm WCD9380/WCD9385 Audio Codec
+maintainers:
- Srinivas Kandagatla srinivas.kandagatla@linaro.org
+description: |
- Qualcomm WCD9380/WCD9385 Codec is a standalone Hi-Fi audio codec IC.
- It has RX and TX Soundwire slave devices.
+properties:
- compatible:
- enum:
- qcom,wcd9380-codec
- qcom,wcd9385-codec
- reset-gpios:
- description: GPIO spec for reset line to use
- maxItems: 1
- vdd-buck-supply:
- description: A reference to the 1.8V buck supply
- vdd-rxtx-supply:
- description: A reference to the 1.8V rx supply
- vdd-io-supply:
- description: A reference to the 1.8V I/O supply
- qcom,tx-device:
- $ref: /schemas/types.yaml#/definitions/phandle-array
- maxItems: 1
- description: A reference to Soundwire tx device phandle
- qcom,rx-device:
- $ref: /schemas/types.yaml#/definitions/phandle-array
- maxItems: 1
- description: A reference to Soundwire rx device phandle
- qcom,micbias1-microvolt:
- description: micbias1 voltage
- minimum: 1800000
- maximum: 2850000
- qcom,micbias2-microvolt:
- description: micbias2 voltage
- minimum: 1800000
- maximum: 2850000
- qcom,micbias3-microvolt:
- description: micbias3 voltage
- minimum: 1800000
- maximum: 2850000
- qcom,micbias4-microvolt:
- description: micbias4 voltage
- minimum: 1800000
- maximum: 2850000
- qcom,mbhc-hphl-switch:
- description: Indicates that HPHL switch type is normally closed
- type: boolean
- qcom,mbhc-ground-switch:
- description: Indicates that Headset Ground switch type is normally closed
- type: boolean
- qcom,mbhc-button0-vthreshold-microvolt:
- description: Voltage threshold value headset button0
- minimum: 0
- maximum: 500000
- qcom,mbhc-button1-vthreshold-microvolt:
- description: Voltage threshold value headset button1
- minimum: 0
- maximum: 500000
- qcom,mbhc-button2-vthreshold-microvolt:
- description: Voltage threshold value headset button2
- minimum: 0
- maximum: 500000
- qcom,mbhc-button3-vthreshold-microvolt:
- description: Voltage threshold value headset button3
- minimum: 0
- maximum: 500000
- qcom,mbhc-button4-vthreshold-microvolt:
- description: Voltage threshold value headset button4
- minimum: 0
- maximum: 500000
- qcom,mbhc-button5-vthreshold-microvolt:
- description: Voltage threshold value headset button5
- minimum: 0
- maximum: 500000
- qcom,mbhc-button6-vthreshold-microvolt:
- description: Voltage threshold value headset button6
- minimum: 0
- maximum: 500000
- qcom,mbhc-button7-vthreshold-microvolt:
- description: Voltage threshold value headset button7
- minimum: 0
- maximum: 500000
- '#sound-dai-cells':
- const: 1
+required:
- compatible
- reset-gpios
- qcom,tx-device
- qcom,rx-device
- qcom,micbias1-microvolt
- qcom,micbias2-microvolt
- qcom,micbias3-microvolt
- qcom,micbias4-microvolt
- qcom,mbhc-hphl-switch
- qcom,mbhc-ground-switch
- "#sound-dai-cells"
+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:
codec@0,3 { reg = <0 3>, <0 4>; 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.
Rob