linux-loongson/Documentation/devicetree/bindings/usb/gpio-sbu-mux.yaml
Stephan Gerhold d21bbeee52 dt-bindings: usb: gpio-sbu-mux: Add an entry for FSUSB42
Add a compatible entry for the onsemi FSUSB42 USB switch, which can be used
for switching orientation of the SBU lines in USB Type-C applications.

Drivers work as-is with the existing fallback compatible.

Link to datasheet: https://www.onsemi.com/pdf/datasheet/fsusb42-d.pdf

Signed-off-by: Stephan Gerhold <stephan.gerhold@linaro.org>
Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Link: https://lore.kernel.org/r/20241212-x1e80100-qcp-dp-v1-1-37cb362a0dfe@linaro.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2024-12-24 08:56:04 +01:00

116 lines
2.6 KiB
YAML

# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/usb/gpio-sbu-mux.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: GPIO-based SBU mux
maintainers:
- Bjorn Andersson <andersson@kernel.org>
description:
In USB Type-C applications the SBU lines needs to be connected, disconnected
and swapped depending on the altmode and orientation. This binding describes
a family of hardware solutions which switches between these modes using GPIO
signals.
properties:
compatible:
items:
- enum:
- nxp,cbdtu02043
- onnn,fsusb42
- onnn,fsusb43l10x
- pericom,pi3usb102
- ti,tmuxhs4212
- const: gpio-sbu-mux
enable-gpios:
description: Switch enable GPIO
select-gpios:
description: Orientation select
vcc-supply:
description: power supply
mode-switch: true
orientation-switch: true
port:
$ref: /schemas/graph.yaml#/properties/port
description:
A port node to link the SBU mux to a TypeC controller for the purpose of
handling altmode muxing and orientation switching.
required:
- compatible
- select-gpios
- orientation-switch
- port
allOf:
- $ref: usb-switch.yaml#
- if:
required:
- mode-switch
then:
required:
- enable-gpios
additionalProperties: false
examples:
- |
#include <dt-bindings/gpio/gpio.h>
tcpm {
connector {
compatible = "usb-c-connector";
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
tcpm_hs_out: endpoint {
remote-endpoint = <&usb_hs_phy_in>;
};
};
port@1 {
reg = <1>;
tcpm_ss_out: endpoint {
remote-endpoint = <&usb_ss_phy_in>;
};
};
port@2 {
reg = <2>;
tcpm_sbu_out: endpoint {
remote-endpoint = <&sbu_mux_in>;
};
};
};
};
};
sbu-mux {
compatible = "pericom,pi3usb102", "gpio-sbu-mux";
enable-gpios = <&tlmm 101 GPIO_ACTIVE_LOW>;
select-gpios = <&tlmm 164 GPIO_ACTIVE_HIGH>;
mode-switch;
orientation-switch;
port {
sbu_mux_in: endpoint {
remote-endpoint = <&tcpm_sbu_out>;
};
};
};
...