1 # SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
4 $id: http://devicetree.org/schemas/phy/nvidia,tegra124-xusb-padctl.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
7 title: NVIDIA Tegra124 XUSB pad controller
10 - Thierry Reding <thierry.reding@gmail.com>
11 - Jon Hunter <jonathanh@nvidia.com>
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.
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.
27 In addition to per-lane configuration, USB 3.0 ports may require additional
28 settings on a per-board basis.
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.
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, ...).
47 - nvidia,tegra124-xusb-padctl
50 - const: nvidia,tegra132-xusb-padctl
51 - const: nvidia,tegra124-xusb-padctl
58 - description: XUSB pad controller interrupt
62 - description: pad controller reset
68 avdd-pll-utmip-supply:
69 description: UTMI PLL power supply. Must supply 1.8 V.
71 avdd-pll-erefe-supply:
72 description: PLLE reference PLL power supply. Must supply 1.05 V.
75 description: PCIe/USB3 PLL power supply. Must supply 1.05 V.
77 hvdd-pex-pll-e-supply:
78 description: High-voltage PLLE power supply. Must supply 3.3 V.
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
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.
91 additionalProperties: false
95 additionalProperties: false
99 - description: USB2 tracking clock
107 additionalProperties: false
111 additionalProperties: false
117 description: Function selection for this lane.
118 $ref: /schemas/types.yaml#/definitions/string
119 enum: [ snps, xusb, uart ]
123 additionalProperties: false
129 description: Function selection for this lane.
130 $ref: /schemas/types.yaml#/definitions/string
131 enum: [ snps, xusb, uart ]
135 additionalProperties: false
141 description: Function selection for this lane.
142 $ref: /schemas/types.yaml#/definitions/string
143 enum: [ snps, xusb, uart ]
147 additionalProperties: false
151 additionalProperties: false
155 additionalProperties: false
161 description: Function selection for this lane.
162 $ref: /schemas/types.yaml#/definitions/string
167 additionalProperties: false
171 - description: HSIC tracking clock
179 additionalProperties: false
183 additionalProperties: false
189 description: Function selection for this lane.
190 $ref: /schemas/types.yaml#/definitions/string
195 additionalProperties: false
201 description: Function selection for this lane.
202 $ref: /schemas/types.yaml#/definitions/string
207 additionalProperties: false
211 - description: PLLE clock
219 - description: reset for the PCIe UPHY block
227 additionalProperties: false
231 additionalProperties: false
237 description: Function selection for this lane.
238 $ref: /schemas/types.yaml#/definitions/string
239 enum: [ pcie, usb3-ss ]
243 additionalProperties: false
249 description: Function selection for this lane.
250 $ref: /schemas/types.yaml#/definitions/string
251 enum: [ pcie, usb3-ss ]
255 additionalProperties: false
261 description: Function selection for this lane.
262 $ref: /schemas/types.yaml#/definitions/string
263 enum: [ pcie, usb3-ss ]
267 additionalProperties: false
273 description: Function selection for this lane.
274 $ref: /schemas/types.yaml#/definitions/string
275 enum: [ pcie, usb3-ss ]
279 additionalProperties: false
285 description: Function selection for this lane.
286 $ref: /schemas/types.yaml#/definitions/string
287 enum: [ pcie, usb3-ss ]
291 additionalProperties: false
295 - description: reset for the SATA UPHY block
303 additionalProperties: false
307 additionalProperties: false
313 description: Function selection for this lane.
314 $ref: /schemas/types.yaml#/definitions/string
315 enum: [ sata, usb3-ss ]
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
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".
327 additionalProperties: false
331 additionalProperties: false
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
340 description: A string that determines the mode in which to
342 $ref: /schemas/types.yaml#/definitions/string
343 enum: [ host, peripheral, otg ]
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
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.
358 See ../connector/usb-connector.yaml.
361 description: A phandle to the regulator supplying the VBUS
366 additionalProperties: false
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
375 description: A string that determines the mode in which to
377 $ref: /schemas/types.yaml#/definitions/string
378 enum: [ host, peripheral, otg ]
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
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.
393 See ../connector/usb-connector.yaml.
396 description: A phandle to the regulator supplying the VBUS
401 additionalProperties: false
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
410 description: A string that determines the mode in which to
412 $ref: /schemas/types.yaml#/definitions/string
413 enum: [ host, peripheral, otg ]
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
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.
428 See ../connector/usb-connector.yaml.
431 description: A phandle to the regulator supplying the VBUS
436 additionalProperties: false
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
445 description: A phandle to the regulator supplying the VBUS
450 additionalProperties: false
453 description: A phandle to the regulator supplying the VBUS
458 additionalProperties: false
461 description: A phandle to the regulator supplying the VBUS
466 additionalProperties: false
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
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
482 description: A phandle to the regulator supplying the VBUS
487 additionalProperties: false
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
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
503 description: A phandle to the regulator supplying the VBUS
506 additionalProperties: false
513 - avdd-pll-utmip-supply
514 - avdd-pll-erefe-supply
515 - avdd-pex-pll-supply
516 - hvdd-pex-pll-e-supply
519 # Tegra124 and Tegra132
521 #include <dt-bindings/interrupt-controller/arm-gic.h>
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";
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>;
539 nvidia,function = "xusb";
544 nvidia,function = "xusb";
549 nvidia,function = "xusb";
581 nvidia,function = "usb3-ss";
591 nvidia,function = "pcie";
601 nvidia,function = "pcie";
610 nvidia,function = "sata";
630 vbus-supply = <&vdd_usb3_vbus>;
647 nvidia,usb2-companion = <2>;