blob: 6e76f6a8634f0761c67e2bd3f57268dcb347e66e [file] [log] [blame]
Tom Rini6bb92fc2024-05-20 09:54:58 -06001# 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
7title: Qualcomm WCD9380/WCD9385 Audio Codec
8
9maintainers:
10 - Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
11
12description: |
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
21allOf:
22 - $ref: dai-common.yaml#
23 - $ref: qcom,wcd93xx-common.yaml#
24
25properties:
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
48required:
49 - compatible
50
51unevaluatedProperties: false
52
53examples:
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...