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

TOMOYO Linux Cross Reference
Linux/Documentation/devicetree/bindings/phy/nvidia,tegra194-xusb-padctl.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 OR BSD-2-Clause
  2 %YAML 1.2
  3 ---
  4 $id: http://devicetree.org/schemas/phy/nvidia,tegra194-xusb-padctl.yaml#
  5 $schema: http://devicetree.org/meta-schemas/core.yaml#
  6 
  7 title: NVIDIA Tegra194 XUSB pad controller
  8 
  9 maintainers:
 10   - Thierry Reding <thierry.reding@gmail.com>
 11   - Jon Hunter <jonathanh@nvidia.com>
 12 
 13 description: |
 14   The Tegra XUSB pad controller manages a set of I/O lanes (with differential
 15   signals) which connect directly to pins/pads on the SoC package. Each lane
 16   is controlled by a HW block referred to as a "pad" in the Tegra hardware
 17   documentation. Each such "pad" may control either one or multiple lanes,
 18   and thus contains any logic common to all its lanes. Each lane can be
 19   separately configured and powered up.
 20 
 21   Some of the lanes are high-speed lanes, which can be used for PCIe, SATA or
 22   super-speed USB. Other lanes are for various types of low-speed, full-speed
 23   or high-speed USB (such as UTMI, ULPI and HSIC). The XUSB pad controller
 24   contains a software-configurable mux that sits between the I/O controller
 25   ports (e.g. PCIe) and the lanes.
 26 
 27   In addition to per-lane configuration, USB 3.0 ports may require additional
 28   settings on a per-board basis.
 29 
 30   Pads will be represented as children of the top-level XUSB pad controller
 31   device tree node. Each lane exposed by the pad will be represented by its
 32   own subnode and can be referenced by users of the lane using the standard
 33   PHY bindings, as described by the phy-bindings.txt file in this directory.
 34 
 35   The Tegra hardware documentation refers to the connection between the XUSB
 36   pad controller and the XUSB controller as "ports". This is confusing since
 37   "port" is typically used to denote the physical USB receptacle. The device
 38   tree binding in this document uses the term "port" to refer to the logical
 39   abstraction of the signals that are routed to a USB receptacle (i.e. a PHY
 40   for the USB signal, the VBUS power supply, the USB 2.0 companion port for
 41   USB 3.0 receptacles, ...).
 42 
 43 properties:
 44   compatible:
 45     enum:
 46       - nvidia,tegra194-xusb-padctl
 47       - nvidia,tegra234-xusb-padctl
 48 
 49   reg:
 50     items:
 51       - description: pad controller registers
 52       - description: AO registers
 53 
 54   reg-names:
 55     items:
 56       - const: padctl
 57       - const: ao
 58 
 59   interrupts:
 60     items:
 61       - description: XUSB pad controller interrupt
 62 
 63   resets:
 64     items:
 65       - description: pad controller reset
 66 
 67   reset-names:
 68     items:
 69       - const: padctl
 70 
 71   avdd-usb-supply:
 72     description: USB I/Os, VBUS, ID, REXT, D+/D- power supply. Must
 73       supply 3.3 V.
 74 
 75   vclamp-usb-supply:
 76     description: Bias rail for USB pad. Must supply 1.8 V.
 77 
 78   pads:
 79     description: A required child node named "pads" contains a list of
 80       subnodes, one for each of the pads exposed by the XUSB pad controller.
 81       Each pad may need additional resources that can be referenced in its
 82       pad node.
 83 
 84       The "status" property is used to enable or disable the use of a pad.
 85       If set to "disabled", the pad will not be used on the given board. In
 86       order to use the pad and any of its lanes, this property must be set
 87       to "okay" or absent.
 88     type: object
 89     additionalProperties: false
 90     properties:
 91       usb2:
 92         type: object
 93         additionalProperties: false
 94         properties:
 95           clocks:
 96             items:
 97               - description: USB2 tracking clock
 98 
 99           clock-names:
