xref: /freebsd-src/sys/contrib/device-tree/Bindings/usb/qcom,wcd939x-usbss.yaml (revision 01950c46b8155250f64374fb72fc11faa44bf099)
18d13bc63SEmmanuel Vadot# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
28d13bc63SEmmanuel Vadot%YAML 1.2
38d13bc63SEmmanuel Vadot---
48d13bc63SEmmanuel Vadot$id: http://devicetree.org/schemas/usb/qcom,wcd939x-usbss.yaml#
58d13bc63SEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
68d13bc63SEmmanuel Vadot
78d13bc63SEmmanuel Vadottitle: Qualcomm WCD9380/WCD9385 USB SubSystem Altmode/Analog Audio Switch
88d13bc63SEmmanuel Vadot
98d13bc63SEmmanuel Vadotmaintainers:
108d13bc63SEmmanuel Vadot  - Neil Armstrong <neil.armstrong@linaro.org>
118d13bc63SEmmanuel Vadot
128d13bc63SEmmanuel Vadotdescription:
138d13bc63SEmmanuel Vadot  Qualcomm WCD9390/WCD9395 is a standalone Hi-Fi audio codec IC with a
148d13bc63SEmmanuel Vadot  functionally separate USB SubSystem for Altmode/Analog Audio Switch
158d13bc63SEmmanuel Vadot  accessible over an I2C interface.
168d13bc63SEmmanuel Vadot  The Audio Headphone and Microphone data path between the Codec and the
178d13bc63SEmmanuel Vadot  USB-C Mux subsystems are external to the IC, thus requiring DT port-endpoint
188d13bc63SEmmanuel Vadot  graph description to handle USB-C altmode & orientation switching for Audio
198d13bc63SEmmanuel Vadot  Accessory Mode.
208d13bc63SEmmanuel Vadot
218d13bc63SEmmanuel Vadotproperties:
228d13bc63SEmmanuel Vadot  compatible:
238d13bc63SEmmanuel Vadot    oneOf:
248d13bc63SEmmanuel Vadot      - const: qcom,wcd9390-usbss
258d13bc63SEmmanuel Vadot      - items:
268d13bc63SEmmanuel Vadot          - const: qcom,wcd9395-usbss
278d13bc63SEmmanuel Vadot          - const: qcom,wcd9390-usbss
288d13bc63SEmmanuel Vadot
298d13bc63SEmmanuel Vadot  reg:
308d13bc63SEmmanuel Vadot    maxItems: 1
318d13bc63SEmmanuel Vadot
328d13bc63SEmmanuel Vadot  reset-gpios:
338d13bc63SEmmanuel Vadot    maxItems: 1
348d13bc63SEmmanuel Vadot
358d13bc63SEmmanuel Vadot  vdd-supply:
368d13bc63SEmmanuel Vadot    description: USBSS VDD power supply
378d13bc63SEmmanuel Vadot
38*01950c46SEmmanuel Vadot  mode-switch: true
39*01950c46SEmmanuel Vadot  orientation-switch: true
408d13bc63SEmmanuel Vadot
418d13bc63SEmmanuel Vadot  ports:
428d13bc63SEmmanuel Vadot    $ref: /schemas/graph.yaml#/properties/ports
438d13bc63SEmmanuel Vadot    properties:
448d13bc63SEmmanuel Vadot      port@0:
458d13bc63SEmmanuel Vadot        $ref: /schemas/graph.yaml#/properties/port
468d13bc63SEmmanuel Vadot        description:
478d13bc63SEmmanuel Vadot          A port node to link the WCD939x USB SubSystem to a TypeC controller for the
488d13bc63SEmmanuel Vadot          purpose of handling altmode muxing and orientation switching.
498d13bc63SEmmanuel Vadot
508d13bc63SEmmanuel Vadot      port@1:
518d13bc63SEmmanuel Vadot        $ref: /schemas/graph.yaml#/properties/port
528d13bc63SEmmanuel Vadot        description:
538d13bc63SEmmanuel Vadot          A port node to link the WCD939x USB SubSystem to the Codec SubSystem for the
548d13bc63SEmmanuel Vadot          purpose of handling USB-C Audio Accessory Mode muxing and orientation switching.
558d13bc63SEmmanuel Vadot
568d13bc63SEmmanuel Vadotrequired:
578d13bc63SEmmanuel Vadot  - compatible
588d13bc63SEmmanuel Vadot  - reg
598d13bc63SEmmanuel Vadot  - ports
608d13bc63SEmmanuel Vadot
61*01950c46SEmmanuel VadotallOf:
62*01950c46SEmmanuel Vadot  - $ref: usb-switch.yaml#
63*01950c46SEmmanuel Vadot
648d13bc63SEmmanuel VadotadditionalProperties: false
658d13bc63SEmmanuel Vadot
668d13bc63SEmmanuel Vadotexamples:
678d13bc63SEmmanuel Vadot  - |
688d13bc63SEmmanuel Vadot    i2c {
698d13bc63SEmmanuel Vadot        #address-cells = <1>;
708d13bc63SEmmanuel Vadot        #size-cells = <0>;
718d13bc63SEmmanuel Vadot
728d13bc63SEmmanuel Vadot        typec-mux@42 {
738d13bc63SEmmanuel Vadot            compatible = "qcom,wcd9390-usbss";
748d13bc63SEmmanuel Vadot            reg = <0x42>;
758d13bc63SEmmanuel Vadot
768d13bc63SEmmanuel Vadot            vdd-supply = <&vreg_bob>;
778d13bc63SEmmanuel Vadot
788d13bc63SEmmanuel Vadot            mode-switch;
798d13bc63SEmmanuel Vadot            orientation-switch;
808d13bc63SEmmanuel Vadot
818d13bc63SEmmanuel Vadot            ports {
828d13bc63SEmmanuel Vadot                #address-cells = <1>;
838d13bc63SEmmanuel Vadot                #size-cells = <0>;
848d13bc63SEmmanuel Vadot
858d13bc63SEmmanuel Vadot                port@0 {
868d13bc63SEmmanuel Vadot                    reg = <0>;
878d13bc63SEmmanuel Vadot                    wcd9390_usbss_sbu: endpoint {
888d13bc63SEmmanuel Vadot                        remote-endpoint = <&typec_sbu>;
898d13bc63SEmmanuel Vadot                    };
908d13bc63SEmmanuel Vadot                };
918d13bc63SEmmanuel Vadot                port@1 {
928d13bc63SEmmanuel Vadot                    reg = <1>;
938d13bc63SEmmanuel Vadot                    wcd9390_usbss_codec: endpoint {
948d13bc63SEmmanuel Vadot                        remote-endpoint = <&wcd9390_codec_usbss>;
958d13bc63SEmmanuel Vadot                    };
968d13bc63SEmmanuel Vadot                };
978d13bc63SEmmanuel Vadot            };
988d13bc63SEmmanuel Vadot        };
998d13bc63SEmmanuel Vadot    };
1008d13bc63SEmmanuel Vadot...
101