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

TOMOYO Linux Cross Reference
Linux/Documentation/devicetree/bindings/phy/nvidia,tegra124-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,tegra124-xusb-padctl.yaml#
  5 $schema: http://devicetree.org/meta-schemas/core.yaml#
  6 
  7 title: NVIDIA Tegra124 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     oneOf:
 46       - enum:
 47           - nvidia,tegra124-xusb-padctl
 48 
 49       - items:
 50           - const: nvidia,tegra132-xusb-padctl
 51           - const: nvidia,tegra124-xusb-padctl
 52 
 53   reg:
 54     maxItems: 1
 55 
 56   interrupts:
 57     items:
 58       - description: XUSB pad controller interrupt
 59 
 60   resets:
 61     items:
 62       - description: pad controller reset
 63 
 64   reset-names:
 65     items:
 66       - const: padctl
 67 
 68   avdd-pll-utmip-supply:
 69     description: UTMI PLL power supply. Must supply 1.8 V.
 70 
 71   avdd-pll-erefe-supply:
 72     description: PLLE reference PLL power supply. Must supply 1.05 V.
 73 
 74   avdd-pex-pll-supply:
 75     description: PCIe/USB3 PLL power supply. Must supply 1.05 V.
 76 
 77   hvdd-pex-pll-e-supply:
 78     description: High-voltage PLLE power supply. Must supply 3.3 V.
 79 
 80   pads:
 81     description: A required child node named "pads" contains a list of
 82       subnodes, one for each of the pads exposed by the XUSB pad controller.
 83       Each pad may need additional resources that can be referenced in its
 84       pad node.
 85 
 86       The "status" property is used to enable or disable the use of a pad.
 87       If set to "disabled", the pad will not be used on the given board. In
 88       order to use the pad and any of its lanes, this property must be set
 89       to "okay" or be absent.
 90     type: object
 91     additionalProperties: false
 92     properties:
 93       usb2:
 94         type: object
 95         additionalProperties: false
 96         properties:
 97           clocks:
 98             items:
 99               - description: USB2 tracking clock