100             items:
101               - const: trk
102 
103           lanes:
104             type: object
105             additionalProperties: false
106             properties:
107               usb2-0:
108                 type: object
109                 additionalProperties: false
110                 properties:
111                   "#phy-cells":
112                     const: 0
113 
114                   nvidia,function:
115                     description: Function selection for this lane.
116                     $ref: /schemas/types.yaml#/definitions/string
117                     enum: [ xusb ]
118 
119               usb2-1:
120                 type: object
121                 additionalProperties: false
122                 properties:
123                   "#phy-cells":
124                     const: 0
125 
126                   nvidia,function:
127                     description: Function selection for this lane.
128                     $ref: /schemas/types.yaml#/definitions/string
129                     enum: [ xusb ]
130 
131               usb2-2:
132                 type: object
133                 additionalProperties: false
134                 properties:
135                   "#phy-cells":
136                     const: 0
137 
138                   nvidia,function:
139                     description: Function selection for this lane.
140                     $ref: /schemas/types.yaml#/definitions/string
141                     enum: [ xusb ]
142 
143               usb2-3:
144                 type: object
145                 additionalProperties: false
146                 properties:
147                   "#phy-cells":
148                     const: 0
149 
150                   nvidia,function:
151                     description: Function selection for this lane.
152                     $ref: /schemas/types.yaml#/definitions/string
153                     enum: [ xusb ]
154 
155       usb3:
156         type: object
157         additionalProperties: false
158         properties:
159           lanes:
160             type: object
161             additionalProperties: false
162             properties:
163               usb3-0:
164                 type: object
165                 additionalProperties: false
166                 properties:
167                   "#phy-cells":
168                     const: 0
169 
170                   nvidia,function:
171                     description: Function selection for this lane.
172                     $ref: /schemas/types.yaml#/definitions/string
173                     enum: [ xusb ]
174 
175               usb3-1:
176                 type: object
177                 additionalProperties: false
178                 properties:
179                   "#phy-cells":
180                     const: 0
181 
182                   nvidia,function:
183                     description: Function selection for this lane.
184                     $ref: /schemas/types.yaml#/definitions/string
185                     enum: [ xusb ]
186 
187               usb3-2:
188                 type: object
189                 additionalProperties: false
190                 properties:
191                   "#phy-cells":
192                     const: 0
193 
194                   nvidia,function:
195                     description: Function selection for this lane.
196                     $ref: /schemas/types.yaml#/definitions/string
197                     enum: [ xusb ]
198 
199               usb3-3:
200                 type: object
201                 additionalProperties: false
202                 properties:
203                   "#phy-cells":
204                     const: 0
205 
206                   nvidia,function:
207                     description: Function selection for this lane.
208                     $ref: /schemas/types.yaml#/definitions/string
209                     enum: [ xusb ]
210 
211   ports:
212     description: A required child node named "ports" contains a list of
213       subnodes, one for each of the ports exposed by the XUSB pad controller.
214       Each port may need additional resources that can be referenced in its
215       port node.
216 
217       The "status" property is used to enable or disable the use of a port.
218       If set to "disabled", the port will not be used on the given board. In
219       order to use the port, this property must be set to "okay".
220     type: object
221     additionalProperties: false
222     properties:
223       usb2-0:
224         type: object
225         additionalProperties: false
226         properties:
227           # no need to further describe this because the connector will
228           # match on gpio-usb-b-connector or usb-b-connector and cause
229           # that binding to be selected for the subnode
230           connector:
231             type: object
232 
233           mode:
234             description: A string that determines the mode in which to
235               run the port.
236             $ref: /schemas/types.yaml#/definitions/string
237             enum: [ host, peripheral, otg ]
238 
239           nvidia,internal:
240             description: A boolean property whose presence determines
241               that a port is internal. In the absence of this property
242               the port is considered to be external.
243             $ref: /schemas/types.yaml#/definitions/flag
244 
245           usb-role-switch:
246             description: |
247               A boolean property whole presence indicates that the port
248               supports OTG or peripheral mode. If present, the port
249               supports switching between USB host and peripheral roles.
250               A connector must be added as a subnode in that case.
251 
252               See ../connector/usb-connector.yaml.
253 
254           vbus-supply:
255             description: A phandle to the regulator supplying the VBUS
256               voltage.
257 
258         dependencies:
259           usb-role-switch: [ connector ]
260 
261       usb2-1:
262         type: object
263         additionalProperties: false
264         properties:
265           # no need to further describe this because the connector will
266           # match on gpio-usb-b-connector or usb-b-connector and cause
267           # that binding to be selected for the subnode
268           connector:
269             type: object
270 
271           mode:
272             description: A string that determines the mode in which to
273               run the port.
274             $ref: /schemas/types.yaml#/definitions/string
275             enum: [ host, peripheral, otg ]
276 
277           nvidia,internal:
278             description: A boolean property whose presence determines
279               that a port is internal. In the absence of this property
280               the port is considered to be external.
281             $ref: /schemas/types.yaml#/definitions/flag
282 
283           usb-role-switch:
284             description: |
285               A boolean property whole presence indicates that the port
286               supports OTG or peripheral mode. If present, the port
287               supports switching between USB host and peripheral roles.
288               A connector must be added as a subnode in that case.
289 
290               See ../connector/usb-connector.yaml.
291 
292           vbus-supply:
293             description: A phandle to the regulator supplying the VBUS
294               voltage.
295 
296         dependencies:
297           usb-role-switch: [ connector ]
298 
299       usb2-2:
300         type: object
301         additionalProperties: false
302         properties:
303           # no need to further describe this because the connector will
304           # match on gpio-usb-b-connector or usb-b-connector and cause
305           # that binding to be selected for the subnode
306           connector:
307             type: object
308 
309           mode:
310             description: A string that determines the mode in which to
311               run the port.
312             $ref: /schemas/types.yaml#/definitions/string
313             enum: [ host, peripheral, otg ]
314 
315           nvidia,internal:
316             description: A boolean property whose presence determines
317               that a port is internal. In the absence of this property
318               the port is considered to be external.
319             $ref: /schemas/types.yaml#/definitions/flag
320 
321           usb-role-switch:
322             description: |
323               A boolean property whole presence indicates that the port
324               supports OTG or peripheral mode. If present, the port
325               supports switching between USB host and peripheral roles.
326               A connector must be added as a subnode in that case.
327 
328               See ../connector/usb-connector.yaml.
329 
330           vbus-supply:
331             description: A phandle to the regulator supplying the VBUS
332               voltage.
333 
334         dependencies:
335           usb-role-switch: [ connector ]
336 
337       usb2-3:
338         type: object
339         additionalProperties: false
340         properties:
341           # no need to further describe this because the connector will
342           # match on gpio-usb-b-connector or usb-b-connector and cause
343           # that binding to be selected for the subnode
344           connector:
345             type: object
346 
347           mode:
348             description: A string that determines the mode in which to
349               run the port.
350             $ref: /schemas/types.yaml#/definitions/string
351             enum: [ host, peripheral, otg ]
352 
353           nvidia,internal:
354             description: A boolean property whose presence determines
355               that a port is internal. In the absence of this property
356               the port is considered to be external.
357             $ref: /schemas/types.yaml#/definitions/flag
358 
359           usb-role-switch:
360             description: |
361               A boolean property whole presence indicates that the port
362               supports OTG or peripheral mode. If present, the port
363               supports switching between USB host and peripheral roles.
364               A connector must be added as a subnode in that case.
365 
366               See ../connector/usb-connector.yaml.
367 
368           vbus-supply:
369             description: A phandle to the regulator supplying the VBUS
370               voltage.
371 
372         dependencies:
373           usb-role-switch: [ connector ]
374 
375       usb3-0:
376         type: object
377         additionalProperties: false
378         properties:
379           maximum-speed:
380             description: A string property that specifies the maximum
381               supported speed of a USB3 port.
382             $ref: /schemas/types.yaml#/definitions/string
383             oneOf:
384               - description: The USB3 port supports USB 3.1 Gen 2 speed.
385                   This is the default.
386                 const: super-speed-plus
387               - description: The USB3 port supports USB 3.1 Gen 1 speed
388                   only.
389                 const: super-speed
390 
391           nvidia,internal:
392             description: A boolean property whose presence determines
393               that a port is internal. In the absence of this property
394               the port is considered to be external.
395             $ref: /schemas/types.yaml#/definitions/flag
396 
397           nvidia,usb2-companion:
398             description: A single cell that specifies the physical port
399               number to map this super-speed USB port to. The range of
400               valid port numbers varies with the SoC generation.
401             $ref: /schemas/types.yaml#/definitions/uint32
402             enum: [ 0, 1, 2, 3 ]
403 
404           vbus-supply:
405             description: A phandle to the regulator supplying the VBUS
406               voltage.
407 
408       usb3-1:
409         type: object
410         additionalProperties: false
411         properties:
412           maximum-speed:
413             description: A string property that specifies the maximum
414               supported speed of a USB3 port.
415             $ref: /schemas/types.yaml#/definitions/string
416             oneOf:
417               - description: The USB3 port supports USB 3.1 Gen 2 speed.
418                   This is the default.
419                 const: super-speed-plus
420               - description: The USB3 port supports USB 3.1 Gen 1 speed
421                   only.
422                 const: super-speed
423 
424           nvidia,internal:
425             description: A boolean property whose presence determines
426               that a port is internal. In the absence of this property
427               the port is considered to be external.
428             $ref: /schemas/types.yaml#/definitions/flag
429 
430           nvidia,usb2-companion:
431             description: A single cell that specifies the physical port
432               number to map this super-speed USB port to. The range of
433               valid port numbers varies with the SoC generation.
434             $ref: /schemas/types.yaml#/definitions/uint32
435             enum: [ 0, 1, 2, 3 ]
436 
437           vbus-supply:
438             description: A phandle to the regulator supplying the VBUS
439               voltage.
440 
441       usb3-2:
442         type: object
443         additionalProperties: false
444         properties:
445           maximum-speed:
446             description: A string property that specifies the maximum
447               supported speed of a USB3 port.
448             $ref: /schemas/types.yaml#/definitions/string
449             oneOf:
450               - description: The USB3 port supports USB 3.1 Gen 2 speed.
451                   This is the default.
452                 const: super-speed-plus
453               - description: The USB3 port supports USB 3.1 Gen 1 speed
454                   only.
455                 const: super-speed
456 
457           nvidia,internal:
458             description: A boolean property whose presence determines
459               that a port is internal. In the absence of this property
460               the port is considered to be external.
461             $ref: /schemas/types.yaml#/definitions/flag
462 
463           nvidia,usb2-companion:
464             description: A single cell that specifies the physical port
465               number to map this super-speed USB port to. The range of
466               valid port numbers varies with the SoC generation.
467             $ref: /schemas/types.yaml#/definitions/uint32
468             enum: [ 0, 1, 2, 3 ]
469 
470           vbus-supply:
471             description: A phandle to the regulator supplying the VBUS
472               voltage.
473 
474       usb3-3:
475         type: object
476         additionalProperties: false
477         properties:
478           maximum-speed:
479             description: A string property that specifies the maximum
480               supported speed of a USB3 port.
481             $ref: /schemas/types.yaml#/definitions/string
482             oneOf:
483               - description: The USB3 port supports USB 3.1 Gen 2 speed.
484                   This is the default.
485                 const: super-speed-plus
486               - description: The USB3 port supports USB 3.1 Gen 1 speed
487                   only.
488                 const: super-speed
489 
490           nvidia,internal:
491             description: A boolean property whose presence determines
492               that a port is internal. In the absence of this property
493               the port is considered to be external.
494             $ref: /schemas/types.yaml#/definitions/flag
495 
496           nvidia,usb2-companion:
497             description: A single cell that specifies the physical port
498               number to map this super-speed USB port to. The range of
499               valid port numbers varies with the SoC generation.
500             $ref: /schemas/types.yaml#/definitions/uint32
501             enum: [ 0, 1, 2, 3 ]
502 
503           vbus-supply:
504             description: A phandle to the regulator supplying the VBUS
505               voltage.
506 
507 additionalProperties: false
508 
509 required:
510   - compatible
511   - reg
512   - resets
513   - reset-names
514   - avdd-usb-supply
515   - vclamp-usb-supply
516 
517 examples:
518   - |
519     #include <dt-bindings/clock/tegra194-clock.h>
520     #include <dt-bindings/gpio/tegra194-gpio.h>
521     #include <dt-bindings/interrupt-controller/arm-gic.h>
522     #include <dt-bindings/reset/tegra194-reset.h>
523 
524     padctl@3520000 {
525         compatible = "nvidia,tegra194-xusb-padctl";
526         reg = <0x03520000 0x1000>,
527               <0x03540000 0x1000>;
528         reg-names = "padctl", "ao";
529         interrupts = <GIC_SPI 167 IRQ_TYPE_LEVEL_HIGH>;
530 
531         resets = <&bpmp TEGRA194_RESET_XUSB_PADCTL>;
532         reset-names = "padctl";
533 
534         avdd-usb-supply = <&vdd_usb_3v3>;
535         vclamp-usb-supply = <&vdd_1v8ao>;
536 
537         pads {
538             usb2 {
539                 clocks = <&bpmp TEGRA194_CLK_USB2_TRK>;
540                 clock-names = "trk";
541 
542                 lanes {
543                     usb2-0 {
544                         nvidia,function = "xusb";
545                         status = "disabled";
546                         #phy-cells = <0>;
547                     };
548 
549                     usb2-1 {
550                         nvidia,function = "xusb";
551                         #phy-cells = <0>;
552                     };
553 
554                     usb2-2 {
555                         nvidia,function = "xusb";
556                         status = "disabled";
557                         #phy-cells = <0>;
558                     };
559 
560                     usb2-3 {
561                         nvidia,function = "xusb";
562                         #phy-cells = <0>;
563                     };
564                 };
565             };
566 
567             usb3 {
568                 lanes {
569                     usb3-0 {
570                         nvidia,function = "xusb";
571                         #phy-cells = <0>;
572                     };
573 
574                     usb3-1 {
575                         nvidia,function = "xusb";
576                         status = "disabled";
577                         #phy-cells = <0>;
578                     };
579 
580                     usb3-2 {
581                         nvidia,function = "xusb";
582                         status = "disabled";
583                         #phy-cells = <0>;
584                     };
585 
586                     usb3-3 {
587                         nvidia,function = "xusb";
588                         #phy-cells = <0>;
589                     };
590                 };
591             };
592         };
593 
594         ports {
595             usb2-0 {
596                 status = "disabled";
597             };
598 
599             usb2-1 {
600                 vbus-supply = <&vdd_5v0_sys>;
601                 mode = "host";
602             };
603 
604             usb2-2 {
605                 status = "disabled";
606             };
607 
608             usb2-3 {
609                 vbus-supply = <&vdd_5v_sata>;
610                 mode = "host";
611             };
612 
613             usb3-0 {
614                 vbus-supply = <&vdd_5v0_sys>;
615                 nvidia,usb2-companion = <1>;
616             };
617 
618             usb3-1 {
619                 status = "disabled";
620             };
621 
622             usb3-2 {
623                 status = "disabled";
624             };
625 
626             usb3-3 {
627                 maximum-speed = "super-speed";
628                 vbus-supply = <&vdd_5v0_sys>;
629                 nvidia,usb2-companion = <3>;
630             };
631         };
632     };

~ [ 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