~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/Documentation/devicetree/bindings/connector/usb-connector.yaml

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  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     };

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php