[1/2] dt-bindings: usb: Document WCD939x USB SubSystem Altmode/Analog Audio Switch
Commit Message
Document the Qualcomm WCD9390/WCD9395 USB SubSystem Altmode/Analog Audio Switch
which is a separate USB SubSystem for Altmode/Analog Audio Switch accessible
over an I2C interface.
Since Audio Headphone and Microphone data path between the Codec and the USB-C Mux
subsystems are external to the IC, it requires a second port to handle USB-C altmode
& orientation switching for Audio Accessory Mode to the Codec SubSystem.
Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
---
.../bindings/usb/qcom,wcd939x-usbss.yaml | 99 ++++++++++++++++++++++
1 file changed, 99 insertions(+)
Comments
On 08/12/2023 16:27, Neil Armstrong wrote:
> Document the Qualcomm WCD9390/WCD9395 USB SubSystem Altmode/Analog Audio Switch
> which is a separate USB SubSystem for Altmode/Analog Audio Switch accessible
> over an I2C interface.
>
> Since Audio Headphone and Microphone data path between the Codec and the USB-C Mux
> subsystems are external to the IC, it requires a second port to handle USB-C altmode
> & orientation switching for Audio Accessory Mode to the Codec SubSystem.
>
> Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
> ---
> .../bindings/usb/qcom,wcd939x-usbss.yaml | 99 ++++++++++++++++++++++
> 1 file changed, 99 insertions(+)
>
> diff --git a/Documentation/devicetree/bindings/usb/qcom,wcd939x-usbss.yaml b/Documentation/devicetree/bindings/usb/qcom,wcd939x-usbss.yaml
> new file mode 100644
> index 000000000000..da86b1d119d4
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/usb/qcom,wcd939x-usbss.yaml
> @@ -0,0 +1,99 @@
> +# 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: |
Do not need '|' unless you need to preserve formatting.
> + 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.
Please wrap at 80. In other descriptions as well.
> + 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: true
This is the only GPIO from common GPIOs which actually needs maxItems.
Please add maxItems: 1
Best regards,
Krzysztof
new file mode 100644
@@ -0,0 +1,99 @@
+# 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: true
+
+ vdd-supply:
+ description: USBSS VDD power supply
+
+ mode-switch:
+ description: Flag the port as possible handle of altmode switching
+ type: boolean
+
+ orientation-switch:
+ description: Flag the port as possible handler of orientation switching
+ type: boolean
+
+ 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
+
+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>;
+ };
+ };
+ };
+ };
+ };
+...