xref: /linux/Documentation/devicetree/bindings/sound/qcom,wcd939x.yaml (revision 566ab427f827b0256d3e8ce0235d088e6a9c28bd)
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
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/gpio/gpio.h>
56    codec {
57        compatible = "qcom,wcd9390-codec";
58        reset-gpios = <&tlmm 32 GPIO_ACTIVE_LOW>;
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...
97