Merge branches 'acpi-scan', 'acpi-pnp' and 'acpi-sleep'
[linux-2.6-microblaze.git] / Documentation / devicetree / bindings / connector / usb-connector.yaml
1 # SPDX-License-Identifier: GPL-2.0-only
2 %YAML 1.2
3 ---
4 $id: http://devicetree.org/schemas/connector/usb-connector.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
6
7 title: USB Connector
8
9 maintainers:
10   - Rob Herring <robh@kernel.org>
11
12 description:
13   A USB connector node represents a physical USB connector. It should be a child
14   of a USB interface controller or a separate node when it is attached to both
15   MUX and USB interface controller.
16
17 properties:
18   compatible:
19     oneOf:
20       - enum:
21           - usb-a-connector
22           - usb-b-connector
23           - usb-c-connector
24
25       - items:
26           - const: gpio-usb-b-connector
27           - const: usb-b-connector
28
29       - items:
30           - const: samsung,usb-connector-11pin
31           - const: usb-b-connector
32
33   label:
34     description: Symbolic name for the connector.
35
36   type:
37     description: Size of the connector, should be specified in case of
38       non-fullsize 'usb-a-connector' or 'usb-b-connector' compatible
39       connectors.
40     $ref: /schemas/types.yaml#definitions/string
41
42     enum:
43       - mini
44       - micro
45
46   self-powered:
47     description: Set this property if the USB device has its own power source.
48     type: boolean
49
50   # The following are optional properties for "usb-b-connector".
51   id-gpios:
52     description: An input gpio for USB ID pin.
53     maxItems: 1
54
55   vbus-gpios:
56     description: An input gpio for USB VBus pin, used to detect presence of
57       VBUS 5V.
58     maxItems: 1
59
60   vbus-supply:
61     description: A phandle to the regulator for USB VBUS if needed when host
62       mode or dual role mode is supported.
63       Particularly, if use an output GPIO to control a VBUS regulator, should
64       model it as a regulator. See bindings/regulator/fixed-regulator.yaml
65
66   # The following are optional properties for "usb-c-connector".
67   power-role:
68     description: Determines the power role that the Type C connector will
69       support. "dual" refers to Dual Role Port (DRP).
70     $ref: /schemas/types.yaml#definitions/string
71
72     enum:
73       - source
74       - sink
75       - dual
76
77   try-power-role:
78     description: Preferred power role.
79     $ref: /schemas/types.yaml#definitions/string
80
81     enum:
82       - source
83       - sink
84       - dual
85
86   data-role:
87     description: Data role if Type C connector supports USB data. "dual" refers
88       Dual Role Device (DRD).
89     $ref: /schemas/types.yaml#definitions/string
90
91     enum:
92       - host
93       - device
94       - dual
95
96   # The following are optional properties for "usb-c-connector" with power
97   # delivery support.
98   source-pdos:
99     description: An array of u32 with each entry providing supported power
100       source data object(PDO), the detailed bit definitions of PDO can be found
101       in "Universal Serial Bus Power Delivery Specification" chapter 6.4.1.2
102       Source_Capabilities Message, the order of each entry(PDO) should follow
103       the PD spec chapter 6.4.1. Required for power source and power dual role.
104       User can specify the source PDO array via PDO_FIXED/BATT/VAR/PPS_APDO()
105       defined in dt-bindings/usb/pd.h.
106     minItems: 1
107     maxItems: 7
108     $ref: /schemas/types.yaml#/definitions/uint32-array
109
110   sink-pdos:
111     description: An array of u32 with each entry providing supported power sink
112       data object(PDO), the detailed bit definitions of PDO can be found in
113       "Universal Serial Bus Power Delivery Specification" chapter 6.4.1.3
114       Sink Capabilities Message, the order of each entry(PDO) should follow the
115       PD spec chapter 6.4.1. Required for power sink and power dual role. User
116       can specify the sink PDO array via PDO_FIXED/BATT/VAR/PPS_APDO() defined
117       in dt-bindings/usb/pd.h.
118     minItems: 1
119     maxItems: 7
120     $ref: /schemas/types.yaml#/definitions/uint32-array
121
122   op-sink-microwatt:
123     description: Sink required operating power in microwatt, if source can't
124       offer the power, Capability Mismatch is set. Required for power sink and
125       power dual role.
126
127   ports:
128     description: OF graph bindings (specified in bindings/graph.txt) that model
129       any data bus to the connector unless the bus is between parent node and
130       the connector. Since a single connector can have multiple data buses every
131       bus has an assigned OF graph port number as described below.
132     type: object
133     properties:
134       port@0:
135         type: object
136         description: High Speed (HS), present in all connectors.
137
138       port@1:
139         type: object
140         description: Super Speed (SS), present in SS capable connectors.
141
142       port@2:
143         type: object
144         description: Sideband Use (SBU), present in USB-C. This describes the
145           alternate mode connection of which SBU is a part.
146
147     required:
148       - port@0
149
150   new-source-frs-typec-current:
151     description: Initial current capability of the new source when vSafe5V
152       is applied during PD3.0 Fast Role Swap. "Table 6-14 Fixed Supply PDO - Sink"
153       of "USB Power Delivery Specification Revision 3.0, Version 1.2" provides the
154       different power levels and "6.4.1.3.1.6 Fast Role Swap USB Type-C Current"
155       provides a detailed description of the field. The sink PDO from current source
156       reflects the current source's(i.e. transmitter of the FRS signal) power
157       requirement during fr swap. The current sink (i.e. receiver of the FRS signal),
158       a.k.a new source, should check if it will be able to satisfy the current source's,
159       new sink's, requirement during frswap before enabling the frs signal reception.
160       This property refers to maximum current capability that the current sink can
161       satisfy. During FRS, VBUS voltage is at 5V, as the partners are in implicit
162       contract, hence, the power level is only a function of the current capability.
163       "1" refers to default USB power level as described by "Table 6-14 Fixed Supply PDO - Sink".
164       "2" refers to 1.5A@5V.
165       "3" refers to 3.0A@5V.
166     $ref: /schemas/types.yaml#/definitions/uint32
167     enum: [1, 2, 3]
168
169 required:
170   - compatible
171
172 allOf:
173   - if:
174       properties:
175         compatible:
176           contains:
177             const: gpio-usb-b-connector
178     then:
179       anyOf:
180         - required:
181             - vbus-gpios
182         - required:
183             - id-gpios
184
185   - if:
186       properties:
187         compatible:
188           contains:
189             const: samsung,usb-connector-11pin
190     then:
191       properties:
192         type:
193           const: micro
194
195 additionalProperties: true
196
197 examples:
198   # Micro-USB connector with HS lines routed via controller (MUIC).
199   - |
200     muic-max77843 {
201       usb_con1: connector {
202         compatible = "usb-b-connector";
203         label = "micro-USB";
204         type = "micro";
205       };
206     };
207
208   # USB-C connector attached to CC controller (s2mm005), HS lines routed
209   # to companion PMIC (max77865), SS lines to USB3 PHY and SBU to DisplayPort.
210   # DisplayPort video lines are routed to the connector via SS mux in USB3 PHY.
211   - |
212     ccic: s2mm005 {
213       usb_con2: connector {
214         compatible = "usb-c-connector";
215         label = "USB-C";
216
217         ports {
218           #address-cells = <1>;
219           #size-cells = <0>;
220
221           port@0 {
222             reg = <0>;
223             usb_con_hs: endpoint {
224               remote-endpoint = <&max77865_usbc_hs>;
225             };
226           };
227           port@1 {
228             reg = <1>;
229             usb_con_ss: endpoint {
230               remote-endpoint = <&usbdrd_phy_ss>;
231             };
232           };
233           port@2 {
234             reg = <2>;
235             usb_con_sbu: endpoint {
236               remote-endpoint = <&dp_aux>;
237             };
238           };
239         };
240       };
241     };
242
243   # USB-C connector attached to a typec port controller(ptn5110), which has
244   # power delivery support and enables drp.
245   - |
246     #include <dt-bindings/usb/pd.h>
247     typec: ptn5110 {
248       usb_con3: connector {
249         compatible = "usb-c-connector";
250         label = "USB-C";
251         power-role = "dual";
252         try-power-role = "sink";
253         source-pdos = <PDO_FIXED(5000, 2000, PDO_FIXED_USB_COMM)>;
254         sink-pdos = <PDO_FIXED(5000, 2000, PDO_FIXED_USB_COMM)
255                      PDO_VAR(5000, 12000, 2000)>;
256         op-sink-microwatt = <10000000>;
257       };
258     };
259
260   # USB-C connector attached to SoC and USB3 typec port controller(hd3ss3220)
261   # with SS 2:1 MUX. HS lines routed to SoC, SS lines routed to the MUX and
262   # the output of MUX is connected to the SoC.
263   - |
264     connector {
265         compatible = "usb-c-connector";
266         label = "USB-C";
267         data-role = "dual";
268
269         ports {
270                 #address-cells = <1>;
271                 #size-cells = <0>;
272                 port@0 {
273                         reg = <0>;
274                         hs_ep: endpoint {
275                                 remote-endpoint = <&usb3_hs_ep>;
276                         };
277                 };
278                 port@1 {
279                         reg = <1>;
280                         ss_ep: endpoint {
281                                 remote-endpoint = <&hd3ss3220_in_ep>;
282                         };
283                 };
284         };
285     };
286
287   # USB connector with GPIO control lines
288   - |
289     #include <dt-bindings/gpio/gpio.h>
290
291     usb {
292       connector {
293         compatible = "gpio-usb-b-connector", "usb-b-connector";
294         type = "micro";
295         id-gpios = <&pio 12 GPIO_ACTIVE_HIGH>;
296         vbus-supply = <&usb_p0_vbus>;
297       };
298     };
299
300   # Micro-USB connector with HS lines routed via controller (MUIC) and MHL
301   # lines connected to HDMI-MHL bridge (sii8620) on Samsung Exynos5433-based
302   # mobile phone
303   - |
304     muic-max77843 {
305       usb_con4: connector {
306         compatible = "samsung,usb-connector-11pin", "usb-b-connector";
307         label = "micro-USB";
308         type = "micro";
309
310         ports {
311           #address-cells = <1>;
312           #size-cells = <0>;
313
314           port@0 {
315             reg = <0>;
316             muic_to_usb: endpoint {
317               remote-endpoint = <&usb_to_muic>;
318             };
319           };
320           port@3 {
321             reg = <3>;
322             usb_con_mhl: endpoint {
323               remote-endpoint = <&sii8620_mhl>;
324             };
325           };
326         };
327       };
328     };