xref: /linux/Documentation/devicetree/bindings/usb/qcom,wcd939x-usbss.yaml (revision 79790b6818e96c58fe2bffee1b418c16e64e7b80)
1de12c538SNeil Armstrong# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
2de12c538SNeil Armstrong%YAML 1.2
3de12c538SNeil Armstrong---
4de12c538SNeil Armstrong$id: http://devicetree.org/schemas/usb/qcom,wcd939x-usbss.yaml#
5de12c538SNeil Armstrong$schema: http://devicetree.org/meta-schemas/core.yaml#
6de12c538SNeil Armstrong
7de12c538SNeil Armstrongtitle: Qualcomm WCD9380/WCD9385 USB SubSystem Altmode/Analog Audio Switch
8de12c538SNeil Armstrong
9de12c538SNeil Armstrongmaintainers:
10de12c538SNeil Armstrong  - Neil Armstrong <neil.armstrong@linaro.org>
11de12c538SNeil Armstrong
12de12c538SNeil Armstrongdescription:
13de12c538SNeil Armstrong  Qualcomm WCD9390/WCD9395 is a standalone Hi-Fi audio codec IC with a
14de12c538SNeil Armstrong  functionally separate USB SubSystem for Altmode/Analog Audio Switch
15de12c538SNeil Armstrong  accessible over an I2C interface.
16de12c538SNeil Armstrong  The Audio Headphone and Microphone data path between the Codec and the
17de12c538SNeil Armstrong  USB-C Mux subsystems are external to the IC, thus requiring DT port-endpoint
18de12c538SNeil Armstrong  graph description to handle USB-C altmode & orientation switching for Audio
19de12c538SNeil Armstrong  Accessory Mode.
20de12c538SNeil Armstrong
21de12c538SNeil Armstrongproperties:
22de12c538SNeil Armstrong  compatible:
23de12c538SNeil Armstrong    oneOf:
24de12c538SNeil Armstrong      - const: qcom,wcd9390-usbss
25de12c538SNeil Armstrong      - items:
26de12c538SNeil Armstrong          - const: qcom,wcd9395-usbss
27de12c538SNeil Armstrong          - const: qcom,wcd9390-usbss
28de12c538SNeil Armstrong
29de12c538SNeil Armstrong  reg:
30de12c538SNeil Armstrong    maxItems: 1
31de12c538SNeil Armstrong
32de12c538SNeil Armstrong  reset-gpios:
33de12c538SNeil Armstrong    maxItems: 1
34de12c538SNeil Armstrong
35de12c538SNeil Armstrong  vdd-supply:
36de12c538SNeil Armstrong    description: USBSS VDD power supply
37de12c538SNeil Armstrong
38*fd2a052cSKrzysztof Kozlowski  mode-switch: true
39*fd2a052cSKrzysztof Kozlowski  orientation-switch: true
40de12c538SNeil Armstrong
41de12c538SNeil Armstrong  ports:
42de12c538SNeil Armstrong    $ref: /schemas/graph.yaml#/properties/ports
43de12c538SNeil Armstrong    properties:
44de12c538SNeil Armstrong      port@0:
45de12c538SNeil Armstrong        $ref: /schemas/graph.yaml#/properties/port
46de12c538SNeil Armstrong        description:
47de12c538SNeil Armstrong          A port node to link the WCD939x USB SubSystem to a TypeC controller for the
48de12c538SNeil Armstrong          purpose of handling altmode muxing and orientation switching.
49de12c538SNeil Armstrong
50de12c538SNeil Armstrong      port@1:
51de12c538SNeil Armstrong        $ref: /schemas/graph.yaml#/properties/port
52de12c538SNeil Armstrong        description:
53de12c538SNeil Armstrong          A port node to link the WCD939x USB SubSystem to the Codec SubSystem for the
54de12c538SNeil Armstrong          purpose of handling USB-C Audio Accessory Mode muxing and orientation switching.
55de12c538SNeil Armstrong
56de12c538SNeil Armstrongrequired:
57de12c538SNeil Armstrong  - compatible
58de12c538SNeil Armstrong  - reg
59de12c538SNeil Armstrong  - ports
60de12c538SNeil Armstrong
61*fd2a052cSKrzysztof KozlowskiallOf:
62*fd2a052cSKrzysztof Kozlowski  - $ref: usb-switch.yaml#
63*fd2a052cSKrzysztof Kozlowski
64de12c538SNeil ArmstrongadditionalProperties: false
65de12c538SNeil Armstrong
66de12c538SNeil Armstrongexamples:
67de12c538SNeil Armstrong  - |
68de12c538SNeil Armstrong    i2c {
69de12c538SNeil Armstrong        #address-cells = <1>;
70de12c538SNeil Armstrong        #size-cells = <0>;
71de12c538SNeil Armstrong
72de12c538SNeil Armstrong        typec-mux@42 {
73de12c538SNeil Armstrong            compatible = "qcom,wcd9390-usbss";
74de12c538SNeil Armstrong            reg = <0x42>;
75de12c538SNeil Armstrong
76de12c538SNeil Armstrong            vdd-supply = <&vreg_bob>;
77de12c538SNeil Armstrong
78de12c538SNeil Armstrong            mode-switch;
79de12c538SNeil Armstrong            orientation-switch;
80de12c538SNeil Armstrong
81de12c538SNeil Armstrong            ports {
82de12c538SNeil Armstrong                #address-cells = <1>;
83de12c538SNeil Armstrong                #size-cells = <0>;
84de12c538SNeil Armstrong
85de12c538SNeil Armstrong                port@0 {
86de12c538SNeil Armstrong                    reg = <0>;
87de12c538SNeil Armstrong                    wcd9390_usbss_sbu: endpoint {
88de12c538SNeil Armstrong                        remote-endpoint = <&typec_sbu>;
89de12c538SNeil Armstrong                    };
90de12c538SNeil Armstrong                };
91de12c538SNeil Armstrong                port@1 {
92de12c538SNeil Armstrong                    reg = <1>;
93de12c538SNeil Armstrong                    wcd9390_usbss_codec: endpoint {
94de12c538SNeil Armstrong                        remote-endpoint = <&wcd9390_codec_usbss>;
95de12c538SNeil Armstrong                    };
96de12c538SNeil Armstrong                };
97de12c538SNeil Armstrong            };
98de12c538SNeil Armstrong        };
99de12c538SNeil Armstrong    };
100de12c538SNeil Armstrong...
101