blob: 88e1607cf053ac11ae7bf76ea13f09ad4b15c7da [file] [log] [blame]
Tom Rini53633a82024-02-29 12:33:36 -05001# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/usb/gpio-sbu-mux.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: GPIO-based SBU mux
8
9maintainers:
10 - Bjorn Andersson <andersson@kernel.org>
11
12description:
13 In USB Type-C applications the SBU lines needs to be connected, disconnected
14 and swapped depending on the altmode and orientation. This binding describes
15 a family of hardware solutions which switches between these modes using GPIO
16 signals.
17
18properties:
19 compatible:
20 items:
21 - enum:
22 - nxp,cbdtu02043
23 - onnn,fsusb43l10x
24 - pericom,pi3usb102
25 - const: gpio-sbu-mux
26
27 enable-gpios:
28 description: Switch enable GPIO
29
30 select-gpios:
31 description: Orientation select
32
33 vcc-supply:
34 description: power supply
35
Tom Rini6bb92fc2024-05-20 09:54:58 -060036 mode-switch: true
37 orientation-switch: true
Tom Rini53633a82024-02-29 12:33:36 -050038
39 port:
40 $ref: /schemas/graph.yaml#/properties/port
41 description:
42 A port node to link the SBU mux to a TypeC controller for the purpose of
43 handling altmode muxing and orientation switching.
44
45required:
46 - compatible
47 - enable-gpios
48 - select-gpios
49 - orientation-switch
50 - port
51
Tom Rini6bb92fc2024-05-20 09:54:58 -060052allOf:
53 - $ref: usb-switch.yaml#
54
Tom Rini53633a82024-02-29 12:33:36 -050055additionalProperties: false
56
57examples:
58 - |
59 #include <dt-bindings/gpio/gpio.h>
60
61 tcpm {
62 connector {
63 compatible = "usb-c-connector";
64
65 ports {
66 #address-cells = <1>;
67 #size-cells = <0>;
68
69 port@0 {
70 reg = <0>;
71 tcpm_hs_out: endpoint {
72 remote-endpoint = <&usb_hs_phy_in>;
73 };
74 };
75
76 port@1 {
77 reg = <1>;
78 tcpm_ss_out: endpoint {
79 remote-endpoint = <&usb_ss_phy_in>;
80 };
81 };
82
83 port@2 {
84 reg = <2>;
85 tcpm_sbu_out: endpoint {
86 remote-endpoint = <&sbu_mux_in>;
87 };
88 };
89 };
90 };
91 };
92
93 sbu-mux {
94 compatible = "pericom,pi3usb102", "gpio-sbu-mux";
95
96 enable-gpios = <&tlmm 101 GPIO_ACTIVE_LOW>;
97 select-gpios = <&tlmm 164 GPIO_ACTIVE_HIGH>;
98
99 mode-switch;
100 orientation-switch;
101
102 port {
103 sbu_mux_in: endpoint {
104 remote-endpoint = <&tcpm_sbu_out>;
105 };
106 };
107 };
108...