# 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 <neil.armstrong@linaro.org>
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>;
};
};
};
};
};...