100 
101           clock-names:
102             items:
103               - const: trk
104 
105           lanes:
106             type: object
107             additionalProperties: false
108             properties:
109               usb2-0:
110                 type: object
111                 additionalProperties: false
112                 properties:
113                   "#phy-cells":
114                     const: 0
115 
116                   nvidia,function:
117                     description: Function selection for this lane.
118                     $ref: /schemas/types.yaml#/definitions/string
119                     enum: [ snps, xusb, uart ]
120 
121               usb2-1:
122                 type: object
123                 additionalProperties: false
124                 properties:
125                   "#phy-cells":
126                     const: 0
127 
128                   nvidia,function:
129                     description: Function selection for this lane.
130                     $ref: /schemas/types.yaml#/definitions/string
131                     enum: [ snps, xusb, uart ]
132 
133               usb2-2:
134                 type: object
135                 additionalProperties: false
136                 properties:
137                   "#phy-cells":
138                     const: 0
139 
140                   nvidia,function:
141                     description: Function selection for this lane.
142                     $ref: /schemas/types.yaml#/definitions/string
143                     enum: [ snps, xusb, uart ]
144 
145       ulpi:
146         type: object
147         additionalProperties: false
148         properties:
149           lanes:
150             type: object
151             additionalProperties: false
152             properties:
153               ulpi-0:
154                 type: object
155                 additionalProperties: false
156                 properties:
157                   "#phy-cells":
158                     const: 0
159 
160                   nvidia,function:
161                     description: Function selection for this lane.
162                     $ref: /schemas/types.yaml#/definitions/string
163                     enum: [ snps, xusb ]
164 
165       hsic:
166         type: object
167         additionalProperties: false
168         properties:
169           clocks:
170             items:
171               - description: HSIC tracking clock
172 
173           clock-names:
174             items:
175               - const: trk
176 
177           lanes:
178             type: object
179             additionalProperties: false
180             properties:
181               hsic-0:
182                 type: object
183                 additionalProperties: false
184                 properties:
185                   "#phy-cells":
186                     const: 0
187 
188                   nvidia,function:
189                     description: Function selection for this lane.
190                     $ref: /schemas/types.yaml#/definitions/string
191                     enum: [ snps, xusb ]
192 
193               hsic-1:
194                 type: object
195                 additionalProperties: false
196                 properties:
197                   "#phy-cells":
198                     const: 0
199 
200                   nvidia,function:
201                     description: Function selection for this lane.
202                     $ref: /schemas/types.yaml#/definitions/string
203                     enum: [ snps, xusb ]
204 
205       pcie:
206         type: object
207         additionalProperties: false
208         properties:
209           clocks:
210             items:
211               - description: PLLE clock
212 
213           clock-names:
214             items:
215               - const: pll
216 
217           resets:
218             items:
219               - description: reset for the PCIe UPHY block
220 
221           reset-names:
222             items:
223               - const: phy
224 
225           lanes:
226             type: object
227             additionalProperties: false
228             properties:
229               pcie-0:
230                 type: object
231                 additionalProperties: false
232                 properties:
233                   "#phy-cells":
234                     const: 0
235 
236                   nvidia,function:
237                     description: Function selection for this lane.
238                     $ref: /schemas/types.yaml#/definitions/string
239                     enum: [ pcie, usb3-ss ]
240 
241               pcie-1:
242                 type: object
243                 additionalProperties: false
244                 properties:
245                   "#phy-cells":
246                     const: 0
247 
248                   nvidia,function:
249                     description: Function selection for this lane.
250                     $ref: /schemas/types.yaml#/definitions/string
251                     enum: [ pcie, usb3-ss ]
252 
253               pcie-2:
254                 type: object
255                 additionalProperties: false
256                 properties:
257                   "#phy-cells":
258                     const: 0
259 
260                   nvidia,function:
261                     description: Function selection for this lane.
262                     $ref: /schemas/types.yaml#/definitions/string
263                     enum: [ pcie, usb3-ss ]
264 
265               pcie-3:
266                 type: object
267                 additionalProperties: false
268                 properties:
269                   "#phy-cells":
270                     const: 0
271 
272                   nvidia,function:
273                     description: Function selection for this lane.
274                     $ref: /schemas/types.yaml#/definitions/string
275                     enum: [ pcie, usb3-ss ]
276 
277               pcie-4:
278                 type: object
279                 additionalProperties: false
280                 properties:
281                   "#phy-cells":
282                     const: 0
283 
284                   nvidia,function:
285                     description: Function selection for this lane.
286                     $ref: /schemas/types.yaml#/definitions/string
287                     enum: [ pcie, usb3-ss ]
288 
289       sata:
290         type: object
291         additionalProperties: false
292         properties:
293           resets:
294             items:
295               - description: reset for the SATA UPHY block
296 
297           reset-names:
298             items:
299               - const: phy
300 
301           lanes:
302             type: object
303             additionalProperties: false
304             properties:
305               sata-0:
306                 type: object
307                 additionalProperties: false
308                 properties:
309                   "#phy-cells":
310                     const: 0
311 
312                   nvidia,function:
313                     description: Function selection for this lane.
314                     $ref: /schemas/types.yaml#/definitions/string
315                     enum: [ sata, usb3-ss ]
316 
317   ports:
318     description: A required child node named "ports" contains a list of
319       subnodes, one for each of the ports exposed by the XUSB pad controller.
320       Each port may need additional resources that can be referenced in its
321       port node.
322 
323       The "status" property is used to enable or disable the use of a port.
324       If set to "disabled", the port will not be used on the given board. In
325       order to use the port, this property must be set to "okay".
326     type: object
327     additionalProperties: false
328     properties:
329       usb2-0:
330         type: object
331         additionalProperties: false
332         properties:
333           # no need to further describe this because the connector will
334           # match on gpio-usb-b-connector or usb-b-connector and cause
335           # that binding to be selected for the subnode
336           connector:
337             type: object
338 
339           mode:
340             description: A string that determines the mode in which to
341               run the port.
342             $ref: /schemas/types.yaml#/definitions/string
343             enum: [ host, peripheral, otg ]
344 
345           nvidia,internal:
346             description: A boolean property whose presence determines
347               that a port is internal. In the absence of this property
348               the port is considered to be external.
349             $ref: /schemas/types.yaml#/definitions/flag
350 
351           usb-role-switch:
352             description: |
353               A boolean property whole presence indicates that the port
354               supports OTG or peripheral mode. If present, the port
355               supports switching between USB host and peripheral roles.
356               A connector must be added as a subnode in that case.
357 
358               See ../connector/usb-connector.yaml.
359 
360           vbus-supply:
361             description: A phandle to the regulator supplying the VBUS
362               voltage.
363 
364       usb2-1:
365         type: object
366         additionalProperties: false
367         properties:
368           # no need to further describe this because the connector will
369           # match on gpio-usb-b-connector or usb-b-connector and cause
370           # that binding to be selected for the subnode
371           connector:
372             type: object
373 
374           mode:
375             description: A string that determines the mode in which to
376               run the port.
377             $ref: /schemas/types.yaml#/definitions/string
378             enum: [ host, peripheral, otg ]
379 
380           nvidia,internal:
381             description: A boolean property whose presence determines
382               that a port is internal. In the absence of this property
383               the port is considered to be external.
384             $ref: /schemas/types.yaml#/definitions/flag
385 
386           usb-role-switch:
387             description: |
388               A boolean property whole presence indicates that the port
389               supports OTG or peripheral mode. If present, the port
390               supports switching between USB host and peripheral roles.
391               A connector must be added as a subnode in that case.
392 
393               See ../connector/usb-connector.yaml.
394 
395           vbus-supply:
396             description: A phandle to the regulator supplying the VBUS
397               voltage.
398 
399       usb2-2:
400         type: object
401         additionalProperties: false
402         properties:
403           # no need to further describe this because the connector will
404           # match on gpio-usb-b-connector or usb-b-connector and cause
405           # that binding to be selected for the subnode
406           connector:
407             type: object
408 
409           mode:
410             description: A string that determines the mode in which to
411               run the port.
412             $ref: /schemas/types.yaml#/definitions/string
413             enum: [ host, peripheral, otg ]
414 
415           nvidia,internal:
416             description: A boolean property whose presence determines
417               that a port is internal. In the absence of this property
418               the port is considered to be external.
419             $ref: /schemas/types.yaml#/definitions/flag
420 
421           usb-role-switch:
422             description: |
423               A boolean property whole presence indicates that the port
424               supports OTG or peripheral mode. If present, the port
425               supports switching between USB host and peripheral roles.
426               A connector must be added as a subnode in that case.
427 
428               See ../connector/usb-connector.yaml.
429 
430           vbus-supply:
431             description: A phandle to the regulator supplying the VBUS
432               voltage.
433 
434       ulpi-0:
435         type: object
436         additionalProperties: false
437         properties:
438           nvidia,internal:
439             description: A boolean property whose presence determines
440               that a port is internal. In the absence of this property
441               the port is considered to be external.
442             $ref: /schemas/types.yaml#/definitions/flag
443 
444           vbus-supply:
445             description: A phandle to the regulator supplying the VBUS
446               voltage.
447 
448       hsic-0:
449         type: object
450         additionalProperties: false
451         properties:
452           vbus-supply:
453             description: A phandle to the regulator supplying the VBUS
454               voltage.
455 
456       hsic-1:
457         type: object
458         additionalProperties: false
459         properties:
460           vbus-supply:
461             description: A phandle to the regulator supplying the VBUS
462               voltage.
463 
464       usb3-0:
465         type: object
466         additionalProperties: false
467         properties:
468           nvidia,internal:
469             description: A boolean property whose presence determines
470               that a port is internal. In the absence of this property
471               the port is considered to be external.
472             $ref: /schemas/types.yaml#/definitions/flag
473 
474           nvidia,usb2-companion:
475             description: A single cell that specifies the physical port
476               number to map this super-speed USB port to. The range of
477               valid port numbers varies with the SoC generation.
478             $ref: /schemas/types.yaml#/definitions/uint32
479             enum: [ 0, 1, 2 ]
480 
481           vbus-supply:
482             description: A phandle to the regulator supplying the VBUS
483               voltage.
484 
485       usb3-1:
486         type: object
487         additionalProperties: false
488         properties:
489           nvidia,internal:
490             description: A boolean property whose presence determines
491               that a port is internal. In the absence of this property
492               the port is considered to be external.
493             $ref: /schemas/types.yaml#/definitions/flag
494 
495           nvidia,usb2-companion:
496             description: A single cell that specifies the physical port
497               number to map this super-speed USB port to. The range of
498               valid port numbers varies with the SoC generation.
499             $ref: /schemas/types.yaml#/definitions/uint32
500             enum: [ 0, 1, 2 ]
501 
502           vbus-supply:
503             description: A phandle to the regulator supplying the VBUS
504               voltage.
505 
506 additionalProperties: false
507 
508 required:
509   - compatible
510   - reg
511   - resets
512   - reset-names
513   - avdd-pll-utmip-supply
514   - avdd-pll-erefe-supply
515   - avdd-pex-pll-supply
516   - hvdd-pex-pll-e-supply
517 
518 examples:
519   # Tegra124 and Tegra132
520   - |
521     #include <dt-bindings/interrupt-controller/arm-gic.h>
522 
523     padctl@7009f000 {
524         compatible = "nvidia,tegra124-xusb-padctl";
525         reg = <0x7009f000 0x1000>;
526         interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>;
527         resets = <&tegra_car 142>;
528         reset-names = "padctl";
529 
530         avdd-pll-utmip-supply = <&vddio_1v8>;
531         avdd-pll-erefe-supply = <&avdd_1v05_run>;
532         avdd-pex-pll-supply = <&vdd_1v05_run>;
533         hvdd-pex-pll-e-supply = <&vdd_3v3_lp0>;
534 
535         pads {
536             usb2 {
537                 lanes {
538                     usb2-0 {
539                         nvidia,function = "xusb";
540                         #phy-cells = <0>;
541                     };
542 
543                     usb2-1 {
544                         nvidia,function = "xusb";
545                         #phy-cells = <0>;
546                     };
547 
548                     usb2-2 {
549                         nvidia,function = "xusb";
550                         #phy-cells = <0>;
551                     };
552                 };
553             };
554 
555             ulpi {
556                 lanes {
557                     ulpi-0 {
558                         status = "disabled";
559                         #phy-cells = <0>;
560                     };
561                 };
562             };
563 
564             hsic {
565                 lanes {
566                     hsic-0 {
567                         status = "disabled";
568                         #phy-cells = <0>;
569                     };
570 
571                     hsic-1 {
572                         status = "disabled";
573                         #phy-cells = <0>;
574                     };
575                 };
576             };
577 
578             pcie {
579                 lanes {
580                     pcie-0 {
581                         nvidia,function = "usb3-ss";
582                         #phy-cells = <0>;
583                     };
584 
585                     pcie-1 {
586                         status = "disabled";
587                         #phy-cells = <0>;
588                     };
589 
590                     pcie-2 {
591                         nvidia,function = "pcie";
592                         #phy-cells = <0>;
593                     };
594 
595                     pcie-3 {
596                         status = "disabled";
597                         #phy-cells = <0>;
598                     };
599 
600                     pcie-4 {
601                         nvidia,function = "pcie";
602                         #phy-cells = <0>;
603                     };
604                 };
605             };
606 
607             sata {
608                 lanes {
609                     sata-0 {
610                         nvidia,function = "sata";
611                         #phy-cells = <0>;
612                     };
613                 };
614             };
615         };
616 
617         ports {
618             /* Micro A/B */
619             usb2-0 {
620                 mode = "otg";
621             };
622 
623             /* Mini PCIe */
624             usb2-1 {
625                 mode = "host";
626             };
627 
628             /* USB3 */
629             usb2-2 {
630                 vbus-supply = <&vdd_usb3_vbus>;
631                 mode = "host";
632             };
633 
634             ulpi-0 {
635                 status = "disabled";
636             };
637 
638             hsic-0 {
639                 status = "disabled";
640             };
641 
642             hsic-1 {
643                 status = "disabled";
644             };
645 
646             usb3-0 {
647                 nvidia,usb2-companion = <2>;
648             };
649 
650             usb3-1 {
651                 status = "disabled";
652             };
653         };
654     };

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