Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/freebsd-src
Path: blob/main/sys/contrib/device-tree/Bindings/connector/usb-connector.yaml
48378 views
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
reg:
34
maxItems: 1
35
36
label:
37
description: Symbolic name for the connector.
38
39
type:
40
description: Size of the connector, should be specified in case of
41
non-fullsize 'usb-a-connector' or 'usb-b-connector' compatible
42
connectors.
43
$ref: /schemas/types.yaml#/definitions/string
44
45
enum:
46
- mini
47
- micro
48
49
self-powered:
50
description: Set this property if the USB device has its own power source.
51
type: boolean
52
53
# The following are optional properties for "usb-b-connector".
54
id-gpios:
55
description: An input gpio for USB ID pin.
56
maxItems: 1
57
58
vbus-gpios:
59
description: An input gpio for USB VBus pin, used to detect presence of
60
VBUS 5V.
61
maxItems: 1
62
63
vbus-supply:
64
description: A phandle to the regulator for USB VBUS if needed when host
65
mode or dual role mode is supported.
66
Particularly, if use an output GPIO to control a VBUS regulator, should
67
model it as a regulator. See bindings/regulator/fixed-regulator.yaml
68
69
power-role:
70
description: Determines the power role that the Type C connector will
71
support. "dual" refers to Dual Role Port (DRP).
72
$ref: /schemas/types.yaml#/definitions/string
73
74
enum:
75
- source
76
- sink
77
- dual
78
79
try-power-role:
80
description: Preferred power role.
81
$ref: /schemas/types.yaml#/definitions/string
82
83
enum:
84
- source
85
- sink
86
- dual
87
88
data-role:
89
description: Data role if Type C connector supports USB data. "dual" refers
90
Dual Role Device (DRD).
91
$ref: /schemas/types.yaml#/definitions/string
92
93
enum:
94
- host
95
- device
96
- dual
97
98
typec-power-opmode:
99
description: Determines the power operation mode that the Type C connector
100
will support and will advertise through CC pins when it has no power
101
delivery support.
102
- "default" corresponds to default USB voltage and current defined by the
103
USB 2.0 and USB 3.2 specifications, 5V 500mA for USB 2.0 ports and
104
5V 900mA or 1500mA for USB 3.2 ports in single-lane or dual-lane
105
operation respectively.
106
- "1.5A" and "3.0A", 5V 1.5A and 5V 3.0A respectively, as defined in USB
107
Type-C Cable and Connector specification, when Power Delivery is not
108
supported.
109
$ref: /schemas/types.yaml#/definitions/string
110
enum:
111
- default
112
- 1.5A
113
- 3.0A
114
115
pd-disable:
116
description: Set this property if the Type-C connector has no power delivery support.
117
type: boolean
118
119
# The following are optional properties for "usb-c-connector" with power
120
# delivery support.
121
sink-vdos:
122
description: An array of u32 with each entry, a Vendor Defined Message Object (VDO),
123
providing additional information corresponding to the product, the detailed bit
124
definitions and the order of each VDO can be found in
125
"USB Power Delivery Specification Revision 3.0, Version 2.0 + ECNs 2020-12-10"
126
chapter 6.4.4.3.1 Discover Identity. User can specify the VDO array via
127
VDO_IDH/_CERT/_PRODUCT/_UFP/_DFP/_PCABLE/_ACABLE(1/2)/_VPD() defined in
128
dt-bindings/usb/pd.h.
129
minItems: 3
130
maxItems: 6
131
$ref: /schemas/types.yaml#/definitions/uint32-array
132
133
sink-vdos-v1:
134
description: An array of u32 with each entry, a Vendor Defined Message Object (VDO),
135
providing additional information corresponding to the product, the detailed bit
136
definitions and the order of each VDO can be found in
137
"USB Power Delivery Specification Revision 2.0, Version 1.3" chapter 6.4.4.3.1 Discover
138
Identity. User can specify the VDO array via VDO_IDH/_CERT/_PRODUCT/_CABLE/_AMA defined in
139
dt-bindings/usb/pd.h.
140
minItems: 3
141
maxItems: 6
142
$ref: /schemas/types.yaml#/definitions/uint32-array
143
144
accessory-mode-audio:
145
type: boolean
146
description: Whether the device supports Audio Adapter Accessory Mode. This
147
is only necessary if there are no other means to discover supported
148
alternative modes (e.g. through the UCSI firmware interface).
149
150
accessory-mode-debug:
151
type: boolean
152
description: Whether the device supports Debug Accessory Mode. This
153
is only necessary if there are no other means to discover supported
154
alternative modes (e.g. through the UCSI firmware interface).
155
156
altmodes:
157
type: object
158
description: List of Alternative Modes supported by the schematics on the
159
particular device. This is only necessary if there are no other means to
160
discover supported alternative modes (e.g. through the UCSI firmware
161
interface).
162
163
additionalProperties: false
164
165
patternProperties:
166
"^(displayport)$":
167
type: object
168
description:
169
A single USB-C Alternative Mode as supported by the USB-C connector logic.
170
171
additionalProperties: false
172
173
properties:
174
svid:
175
$ref: /schemas/types.yaml#/definitions/uint16
176
description: Unique value assigned by USB-IF to the Vendor / AltMode.
177
enum: [ 0xff01 ]
178
vdo:
179
$ref: /schemas/types.yaml#/definitions/uint32
180
description: VDO returned by Discover Modes USB PD command.
181
182
port:
183
$ref: /schemas/graph.yaml#/properties/port
184
description: OF graph bindings modeling a data bus to the connector, e.g.
185
there is a single High Speed (HS) port present in this connector. If there
186
is more than one bus (several port, with 'reg' property), they can be grouped
187
under 'ports'.
188
189
ports:
190
$ref: /schemas/graph.yaml#/properties/ports
191
description: OF graph bindings modeling any data bus to the connector
192
unless the bus is between parent node and the connector. Since a single
193
connector can have multiple data buses every bus has an assigned OF graph
194
port number as described below.
195
196
properties:
197
port@0:
198
$ref: /schemas/graph.yaml#/properties/port
199
description: High Speed (HS), present in all connectors.
200
201
port@1:
202
$ref: /schemas/graph.yaml#/properties/port
203
description: Super Speed (SS), present in SS capable connectors.
204
205
port@2:
206
$ref: /schemas/graph.yaml#/properties/port
207
description: Sideband Use (SBU), present in USB-C. This describes the
208
alternate mode connection of which SBU is a part.
209
210
required:
211
- port@0
212
213
new-source-frs-typec-current:
214
description: Initial current capability of the new source when vSafe5V
215
is applied during PD3.0 Fast Role Swap. "Table 6-14 Fixed Supply PDO - Sink"
216
of "USB Power Delivery Specification Revision 3.0, Version 1.2" provides the
217
different power levels and "6.4.1.3.1.6 Fast Role Swap USB Type-C Current"
218
provides a detailed description of the field. The sink PDO from current source
219
reflects the current source's(i.e. transmitter of the FRS signal) power
220
requirement during fr swap. The current sink (i.e. receiver of the FRS signal),
221
a.k.a new source, should check if it will be able to satisfy the current source's,
222
new sink's, requirement during frswap before enabling the frs signal reception.
223
This property refers to maximum current capability that the current sink can
224
satisfy. During FRS, VBUS voltage is at 5V, as the partners are in implicit
225
contract, hence, the power level is only a function of the current capability.
226
"1" refers to default USB power level as described by "Table 6-14 Fixed Supply PDO - Sink".
227
"2" refers to 1.5A@5V.
228
"3" refers to 3.0A@5V.
229
$ref: /schemas/types.yaml#/definitions/uint32
230
enum: [1, 2, 3]
231
232
slow-charger-loop:
233
description: Allows PMIC charger loops which are slow(i.e. cannot meet the 15ms deadline) to
234
still comply to pSnkStby i.e Maximum power that can be consumed by sink while in Sink Standby
235
state as defined in 7.4.2 Sink Electrical Parameters of USB Power Delivery Specification
236
Revision 3.0, Version 1.2. When the property is set, the port requests pSnkStby(2.5W -
237
5V@500mA) upon entering SNK_DISCOVERY(instead of 3A or the 1.5A, Rp current advertised, during
238
SNK_DISCOVERY) and the actual current limit after reception of PS_Ready for PD link or during
239
SNK_READY for non-pd link.
240
type: boolean
241
242
capabilities:
243
description: A child node to contain all the selectable USB Power Delivery capabilities.
244
type: object
245
246
patternProperties:
247
"^caps-[0-9]+$":
248
description: Child nodes under "capabilities" node. Each node contains a selectable USB
249
Power Delivery capability.
250
type: object
251
$ref: "#/$defs/capabilities"
252
unevaluatedProperties: false
253
254
additionalProperties: false
255
256
dependencies:
257
sink-vdos-v1: [ sink-vdos ]
258
sink-vdos: [ sink-vdos-v1 ]
259
260
required:
261
- compatible
262
263
$defs:
264
capabilities:
265
type: object
266
267
properties:
268
source-pdos:
269
description: An array of u32 with each entry providing supported power
270
source data object(PDO), the detailed bit definitions of PDO can be found
271
in "Universal Serial Bus Power Delivery Specification" chapter 6.4.1.2
272
Source_Capabilities Message, the order of each entry(PDO) should follow
273
the PD spec chapter 6.4.1. Required for power source and power dual role.
274
User can specify the source PDO array via PDO_FIXED/BATT/VAR/PPS_APDO()
275
defined in dt-bindings/usb/pd.h.
276
minItems: 1
277
maxItems: 7
278
$ref: /schemas/types.yaml#/definitions/uint32-array
279
280
sink-pdos:
281
description: An array of u32 with each entry providing supported power sink
282
data object(PDO), the detailed bit definitions of PDO can be found in
283
"Universal Serial Bus Power Delivery Specification" chapter 6.4.1.3
284
Sink Capabilities Message, the order of each entry(PDO) should follow the
285
PD spec chapter 6.4.1. Required for power sink and power dual role. User
286
can specify the sink PDO array via PDO_FIXED/BATT/VAR/PPS_APDO() defined
287
in dt-bindings/usb/pd.h.
288
minItems: 1
289
maxItems: 7
290
$ref: /schemas/types.yaml#/definitions/uint32-array
291
292
op-sink-microwatt:
293
description: Sink required operating power in microwatt, if source can't
294
offer the power, Capability Mismatch is set. Required for power sink and
295
power dual role.
296
297
allOf:
298
- $ref: "#/$defs/capabilities"
299
- if:
300
properties:
301
compatible:
302
contains:
303
const: gpio-usb-b-connector
304
then:
305
anyOf:
306
- required:
307
- vbus-gpios
308
- required:
309
- id-gpios
310
311
- if:
312
properties:
313
compatible:
314
contains:
315
const: samsung,usb-connector-11pin
316
then:
317
properties:
318
type:
319
const: micro
320
321
anyOf:
322
- not:
323
required:
324
- typec-power-opmode
325
- new-source-frs-typec-current
326
327
unevaluatedProperties: false
328
329
examples:
330
# Micro-USB connector with HS lines routed via controller (MUIC).
331
- |
332
muic-max77843 {
333
usb_con1: connector {
334
compatible = "usb-b-connector";
335
label = "micro-USB";
336
type = "micro";
337
};
338
};
339
340
# USB-C connector attached to CC controller (s2mm005), HS lines routed
341
# to companion PMIC (max77865), SS lines to USB3 PHY and SBU to DisplayPort.
342
# DisplayPort video lines are routed to the connector via SS mux in USB3 PHY.
343
- |
344
ccic: s2mm005 {
345
usb_con2: connector {
346
compatible = "usb-c-connector";
347
label = "USB-C";
348
349
altmodes {
350
displayport {
351
svid = /bits/ 16 <0xff01>;
352
vdo = <0x00001c46>;
353
};
354
};
355
356
ports {
357
#address-cells = <1>;
358
#size-cells = <0>;
359
360
port@0 {
361
reg = <0>;
362
usb_con_hs: endpoint {
363
remote-endpoint = <&max77865_usbc_hs>;
364
};
365
};
366
port@1 {
367
reg = <1>;
368
usb_con_ss: endpoint {
369
remote-endpoint = <&usbdrd_phy_ss>;
370
};
371
};
372
port@2 {
373
reg = <2>;
374
usb_con_sbu: endpoint {
375
remote-endpoint = <&dp_aux>;
376
};
377
};
378
};
379
};
380
};
381
382
# USB-C connector attached to a typec port controller(ptn5110), which has
383
# power delivery support and enables drp.
384
- |
385
#include <dt-bindings/usb/pd.h>
386
typec: ptn5110 {
387
usb_con3: connector {
388
compatible = "usb-c-connector";
389
label = "USB-C";
390
power-role = "dual";
391
try-power-role = "sink";
392
source-pdos = <PDO_FIXED(5000, 2000, PDO_FIXED_USB_COMM)>;
393
sink-pdos = <PDO_FIXED(5000, 2000, PDO_FIXED_USB_COMM)
394
PDO_VAR(5000, 12000, 2000)>;
395
op-sink-microwatt = <10000000>;
396
};
397
};
398
399
# USB-C connector attached to SoC with a single High-Speed controller
400
- |
401
connector {
402
compatible = "usb-c-connector";
403
label = "USB-C";
404
405
port {
406
high_speed_ep: endpoint {
407
remote-endpoint = <&usb_hs_ep>;
408
};
409
};
410
};
411
412
# USB-C connector attached to SoC and USB3 typec port controller(hd3ss3220)
413
# with SS 2:1 MUX. HS lines routed to SoC, SS lines routed to the MUX and
414
# the output of MUX is connected to the SoC.
415
- |
416
connector {
417
compatible = "usb-c-connector";
418
label = "USB-C";
419
data-role = "dual";
420
421
ports {
422
#address-cells = <1>;
423
#size-cells = <0>;
424
port@0 {
425
reg = <0>;
426
hs_ep: endpoint {
427
remote-endpoint = <&usb3_hs_ep>;
428
};
429
};
430
port@1 {
431
reg = <1>;
432
ss_ep: endpoint {
433
remote-endpoint = <&hd3ss3220_in_ep>;
434
};
435
};
436
};
437
};
438
439
# USB connector with GPIO control lines
440
- |
441
#include <dt-bindings/gpio/gpio.h>
442
443
usb {
444
connector {
445
compatible = "gpio-usb-b-connector", "usb-b-connector";
446
type = "micro";
447
id-gpios = <&pio 12 GPIO_ACTIVE_HIGH>;
448
vbus-supply = <&usb_p0_vbus>;
449
};
450
};
451
452
# Micro-USB connector with HS lines routed via controller (MUIC) and MHL
453
# lines connected to HDMI-MHL bridge (sii8620) on Samsung Exynos5433-based
454
# mobile phone
455
- |
456
muic-max77843 {
457
usb_con4: connector {
458
compatible = "samsung,usb-connector-11pin", "usb-b-connector";
459
label = "micro-USB";
460
type = "micro";
461
462
ports {
463
#address-cells = <1>;
464
#size-cells = <0>;
465
466
port@0 {
467
reg = <0>;
468
muic_to_usb: endpoint {
469
remote-endpoint = <&usb_to_muic>;
470
};
471
};
472
port@3 {
473
reg = <3>;
474
usb_con_mhl: endpoint {
475
remote-endpoint = <&sii8620_mhl>;
476
};
477
};
478
};
479
};
480
};
481
482