# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause %YAML 1.2 --- $id: http://devicetree.org/schemas/usb/qcom,wcd939x-usbss.yaml# $schema: http://devicetree.org/meta-schemas/core.yaml# title: Qualcomm WCD9380/WCD9385 USB SubSystem Altmode/Analog Audio Switch maintainers: - Neil Armstrong description: Qualcomm WCD9390/WCD9395 is a standalone Hi-Fi audio codec IC with a functionally separate USB SubSystem for Altmode/Analog Audio Switch accessible over an I2C interface. The Audio Headphone and Microphone data path between the Codec and the USB-C Mux subsystems are external to the IC, thus requiring DT port-endpoint graph description to handle USB-C altmode & orientation switching for Audio Accessory Mode. properties: compatible: oneOf: - const: qcom,wcd9390-usbss - items: - const: qcom,wcd9395-usbss - const: qcom,wcd9390-usbss reg: maxItems: 1 reset-gpios: maxItems: 1 vdd-supply: description: USBSS VDD power supply mode-switch: true orientation-switch: true ports: $ref: /schemas/graph.yaml#/properties/ports properties: port@0: $ref: /schemas/graph.yaml#/properties/port description: A port node to link the WCD939x USB SubSystem to a TypeC controller for the purpose of handling altmode muxing and orientation switching. port@1: $ref: /schemas/graph.yaml#/properties/port description: A port node to link the WCD939x USB SubSystem to the Codec SubSystem for the purpose of handling USB-C Audio Accessory Mode muxing and orientation switching. required: - compatible - reg - ports allOf: - $ref: usb-switch.yaml# additionalProperties: false examples: - | i2c { #address-cells = <1>; #size-cells = <0>; typec-mux@42 { compatible = "qcom,wcd9390-usbss"; reg = <0x42>; vdd-supply = <&vreg_bob>; mode-switch; orientation-switch; ports { #address-cells = <1>; #size-cells = <0>; port@0 { reg = <0>; wcd9390_usbss_sbu: endpoint { remote-endpoint = <&typec_sbu>; }; }; port@1 { reg = <1>; wcd9390_usbss_codec: endpoint { remote-endpoint = <&wcd9390_codec_usbss>; }; }; }; }; }; ...