Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

ASoC: dt-bindings: document WCD939x Audio Codec

Document the Qualcomm WCD9390/WCD9395 Audio Codec and the
Soundwire devices than can be found on Qualcomm SM8650 based platforms.

The Qualcomm WCD9390/WCD9395 Audio Codec communicates
with the host SoC over 2 Soundwire links to provide:
- 4 ADC inputs for up to 5 Analog Microphones
- 4 DMIC inputs for up to 8 Digital Microphones
- 4 Microphone BIAS
- Stereo Headphone output
- Mono EAR output
- MBHC engine for Headset Detection

The WCD9390/WCD9395 IC has separate I2C subsystem for USB-C
DP Altmode/Audio Accessory mode Mux which is not documented
here but requires port/endpoint graph and properties to handle
Altmode/Audio Accessory switch and orientation.

Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
Link: https://msgid.link/r/20231219-topic-sm8650-upstream-wcd939x-codec-v4-2-1c3bbff2d7ab@linaro.org
Signed-off-by: Mark Brown <broonie@kernel.org>

authored by

Neil Armstrong and committed by
Mark Brown
edf647d1 166ee0b3

+165
+69
Documentation/devicetree/bindings/sound/qcom,wcd939x-sdw.yaml
··· 1 + # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/sound/qcom,wcd939x-sdw.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Qualcomm SoundWire devices on WCD9390/WCD9395 8 + 9 + maintainers: 10 + - Srinivas Kandagatla <srinivas.kandagatla@linaro.org> 11 + 12 + description: | 13 + Qualcomm WCD9390/WCD9395 Codec is a standalone Hi-Fi audio codec IC. 14 + It has RX and TX Soundwire devices. This bindings is for the devices. 15 + 16 + properties: 17 + compatible: 18 + const: sdw20217010e00 19 + 20 + reg: 21 + maxItems: 1 22 + 23 + qcom,tx-port-mapping: 24 + description: | 25 + Specifies static port mapping between device and host tx ports. 26 + In the order of the device port index. 27 + $ref: /schemas/types.yaml#/definitions/uint32-array 28 + minItems: 4 29 + maxItems: 4 30 + 31 + qcom,rx-port-mapping: 32 + description: | 33 + Specifies static port mapping between device and host rx ports. 34 + In the order of device port index. 35 + $ref: /schemas/types.yaml#/definitions/uint32-array 36 + minItems: 6 37 + maxItems: 6 38 + 39 + required: 40 + - compatible 41 + - reg 42 + 43 + additionalProperties: false 44 + 45 + examples: 46 + - | 47 + soundwire@3210000 { 48 + #address-cells = <2>; 49 + #size-cells = <0>; 50 + reg = <0x03210000 0x2000>; 51 + wcd938x_rx: codec@0,4 { 52 + compatible = "sdw20217010e00"; 53 + reg = <0 4>; 54 + qcom,rx-port-mapping = <1 2 3 4 5 6>; 55 + }; 56 + }; 57 + 58 + soundwire@3230000 { 59 + #address-cells = <2>; 60 + #size-cells = <0>; 61 + reg = <0x03230000 0x2000>; 62 + wcd938x_tx: codec@0,3 { 63 + compatible = "sdw20217010e00"; 64 + reg = <0 3>; 65 + qcom,tx-port-mapping = <2 3 4 5>; 66 + }; 67 + }; 68 + 69 + ...
+96
Documentation/devicetree/bindings/sound/qcom,wcd939x.yaml
··· 1 + # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/sound/qcom,wcd939x.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Qualcomm WCD9380/WCD9385 Audio Codec 8 + 9 + maintainers: 10 + - Srinivas Kandagatla <srinivas.kandagatla@linaro.org> 11 + 12 + description: | 13 + Qualcomm WCD9390/WCD9395 Codec is a standalone Hi-Fi audio codec IC. 14 + It has RX and TX Soundwire devices. 15 + The WCD9390/WCD9395 IC has a functionally separate USB-C Mux subsystem 16 + accessible over an I2C interface. 17 + The Audio Headphone and Microphone data path between the Codec and the USB-C Mux 18 + subsystems are external to the IC, thus requiring DT port-endpoint graph description 19 + to handle USB-C altmode & orientation switching for Audio Accessory Mode. 20 + 21 + allOf: 22 + - $ref: dai-common.yaml# 23 + - $ref: qcom,wcd93xx-common.yaml# 24 + 25 + properties: 26 + compatible: 27 + oneOf: 28 + - const: qcom,wcd9390-codec 29 + - items: 30 + - const: qcom,wcd9395-codec 31 + - const: qcom,wcd9390-codec 32 + 33 + mode-switch: 34 + description: Flag the port as possible handler of altmode switching 35 + type: boolean 36 + 37 + orientation-switch: 38 + description: Flag the port as possible handler of orientation switching 39 + type: boolean 40 + 41 + port: 42 + $ref: /schemas/graph.yaml#/properties/port 43 + description: 44 + A port node to link the WCD939x Codec node to USB MUX subsystems for the 45 + purpose of handling altmode muxing and orientation switching to detect and 46 + enable Audio Accessory Mode. 47 + 48 + required: 49 + - compatible 50 + 51 + unevaluatedProperties: false 52 + 53 + examples: 54 + - | 55 + #include <dt-bindings/interrupt-controller/irq.h> 56 + codec { 57 + compatible = "qcom,wcd9390-codec"; 58 + reset-gpios = <&tlmm 32 IRQ_TYPE_NONE>; 59 + #sound-dai-cells = <1>; 60 + qcom,tx-device = <&wcd939x_tx>; 61 + qcom,rx-device = <&wcd939x_rx>; 62 + qcom,micbias1-microvolt = <1800000>; 63 + qcom,micbias2-microvolt = <1800000>; 64 + qcom,micbias3-microvolt = <1800000>; 65 + qcom,micbias4-microvolt = <1800000>; 66 + qcom,hphl-jack-type-normally-closed; 67 + qcom,ground-jack-type-normally-closed; 68 + qcom,mbhc-buttons-vthreshold-microvolt = <75000 150000 237000 500000 500000 500000 500000 500000>; 69 + qcom,mbhc-headphone-vthreshold-microvolt = <50000>; 70 + }; 71 + 72 + /* ... */ 73 + 74 + soundwire@3210000 { 75 + #address-cells = <2>; 76 + #size-cells = <0>; 77 + reg = <0x03210000 0x2000>; 78 + wcd939x_rx: codec@0,4 { 79 + compatible = "sdw20217010e00"; 80 + reg = <0 4>; 81 + qcom,rx-port-mapping = <1 2 3 4 5 6>; 82 + }; 83 + }; 84 + 85 + soundwire@3230000 { 86 + #address-cells = <2>; 87 + #size-cells = <0>; 88 + reg = <0x03230000 0x2000>; 89 + wcd938x_tx: codec@0,3 { 90 + compatible = "sdw20217010e00"; 91 + reg = <0 3>; 92 + qcom,tx-port-mapping = <2 3 4 5>; 93 + }; 94 + }; 95 + 96 + ...