xref: /freebsd/sys/contrib/device-tree/Bindings/phy/nvidia,tegra210-xusb-padctl.yaml (revision aa1a8ff2d6dbc51ef058f46f3db5a8bb77967145)
1*aa1a8ff2SEmmanuel Vadot# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
2cb7aa33aSEmmanuel Vadot%YAML 1.2
3cb7aa33aSEmmanuel Vadot---
4cb7aa33aSEmmanuel Vadot$id: http://devicetree.org/schemas/phy/nvidia,tegra210-xusb-padctl.yaml#
5cb7aa33aSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6cb7aa33aSEmmanuel Vadot
7cb7aa33aSEmmanuel Vadottitle: NVIDIA Tegra210 XUSB pad controller
8cb7aa33aSEmmanuel Vadot
9cb7aa33aSEmmanuel Vadotmaintainers:
10cb7aa33aSEmmanuel Vadot  - Thierry Reding <thierry.reding@gmail.com>
11cb7aa33aSEmmanuel Vadot  - Jon Hunter <jonathanh@nvidia.com>
12cb7aa33aSEmmanuel Vadot
13cb7aa33aSEmmanuel Vadotdescription: |
14cb7aa33aSEmmanuel Vadot  The Tegra XUSB pad controller manages a set of I/O lanes (with differential
15cb7aa33aSEmmanuel Vadot  signals) which connect directly to pins/pads on the SoC package. Each lane
16cb7aa33aSEmmanuel Vadot  is controlled by a HW block referred to as a "pad" in the Tegra hardware
17cb7aa33aSEmmanuel Vadot  documentation. Each such "pad" may control either one or multiple lanes,
18cb7aa33aSEmmanuel Vadot  and thus contains any logic common to all its lanes. Each lane can be
19cb7aa33aSEmmanuel Vadot  separately configured and powered up.
20cb7aa33aSEmmanuel Vadot
21cb7aa33aSEmmanuel Vadot  Some of the lanes are high-speed lanes, which can be used for PCIe, SATA or
22cb7aa33aSEmmanuel Vadot  super-speed USB. Other lanes are for various types of low-speed, full-speed
23cb7aa33aSEmmanuel Vadot  or high-speed USB (such as UTMI, ULPI and HSIC). The XUSB pad controller
24cb7aa33aSEmmanuel Vadot  contains a software-configurable mux that sits between the I/O controller
25cb7aa33aSEmmanuel Vadot  ports (e.g. PCIe) and the lanes.
26cb7aa33aSEmmanuel Vadot
27cb7aa33aSEmmanuel Vadot  In addition to per-lane configuration, USB 3.0 ports may require additional
28cb7aa33aSEmmanuel Vadot  settings on a per-board basis.
29cb7aa33aSEmmanuel Vadot
30cb7aa33aSEmmanuel Vadot  Pads will be represented as children of the top-level XUSB pad controller
31cb7aa33aSEmmanuel Vadot  device tree node. Each lane exposed by the pad will be represented by its
32cb7aa33aSEmmanuel Vadot  own subnode and can be referenced by users of the lane using the standard
33cb7aa33aSEmmanuel Vadot  PHY bindings, as described by the phy-bindings.txt file in this directory.
34cb7aa33aSEmmanuel Vadot
35cb7aa33aSEmmanuel Vadot  The Tegra hardware documentation refers to the connection between the XUSB
36cb7aa33aSEmmanuel Vadot  pad controller and the XUSB controller as "ports". This is confusing since
37cb7aa33aSEmmanuel Vadot  "port" is typically used to denote the physical USB receptacle. The device
38cb7aa33aSEmmanuel Vadot  tree binding in this document uses the term "port" to refer to the logical
39cb7aa33aSEmmanuel Vadot  abstraction of the signals that are routed to a USB receptacle (i.e. a PHY
40cb7aa33aSEmmanuel Vadot  for the USB signal, the VBUS power supply, the USB 2.0 companion port for
41cb7aa33aSEmmanuel Vadot  USB 3.0 receptacles, ...).
42cb7aa33aSEmmanuel Vadot
43cb7aa33aSEmmanuel Vadotproperties:
44cb7aa33aSEmmanuel Vadot  compatible:
45cb7aa33aSEmmanuel Vadot    const: nvidia,tegra210-xusb-padctl
46cb7aa33aSEmmanuel Vadot
47cb7aa33aSEmmanuel Vadot  reg:
48cb7aa33aSEmmanuel Vadot    maxItems: 1
49cb7aa33aSEmmanuel Vadot
50cb7aa33aSEmmanuel Vadot  resets:
51cb7aa33aSEmmanuel Vadot    items:
52cb7aa33aSEmmanuel Vadot      - description: pad controller reset
53cb7aa33aSEmmanuel Vadot
54cb7aa33aSEmmanuel Vadot  interrupts:
55cb7aa33aSEmmanuel Vadot    items:
56cb7aa33aSEmmanuel Vadot      - description: XUSB pad controller interrupt
57cb7aa33aSEmmanuel Vadot
58cb7aa33aSEmmanuel Vadot  reset-names:
59cb7aa33aSEmmanuel Vadot    items:
60cb7aa33aSEmmanuel Vadot      - const: padctl
61cb7aa33aSEmmanuel Vadot
62cb7aa33aSEmmanuel Vadot  avdd-pll-utmip-supply:
63cb7aa33aSEmmanuel Vadot    description: UTMI PLL power supply. Must supply 1.8 V.
64cb7aa33aSEmmanuel Vadot
65cb7aa33aSEmmanuel Vadot  avdd-pll-uerefe-supply:
66cb7aa33aSEmmanuel Vadot    description: PLLE reference PLL power supply. Must supply 1.05 V.
67cb7aa33aSEmmanuel Vadot
68cb7aa33aSEmmanuel Vadot  dvdd-pex-pll-supply:
69cb7aa33aSEmmanuel Vadot    description: PCIe/USB3 PLL power supply. Must supply 1.05 V.
70cb7aa33aSEmmanuel Vadot
71cb7aa33aSEmmanuel Vadot  hvdd-pex-pll-e-supply:
72cb7aa33aSEmmanuel Vadot    description: High-voltage PLLE power supply. Must supply 1.8 V.
73cb7aa33aSEmmanuel Vadot
74cb7aa33aSEmmanuel Vadot  nvidia,pmc:
75cb7aa33aSEmmanuel Vadot    description: phandle to the Tegra Power Management Controller (PMC) node
76cb7aa33aSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/phandle
77cb7aa33aSEmmanuel Vadot
78cb7aa33aSEmmanuel Vadot  pads:
79cb7aa33aSEmmanuel Vadot    description: A required child node named "pads" contains a list of
80cb7aa33aSEmmanuel Vadot      subnodes, one for each of the pads exposed by the XUSB pad controller.
81cb7aa33aSEmmanuel Vadot      Each pad may need additional resources that can be referenced in its
82cb7aa33aSEmmanuel Vadot      pad node.
83cb7aa33aSEmmanuel Vadot
84cb7aa33aSEmmanuel Vadot      The "status" property is used to enable or disable the use of a pad.
85cb7aa33aSEmmanuel Vadot      If set to "disabled", the pad will not be used on the given board. In
86cb7aa33aSEmmanuel Vadot      order to use the pad and any of its lanes, this property must be set
87cb7aa33aSEmmanuel Vadot      to "okay" or be absent.
88cb7aa33aSEmmanuel Vadot    type: object
89cb7aa33aSEmmanuel Vadot    additionalProperties: false
90cb7aa33aSEmmanuel Vadot    properties:
91cb7aa33aSEmmanuel Vadot      usb2:
92cb7aa33aSEmmanuel Vadot        type: object
93cb7aa33aSEmmanuel Vadot        additionalProperties: false
94cb7aa33aSEmmanuel Vadot        properties:
95cb7aa33aSEmmanuel Vadot          clocks:
96cb7aa33aSEmmanuel Vadot            items:
97cb7aa33aSEmmanuel Vadot              - description: USB2 tracking clock
98cb7aa33aSEmmanuel Vadot
99cb7aa33aSEmmanuel Vadot          clock-names:
100cb7aa33aSEmmanuel Vadot            items:
101cb7aa33aSEmmanuel Vadot              - const: trk
102cb7aa33aSEmmanuel Vadot
103cb7aa33aSEmmanuel Vadot          lanes:
104cb7aa33aSEmmanuel Vadot            type: object
105cb7aa33aSEmmanuel Vadot            additionalProperties: false
106cb7aa33aSEmmanuel Vadot            properties:
107cb7aa33aSEmmanuel Vadot              usb2-0:
108cb7aa33aSEmmanuel Vadot                type: object
109cb7aa33aSEmmanuel Vadot                additionalProperties: false
110cb7aa33aSEmmanuel Vadot                properties:
111cb7aa33aSEmmanuel Vadot                  "#phy-cells":
112cb7aa33aSEmmanuel Vadot                    const: 0
113cb7aa33aSEmmanuel Vadot
114cb7aa33aSEmmanuel Vadot                  nvidia,function:
115cb7aa33aSEmmanuel Vadot                    description: Function selection for this lane.
116cb7aa33aSEmmanuel Vadot                    $ref: /schemas/types.yaml#/definitions/string
117cb7aa33aSEmmanuel Vadot                    enum: [ snps, xusb, uart ]
118cb7aa33aSEmmanuel Vadot
119cb7aa33aSEmmanuel Vadot              usb2-1:
120cb7aa33aSEmmanuel Vadot                type: object
121cb7aa33aSEmmanuel Vadot                additionalProperties: false
122cb7aa33aSEmmanuel Vadot                properties:
123cb7aa33aSEmmanuel Vadot                  "#phy-cells":
124cb7aa33aSEmmanuel Vadot                    const: 0
125cb7aa33aSEmmanuel Vadot
126cb7aa33aSEmmanuel Vadot                  nvidia,function:
127cb7aa33aSEmmanuel Vadot                    description: Function selection for this lane.
128cb7aa33aSEmmanuel Vadot                    $ref: /schemas/types.yaml#/definitions/string
129cb7aa33aSEmmanuel Vadot                    enum: [ snps, xusb, uart ]
130cb7aa33aSEmmanuel Vadot
131cb7aa33aSEmmanuel Vadot              usb2-2:
132cb7aa33aSEmmanuel Vadot                type: object
133cb7aa33aSEmmanuel Vadot                additionalProperties: false
134cb7aa33aSEmmanuel Vadot                properties:
135cb7aa33aSEmmanuel Vadot                  "#phy-cells":
136cb7aa33aSEmmanuel Vadot                    const: 0
137cb7aa33aSEmmanuel Vadot
138cb7aa33aSEmmanuel Vadot                  nvidia,function:
139cb7aa33aSEmmanuel Vadot                    description: Function selection for this lane.
140cb7aa33aSEmmanuel Vadot                    $ref: /schemas/types.yaml#/definitions/string
141cb7aa33aSEmmanuel Vadot                    enum: [ snps, xusb, uart ]
142cb7aa33aSEmmanuel Vadot
143cb7aa33aSEmmanuel Vadot              usb2-3:
144cb7aa33aSEmmanuel Vadot                type: object
145cb7aa33aSEmmanuel Vadot                additionalProperties: false
146cb7aa33aSEmmanuel Vadot                properties:
147cb7aa33aSEmmanuel Vadot                  "#phy-cells":
148cb7aa33aSEmmanuel Vadot                    const: 0
149cb7aa33aSEmmanuel Vadot
150cb7aa33aSEmmanuel Vadot                  nvidia,function:
151cb7aa33aSEmmanuel Vadot                    description: Function selection for this lane.
152cb7aa33aSEmmanuel Vadot                    $ref: /schemas/types.yaml#/definitions/string
153cb7aa33aSEmmanuel Vadot                    enum: [ snps, xusb, uart ]
154cb7aa33aSEmmanuel Vadot
155cb7aa33aSEmmanuel Vadot      hsic:
156cb7aa33aSEmmanuel Vadot        type: object
157cb7aa33aSEmmanuel Vadot        additionalProperties: false
158cb7aa33aSEmmanuel Vadot        properties:
159cb7aa33aSEmmanuel Vadot          clocks:
160cb7aa33aSEmmanuel Vadot            items:
161cb7aa33aSEmmanuel Vadot              - description: HSIC tracking clock
162cb7aa33aSEmmanuel Vadot
163cb7aa33aSEmmanuel Vadot          clock-names:
164cb7aa33aSEmmanuel Vadot            items:
165cb7aa33aSEmmanuel Vadot              - const: trk
166cb7aa33aSEmmanuel Vadot
167cb7aa33aSEmmanuel Vadot          lanes:
168cb7aa33aSEmmanuel Vadot            type: object
169cb7aa33aSEmmanuel Vadot            additionalProperties: false
170cb7aa33aSEmmanuel Vadot            properties:
171cb7aa33aSEmmanuel Vadot              hsic-0:
172cb7aa33aSEmmanuel Vadot                type: object
173cb7aa33aSEmmanuel Vadot                additionalProperties: false
174cb7aa33aSEmmanuel Vadot                properties:
175cb7aa33aSEmmanuel Vadot                  "#phy-cells":
176cb7aa33aSEmmanuel Vadot                    const: 0
177cb7aa33aSEmmanuel Vadot
178cb7aa33aSEmmanuel Vadot                  nvidia,function:
179cb7aa33aSEmmanuel Vadot                    description: Function selection for this lane.
180cb7aa33aSEmmanuel Vadot                    $ref: /schemas/types.yaml#/definitions/string
181cb7aa33aSEmmanuel Vadot                    enum: [ snps, xusb ]
182cb7aa33aSEmmanuel Vadot
183cb7aa33aSEmmanuel Vadot              hsic-1:
184cb7aa33aSEmmanuel Vadot                type: object
185cb7aa33aSEmmanuel Vadot                additionalProperties: false
186cb7aa33aSEmmanuel Vadot                properties:
187cb7aa33aSEmmanuel Vadot                  "#phy-cells":
188cb7aa33aSEmmanuel Vadot                    const: 0
189cb7aa33aSEmmanuel Vadot
190cb7aa33aSEmmanuel Vadot                  nvidia,function:
191cb7aa33aSEmmanuel Vadot                    description: Function selection for this lane.
192cb7aa33aSEmmanuel Vadot                    $ref: /schemas/types.yaml#/definitions/string
193cb7aa33aSEmmanuel Vadot                    enum: [ snps, xusb ]
194cb7aa33aSEmmanuel Vadot
195cb7aa33aSEmmanuel Vadot      pcie:
196cb7aa33aSEmmanuel Vadot        type: object
197cb7aa33aSEmmanuel Vadot        additionalProperties: false
198cb7aa33aSEmmanuel Vadot        properties:
199cb7aa33aSEmmanuel Vadot          clocks:
200cb7aa33aSEmmanuel Vadot            items:
201cb7aa33aSEmmanuel Vadot              - description: PCIe PLL clock source
202cb7aa33aSEmmanuel Vadot
203cb7aa33aSEmmanuel Vadot          clock-names:
204cb7aa33aSEmmanuel Vadot            items:
205cb7aa33aSEmmanuel Vadot              - const: pll
206cb7aa33aSEmmanuel Vadot
207cb7aa33aSEmmanuel Vadot          resets:
208cb7aa33aSEmmanuel Vadot            items:
209cb7aa33aSEmmanuel Vadot              - description: PCIe PHY reset
210cb7aa33aSEmmanuel Vadot
211cb7aa33aSEmmanuel Vadot          reset-names:
212cb7aa33aSEmmanuel Vadot            items:
213cb7aa33aSEmmanuel Vadot              - const: phy
214cb7aa33aSEmmanuel Vadot
215cb7aa33aSEmmanuel Vadot          lanes:
216cb7aa33aSEmmanuel Vadot            type: object
217cb7aa33aSEmmanuel Vadot            additionalProperties: false
218cb7aa33aSEmmanuel Vadot            properties:
219cb7aa33aSEmmanuel Vadot              pcie-0:
220cb7aa33aSEmmanuel Vadot                type: object
221cb7aa33aSEmmanuel Vadot                additionalProperties: false
222cb7aa33aSEmmanuel Vadot                properties:
223cb7aa33aSEmmanuel Vadot                  "#phy-cells":
224cb7aa33aSEmmanuel Vadot                    const: 0
225cb7aa33aSEmmanuel Vadot
226cb7aa33aSEmmanuel Vadot                  nvidia,function:
227cb7aa33aSEmmanuel Vadot                    description: Function selection for this lane.
228cb7aa33aSEmmanuel Vadot                    $ref: /schemas/types.yaml#/definitions/string
229cb7aa33aSEmmanuel Vadot                    enum: [ pcie-x1, usb3-ss, pcie-x4 ]
230cb7aa33aSEmmanuel Vadot
231cb7aa33aSEmmanuel Vadot              pcie-1:
232cb7aa33aSEmmanuel Vadot                type: object
233cb7aa33aSEmmanuel Vadot                additionalProperties: false
234cb7aa33aSEmmanuel Vadot                properties:
235cb7aa33aSEmmanuel Vadot                  "#phy-cells":
236cb7aa33aSEmmanuel Vadot                    const: 0
237cb7aa33aSEmmanuel Vadot
238cb7aa33aSEmmanuel Vadot                  nvidia,function:
239cb7aa33aSEmmanuel Vadot                    description: Function selection for this lane.
240cb7aa33aSEmmanuel Vadot                    $ref: /schemas/types.yaml#/definitions/string
241cb7aa33aSEmmanuel Vadot                    enum: [ pcie-x1, usb3-ss, pcie-x4 ]
242cb7aa33aSEmmanuel Vadot
243cb7aa33aSEmmanuel Vadot              pcie-2:
244cb7aa33aSEmmanuel Vadot                type: object
245cb7aa33aSEmmanuel Vadot                additionalProperties: false
246cb7aa33aSEmmanuel Vadot                properties:
247cb7aa33aSEmmanuel Vadot                  "#phy-cells":
248cb7aa33aSEmmanuel Vadot                    const: 0
249cb7aa33aSEmmanuel Vadot
250cb7aa33aSEmmanuel Vadot                  nvidia,function:
251cb7aa33aSEmmanuel Vadot                    description: Function selection for this lane.
252cb7aa33aSEmmanuel Vadot                    $ref: /schemas/types.yaml#/definitions/string
253cb7aa33aSEmmanuel Vadot                    enum: [ pcie-x1, usb3-ss, pcie-x4 ]
254cb7aa33aSEmmanuel Vadot
255cb7aa33aSEmmanuel Vadot              pcie-3:
256cb7aa33aSEmmanuel Vadot                type: object
257cb7aa33aSEmmanuel Vadot                additionalProperties: false
258cb7aa33aSEmmanuel Vadot                properties:
259cb7aa33aSEmmanuel Vadot                  "#phy-cells":
260cb7aa33aSEmmanuel Vadot                    const: 0
261cb7aa33aSEmmanuel Vadot
262cb7aa33aSEmmanuel Vadot                  nvidia,function:
263cb7aa33aSEmmanuel Vadot                    description: Function selection for this lane.
264cb7aa33aSEmmanuel Vadot                    $ref: /schemas/types.yaml#/definitions/string
265cb7aa33aSEmmanuel Vadot                    enum: [ pcie-x1, usb3-ss, pcie-x4 ]
266cb7aa33aSEmmanuel Vadot
267cb7aa33aSEmmanuel Vadot              pcie-4:
268cb7aa33aSEmmanuel Vadot                type: object
269cb7aa33aSEmmanuel Vadot                additionalProperties: false
270cb7aa33aSEmmanuel Vadot                properties:
271cb7aa33aSEmmanuel Vadot                  "#phy-cells":
272cb7aa33aSEmmanuel Vadot                    const: 0
273cb7aa33aSEmmanuel Vadot
274cb7aa33aSEmmanuel Vadot                  nvidia,function:
275cb7aa33aSEmmanuel Vadot                    description: Function selection for this lane.
276cb7aa33aSEmmanuel Vadot                    $ref: /schemas/types.yaml#/definitions/string
277cb7aa33aSEmmanuel Vadot                    enum: [ pcie-x1, usb3-ss, pcie-x4 ]
278cb7aa33aSEmmanuel Vadot
279cb7aa33aSEmmanuel Vadot              pcie-5:
280cb7aa33aSEmmanuel Vadot                type: object
281cb7aa33aSEmmanuel Vadot                additionalProperties: false
282cb7aa33aSEmmanuel Vadot                properties:
283cb7aa33aSEmmanuel Vadot                  "#phy-cells":
284cb7aa33aSEmmanuel Vadot                    const: 0
285cb7aa33aSEmmanuel Vadot
286cb7aa33aSEmmanuel Vadot                  nvidia,function:
287cb7aa33aSEmmanuel Vadot                    description: Function selection for this lane.
288cb7aa33aSEmmanuel Vadot                    $ref: /schemas/types.yaml#/definitions/string
289cb7aa33aSEmmanuel Vadot                    enum: [ pcie-x1, usb3-ss, pcie-x4 ]
290cb7aa33aSEmmanuel Vadot
291cb7aa33aSEmmanuel Vadot              pcie-6:
292cb7aa33aSEmmanuel Vadot                type: object
293cb7aa33aSEmmanuel Vadot                additionalProperties: false
294cb7aa33aSEmmanuel Vadot                properties:
295cb7aa33aSEmmanuel Vadot                  "#phy-cells":
296cb7aa33aSEmmanuel Vadot                    const: 0
297cb7aa33aSEmmanuel Vadot
298cb7aa33aSEmmanuel Vadot                  nvidia,function:
299cb7aa33aSEmmanuel Vadot                    description: Function selection for this lane.
300cb7aa33aSEmmanuel Vadot                    $ref: /schemas/types.yaml#/definitions/string
301cb7aa33aSEmmanuel Vadot                    enum: [ pcie-x1, usb3-ss, pcie-x4 ]
302cb7aa33aSEmmanuel Vadot
303cb7aa33aSEmmanuel Vadot      sata:
304cb7aa33aSEmmanuel Vadot        type: object
305cb7aa33aSEmmanuel Vadot        additionalProperties: false
306cb7aa33aSEmmanuel Vadot        properties:
307cb7aa33aSEmmanuel Vadot          clocks:
308cb7aa33aSEmmanuel Vadot            items:
309cb7aa33aSEmmanuel Vadot              - description: SATA PLL clock source
310cb7aa33aSEmmanuel Vadot
311cb7aa33aSEmmanuel Vadot          clock-names:
312cb7aa33aSEmmanuel Vadot            items:
313cb7aa33aSEmmanuel Vadot              - const: pll
314cb7aa33aSEmmanuel Vadot
315cb7aa33aSEmmanuel Vadot          resets:
316cb7aa33aSEmmanuel Vadot            items:
317cb7aa33aSEmmanuel Vadot              - description: SATA PHY reset
318cb7aa33aSEmmanuel Vadot
319cb7aa33aSEmmanuel Vadot          reset-names:
320cb7aa33aSEmmanuel Vadot            items:
321cb7aa33aSEmmanuel Vadot              - const: phy
322cb7aa33aSEmmanuel Vadot
323cb7aa33aSEmmanuel Vadot          lanes:
324cb7aa33aSEmmanuel Vadot            type: object
325cb7aa33aSEmmanuel Vadot            additionalProperties: false
326cb7aa33aSEmmanuel Vadot            properties:
327cb7aa33aSEmmanuel Vadot              sata-0:
328cb7aa33aSEmmanuel Vadot                type: object
329cb7aa33aSEmmanuel Vadot                additionalProperties: false
330cb7aa33aSEmmanuel Vadot                properties:
331cb7aa33aSEmmanuel Vadot                  "#phy-cells":
332cb7aa33aSEmmanuel Vadot                    const: 0
333cb7aa33aSEmmanuel Vadot
334cb7aa33aSEmmanuel Vadot                  nvidia,function:
335cb7aa33aSEmmanuel Vadot                    description: Function selection for this lane.
336cb7aa33aSEmmanuel Vadot                    $ref: /schemas/types.yaml#/definitions/string
337cb7aa33aSEmmanuel Vadot                    enum: [ usb3-ss, sata ]
338cb7aa33aSEmmanuel Vadot
339cb7aa33aSEmmanuel Vadot  ports:
340cb7aa33aSEmmanuel Vadot    description: A required child node named "ports" contains a list of
341cb7aa33aSEmmanuel Vadot      subnodes, one for each of the ports exposed by the XUSB pad controller.
342cb7aa33aSEmmanuel Vadot      Each port may need additional resources that can be referenced in its
343cb7aa33aSEmmanuel Vadot      port node.
344cb7aa33aSEmmanuel Vadot
345cb7aa33aSEmmanuel Vadot      The "status" property is used to enable or disable the use of a port.
346cb7aa33aSEmmanuel Vadot      If set to "disabled", the port will not be used on the given board. In
347cb7aa33aSEmmanuel Vadot      order to use the port, this property must be set to "okay".
348cb7aa33aSEmmanuel Vadot    type: object
349cb7aa33aSEmmanuel Vadot    additionalProperties: false
350cb7aa33aSEmmanuel Vadot    properties:
351cb7aa33aSEmmanuel Vadot      usb2-0:
352cb7aa33aSEmmanuel Vadot        type: object
353cb7aa33aSEmmanuel Vadot        additionalProperties: false
354cb7aa33aSEmmanuel Vadot        properties:
355cb7aa33aSEmmanuel Vadot          # no need to further describe this because the connector will
356cb7aa33aSEmmanuel Vadot          # match on gpio-usb-b-connector or usb-b-connector and cause
357cb7aa33aSEmmanuel Vadot          # that binding to be selected for the subnode
358cb7aa33aSEmmanuel Vadot          connector:
359cb7aa33aSEmmanuel Vadot            type: object
360cb7aa33aSEmmanuel Vadot
361cb7aa33aSEmmanuel Vadot          mode:
362cb7aa33aSEmmanuel Vadot            description: A string that determines the mode in which to
363cb7aa33aSEmmanuel Vadot              run the port.
364cb7aa33aSEmmanuel Vadot            $ref: /schemas/types.yaml#/definitions/string
365cb7aa33aSEmmanuel Vadot            enum: [ host, peripheral, otg ]
366cb7aa33aSEmmanuel Vadot
367cb7aa33aSEmmanuel Vadot          nvidia,internal:
368cb7aa33aSEmmanuel Vadot            description: A boolean property whose presence determines
369cb7aa33aSEmmanuel Vadot              that a port is internal. In the absence of this property
370cb7aa33aSEmmanuel Vadot              the port is considered to be external.
371cb7aa33aSEmmanuel Vadot            $ref: /schemas/types.yaml#/definitions/flag
372cb7aa33aSEmmanuel Vadot
373cb7aa33aSEmmanuel Vadot          usb-role-switch:
374cb7aa33aSEmmanuel Vadot            description: |
375cb7aa33aSEmmanuel Vadot              A boolean property whole presence indicates that the port
376cb7aa33aSEmmanuel Vadot              supports OTG or peripheral mode. If present, the port
377cb7aa33aSEmmanuel Vadot              supports switching between USB host and peripheral roles.
378cb7aa33aSEmmanuel Vadot              A connector must be added as a subnode in that case.
379cb7aa33aSEmmanuel Vadot
380cb7aa33aSEmmanuel Vadot              See ../connector/usb-connector.yaml.
381cb7aa33aSEmmanuel Vadot
382cb7aa33aSEmmanuel Vadot          vbus-supply:
383cb7aa33aSEmmanuel Vadot            description: A phandle to the regulator supplying the VBUS
384cb7aa33aSEmmanuel Vadot              voltage.
385cb7aa33aSEmmanuel Vadot
386cb7aa33aSEmmanuel Vadot        dependencies:
387cb7aa33aSEmmanuel Vadot          usb-role-switch: [ connector ]
388cb7aa33aSEmmanuel Vadot
389cb7aa33aSEmmanuel Vadot      usb2-1:
390cb7aa33aSEmmanuel Vadot        type: object
391cb7aa33aSEmmanuel Vadot        additionalProperties: false
392cb7aa33aSEmmanuel Vadot        properties:
393cb7aa33aSEmmanuel Vadot          # no need to further describe this because the connector will
394cb7aa33aSEmmanuel Vadot          # match on gpio-usb-b-connector or usb-b-connector and cause
395cb7aa33aSEmmanuel Vadot          # that binding to be selected for the subnode
396cb7aa33aSEmmanuel Vadot          connector:
397cb7aa33aSEmmanuel Vadot            type: object
398cb7aa33aSEmmanuel Vadot
399cb7aa33aSEmmanuel Vadot          mode:
400cb7aa33aSEmmanuel Vadot            description: A string that determines the mode in which to
401cb7aa33aSEmmanuel Vadot              run the port.
402cb7aa33aSEmmanuel Vadot            $ref: /schemas/types.yaml#/definitions/string
403cb7aa33aSEmmanuel Vadot            enum: [ host, peripheral, otg ]
404cb7aa33aSEmmanuel Vadot
405cb7aa33aSEmmanuel Vadot          nvidia,internal:
406cb7aa33aSEmmanuel Vadot            description: A boolean property whose presence determines
407cb7aa33aSEmmanuel Vadot              that a port is internal. In the absence of this property
408cb7aa33aSEmmanuel Vadot              the port is considered to be external.
409cb7aa33aSEmmanuel Vadot            $ref: /schemas/types.yaml#/definitions/flag
410cb7aa33aSEmmanuel Vadot
411cb7aa33aSEmmanuel Vadot          usb-role-switch:
412cb7aa33aSEmmanuel Vadot            description: |
413cb7aa33aSEmmanuel Vadot              A boolean property whole presence indicates that the port
414cb7aa33aSEmmanuel Vadot              supports OTG or peripheral mode. If present, the port
415cb7aa33aSEmmanuel Vadot              supports switching between USB host and peripheral roles.
416cb7aa33aSEmmanuel Vadot              A connector must be added as a subnode in that case.
417cb7aa33aSEmmanuel Vadot
418cb7aa33aSEmmanuel Vadot              See ../connector/usb-connector.yaml.
419cb7aa33aSEmmanuel Vadot
420cb7aa33aSEmmanuel Vadot          vbus-supply:
421cb7aa33aSEmmanuel Vadot            description: A phandle to the regulator supplying the VBUS
422cb7aa33aSEmmanuel Vadot              voltage.
423cb7aa33aSEmmanuel Vadot
424cb7aa33aSEmmanuel Vadot        dependencies:
425cb7aa33aSEmmanuel Vadot          usb-role-switch: [ connector ]
426cb7aa33aSEmmanuel Vadot
427cb7aa33aSEmmanuel Vadot      usb2-2:
428cb7aa33aSEmmanuel Vadot        type: object
429cb7aa33aSEmmanuel Vadot        additionalProperties: false
430cb7aa33aSEmmanuel Vadot        properties:
431cb7aa33aSEmmanuel Vadot          # no need to further describe this because the connector will
432cb7aa33aSEmmanuel Vadot          # match on gpio-usb-b-connector or usb-b-connector and cause
433cb7aa33aSEmmanuel Vadot          # that binding to be selected for the subnode
434cb7aa33aSEmmanuel Vadot          connector:
435cb7aa33aSEmmanuel Vadot            type: object
436cb7aa33aSEmmanuel Vadot
437cb7aa33aSEmmanuel Vadot          mode:
438cb7aa33aSEmmanuel Vadot            description: A string that determines the mode in which to
439cb7aa33aSEmmanuel Vadot              run the port.
440cb7aa33aSEmmanuel Vadot            $ref: /schemas/types.yaml#/definitions/string
441cb7aa33aSEmmanuel Vadot            enum: [ host, peripheral, otg ]
442cb7aa33aSEmmanuel Vadot
443cb7aa33aSEmmanuel Vadot          nvidia,internal:
444cb7aa33aSEmmanuel Vadot            description: A boolean property whose presence determines
445cb7aa33aSEmmanuel Vadot              that a port is internal. In the absence of this property
446cb7aa33aSEmmanuel Vadot              the port is considered to be external.
447cb7aa33aSEmmanuel Vadot            $ref: /schemas/types.yaml#/definitions/flag
448cb7aa33aSEmmanuel Vadot
449cb7aa33aSEmmanuel Vadot          usb-role-switch:
450cb7aa33aSEmmanuel Vadot            description: |
451cb7aa33aSEmmanuel Vadot              A boolean property whole presence indicates that the port
452cb7aa33aSEmmanuel Vadot              supports OTG or peripheral mode. If present, the port
453cb7aa33aSEmmanuel Vadot              supports switching between USB host and peripheral roles.
454cb7aa33aSEmmanuel Vadot              A connector must be added as a subnode in that case.
455cb7aa33aSEmmanuel Vadot
456cb7aa33aSEmmanuel Vadot              See ../connector/usb-connector.yaml.
457cb7aa33aSEmmanuel Vadot
458cb7aa33aSEmmanuel Vadot          vbus-supply:
459cb7aa33aSEmmanuel Vadot            description: A phandle to the regulator supplying the VBUS
460cb7aa33aSEmmanuel Vadot              voltage.
461cb7aa33aSEmmanuel Vadot
462cb7aa33aSEmmanuel Vadot        dependencies:
463cb7aa33aSEmmanuel Vadot          usb-role-switch: [ connector ]
464cb7aa33aSEmmanuel Vadot
465cb7aa33aSEmmanuel Vadot      usb2-3:
466cb7aa33aSEmmanuel Vadot        type: object
467cb7aa33aSEmmanuel Vadot        additionalProperties: false
468cb7aa33aSEmmanuel Vadot        properties:
469cb7aa33aSEmmanuel Vadot          # no need to further describe this because the connector will
470cb7aa33aSEmmanuel Vadot          # match on gpio-usb-b-connector or usb-b-connector and cause
471cb7aa33aSEmmanuel Vadot          # that binding to be selected for the subnode
472cb7aa33aSEmmanuel Vadot          connector:
473cb7aa33aSEmmanuel Vadot            type: object
474cb7aa33aSEmmanuel Vadot
475cb7aa33aSEmmanuel Vadot          mode:
476cb7aa33aSEmmanuel Vadot            description: A string that determines the mode in which to
477cb7aa33aSEmmanuel Vadot              run the port.
478cb7aa33aSEmmanuel Vadot            $ref: /schemas/types.yaml#/definitions/string
479cb7aa33aSEmmanuel Vadot            enum: [ host, peripheral, otg ]
480cb7aa33aSEmmanuel Vadot
481cb7aa33aSEmmanuel Vadot          nvidia,internal:
482cb7aa33aSEmmanuel Vadot            description: A boolean property whose presence determines
483cb7aa33aSEmmanuel Vadot              that a port is internal. In the absence of this property
484cb7aa33aSEmmanuel Vadot              the port is considered to be external.
485cb7aa33aSEmmanuel Vadot            $ref: /schemas/types.yaml#/definitions/flag
486cb7aa33aSEmmanuel Vadot
487cb7aa33aSEmmanuel Vadot          usb-role-switch:
488cb7aa33aSEmmanuel Vadot            description: |
489cb7aa33aSEmmanuel Vadot              A boolean property whole presence indicates that the port
490cb7aa33aSEmmanuel Vadot              supports OTG or peripheral mode. If present, the port
491cb7aa33aSEmmanuel Vadot              supports switching between USB host and peripheral roles.
492cb7aa33aSEmmanuel Vadot              A connector must be added as a subnode in that case.
493cb7aa33aSEmmanuel Vadot
494cb7aa33aSEmmanuel Vadot              See ../connector/usb-connector.yaml.
495cb7aa33aSEmmanuel Vadot
496cb7aa33aSEmmanuel Vadot          vbus-supply:
497cb7aa33aSEmmanuel Vadot            description: A phandle to the regulator supplying the VBUS
498cb7aa33aSEmmanuel Vadot              voltage.
499cb7aa33aSEmmanuel Vadot
500cb7aa33aSEmmanuel Vadot        dependencies:
501cb7aa33aSEmmanuel Vadot          usb-role-switch: [ connector ]
502cb7aa33aSEmmanuel Vadot
503cb7aa33aSEmmanuel Vadot      hsic-0:
504cb7aa33aSEmmanuel Vadot        type: object
505cb7aa33aSEmmanuel Vadot        additionalProperties: false
506cb7aa33aSEmmanuel Vadot        properties:
507cb7aa33aSEmmanuel Vadot          vbus-supply:
508cb7aa33aSEmmanuel Vadot            description: A phandle to the regulator supplying the VBUS
509cb7aa33aSEmmanuel Vadot              voltage.
510cb7aa33aSEmmanuel Vadot
511cb7aa33aSEmmanuel Vadot      hsic-1:
512cb7aa33aSEmmanuel Vadot        type: object
513cb7aa33aSEmmanuel Vadot        additionalProperties: false
514cb7aa33aSEmmanuel Vadot        properties:
515cb7aa33aSEmmanuel Vadot          vbus-supply:
516cb7aa33aSEmmanuel Vadot            description: A phandle to the regulator supplying the VBUS
517cb7aa33aSEmmanuel Vadot              voltage.
518cb7aa33aSEmmanuel Vadot
519cb7aa33aSEmmanuel Vadot      usb3-0:
520cb7aa33aSEmmanuel Vadot        type: object
521cb7aa33aSEmmanuel Vadot        additionalProperties: false
522cb7aa33aSEmmanuel Vadot        properties:
523cb7aa33aSEmmanuel Vadot          nvidia,internal:
524cb7aa33aSEmmanuel Vadot            description: A boolean property whose presence determines
525cb7aa33aSEmmanuel Vadot              that a port is internal. In the absence of this property
526cb7aa33aSEmmanuel Vadot              the port is considered to be external.
527cb7aa33aSEmmanuel Vadot            $ref: /schemas/types.yaml#/definitions/flag
528cb7aa33aSEmmanuel Vadot
529cb7aa33aSEmmanuel Vadot          nvidia,usb2-companion:
530cb7aa33aSEmmanuel Vadot            description: A single cell that specifies the physical port
531cb7aa33aSEmmanuel Vadot              number to map this super-speed USB port to. The range of
532cb7aa33aSEmmanuel Vadot              valid port numbers varies with the SoC generation.
533cb7aa33aSEmmanuel Vadot            $ref: /schemas/types.yaml#/definitions/uint32
534cb7aa33aSEmmanuel Vadot            enum: [ 0, 1, 2, 3 ]
535cb7aa33aSEmmanuel Vadot
536cb7aa33aSEmmanuel Vadot          vbus-supply:
537cb7aa33aSEmmanuel Vadot            description: A phandle to the regulator supplying the VBUS
538cb7aa33aSEmmanuel Vadot              voltage.
539cb7aa33aSEmmanuel Vadot
540cb7aa33aSEmmanuel Vadot      usb3-1:
541cb7aa33aSEmmanuel Vadot        type: object
542cb7aa33aSEmmanuel Vadot        additionalProperties: false
543cb7aa33aSEmmanuel Vadot        properties:
544cb7aa33aSEmmanuel Vadot          nvidia,internal:
545cb7aa33aSEmmanuel Vadot            description: A boolean property whose presence determines
546cb7aa33aSEmmanuel Vadot              that a port is internal. In the absence of this property
547cb7aa33aSEmmanuel Vadot              the port is considered to be external.
548cb7aa33aSEmmanuel Vadot            $ref: /schemas/types.yaml#/definitions/flag
549cb7aa33aSEmmanuel Vadot
550cb7aa33aSEmmanuel Vadot          nvidia,usb2-companion:
551cb7aa33aSEmmanuel Vadot            description: A single cell that specifies the physical port
552cb7aa33aSEmmanuel Vadot              number to map this super-speed USB port to. The range of
553cb7aa33aSEmmanuel Vadot              valid port numbers varies with the SoC generation.
554cb7aa33aSEmmanuel Vadot            $ref: /schemas/types.yaml#/definitions/uint32
555cb7aa33aSEmmanuel Vadot            enum: [ 0, 1, 2, 3 ]
556cb7aa33aSEmmanuel Vadot
557cb7aa33aSEmmanuel Vadot          vbus-supply:
558cb7aa33aSEmmanuel Vadot            description: A phandle to the regulator supplying the VBUS
559cb7aa33aSEmmanuel Vadot              voltage.
560cb7aa33aSEmmanuel Vadot
561cb7aa33aSEmmanuel Vadot      usb3-2:
562cb7aa33aSEmmanuel Vadot        type: object
563cb7aa33aSEmmanuel Vadot        additionalProperties: false
564cb7aa33aSEmmanuel Vadot        properties:
565cb7aa33aSEmmanuel Vadot          nvidia,internal:
566cb7aa33aSEmmanuel Vadot            description: A boolean property whose presence determines
567cb7aa33aSEmmanuel Vadot              that a port is internal. In the absence of this property
568cb7aa33aSEmmanuel Vadot              the port is considered to be external.
569cb7aa33aSEmmanuel Vadot            $ref: /schemas/types.yaml#/definitions/flag
570cb7aa33aSEmmanuel Vadot
571cb7aa33aSEmmanuel Vadot          nvidia,usb2-companion:
572cb7aa33aSEmmanuel Vadot            description: A single cell that specifies the physical port
573cb7aa33aSEmmanuel Vadot              number to map this super-speed USB port to. The range of
574cb7aa33aSEmmanuel Vadot              valid port numbers varies with the SoC generation.
575cb7aa33aSEmmanuel Vadot            $ref: /schemas/types.yaml#/definitions/uint32
576cb7aa33aSEmmanuel Vadot            enum: [ 0, 1, 2, 3 ]
577cb7aa33aSEmmanuel Vadot
578cb7aa33aSEmmanuel Vadot          vbus-supply:
579cb7aa33aSEmmanuel Vadot            description: A phandle to the regulator supplying the VBUS
580cb7aa33aSEmmanuel Vadot              voltage.
581cb7aa33aSEmmanuel Vadot
582cb7aa33aSEmmanuel Vadot      usb3-3:
583cb7aa33aSEmmanuel Vadot        type: object
584cb7aa33aSEmmanuel Vadot        additionalProperties: false
585cb7aa33aSEmmanuel Vadot        properties:
586cb7aa33aSEmmanuel Vadot          nvidia,internal:
587cb7aa33aSEmmanuel Vadot            description: A boolean property whose presence determines
588cb7aa33aSEmmanuel Vadot              that a port is internal. In the absence of this property
589cb7aa33aSEmmanuel Vadot              the port is considered to be external.
590cb7aa33aSEmmanuel Vadot            $ref: /schemas/types.yaml#/definitions/flag
591cb7aa33aSEmmanuel Vadot
592cb7aa33aSEmmanuel Vadot          nvidia,usb2-companion:
593cb7aa33aSEmmanuel Vadot            description: A single cell that specifies the physical port
594cb7aa33aSEmmanuel Vadot              number to map this super-speed USB port to. The range of
595cb7aa33aSEmmanuel Vadot              valid port numbers varies with the SoC generation.
596cb7aa33aSEmmanuel Vadot            $ref: /schemas/types.yaml#/definitions/uint32
597cb7aa33aSEmmanuel Vadot            enum: [ 0, 1, 2, 3 ]
598cb7aa33aSEmmanuel Vadot
599cb7aa33aSEmmanuel Vadot          vbus-supply:
600cb7aa33aSEmmanuel Vadot            description: A phandle to the regulator supplying the VBUS
601cb7aa33aSEmmanuel Vadot              voltage.
602cb7aa33aSEmmanuel Vadot
603cb7aa33aSEmmanuel VadotadditionalProperties: false
604cb7aa33aSEmmanuel Vadot
605cb7aa33aSEmmanuel Vadotrequired:
606cb7aa33aSEmmanuel Vadot  - avdd-pll-utmip-supply
607cb7aa33aSEmmanuel Vadot  - avdd-pll-uerefe-supply
608cb7aa33aSEmmanuel Vadot  - dvdd-pex-pll-supply
609cb7aa33aSEmmanuel Vadot  - hvdd-pex-pll-e-supply
610cb7aa33aSEmmanuel Vadot
611cb7aa33aSEmmanuel Vadotexamples:
612cb7aa33aSEmmanuel Vadot  - |
613cb7aa33aSEmmanuel Vadot    #include <dt-bindings/clock/tegra210-car.h>
614cb7aa33aSEmmanuel Vadot    #include <dt-bindings/gpio/tegra-gpio.h>
615cb7aa33aSEmmanuel Vadot    #include <dt-bindings/interrupt-controller/arm-gic.h>
616cb7aa33aSEmmanuel Vadot
617cb7aa33aSEmmanuel Vadot    padctl@7009f000 {
618cb7aa33aSEmmanuel Vadot        compatible = "nvidia,tegra210-xusb-padctl";
619cb7aa33aSEmmanuel Vadot        reg = <0x7009f000 0x1000>;
620cb7aa33aSEmmanuel Vadot        interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>;
621cb7aa33aSEmmanuel Vadot        resets = <&tegra_car 142>;
622cb7aa33aSEmmanuel Vadot        reset-names = "padctl";
623cb7aa33aSEmmanuel Vadot
624cb7aa33aSEmmanuel Vadot        avdd-pll-utmip-supply = <&vdd_1v8>;
625cb7aa33aSEmmanuel Vadot        avdd-pll-uerefe-supply = <&vdd_pex_1v05>;
626cb7aa33aSEmmanuel Vadot        dvdd-pex-pll-supply = <&vdd_pex_1v05>;
627cb7aa33aSEmmanuel Vadot        hvdd-pex-pll-e-supply = <&vdd_1v8>;
628cb7aa33aSEmmanuel Vadot
629cb7aa33aSEmmanuel Vadot        pads {
630cb7aa33aSEmmanuel Vadot            usb2 {
631cb7aa33aSEmmanuel Vadot                clocks = <&tegra_car TEGRA210_CLK_USB2_TRK>;
632cb7aa33aSEmmanuel Vadot                clock-names = "trk";
633cb7aa33aSEmmanuel Vadot
634cb7aa33aSEmmanuel Vadot                lanes {
635cb7aa33aSEmmanuel Vadot                    usb2-0 {
636cb7aa33aSEmmanuel Vadot                        nvidia,function = "xusb";
637cb7aa33aSEmmanuel Vadot                        #phy-cells = <0>;
638cb7aa33aSEmmanuel Vadot                    };
639cb7aa33aSEmmanuel Vadot
640cb7aa33aSEmmanuel Vadot                    usb2-1 {
641cb7aa33aSEmmanuel Vadot                        nvidia,function = "xusb";
642cb7aa33aSEmmanuel Vadot                        #phy-cells = <0>;
643cb7aa33aSEmmanuel Vadot                    };
644cb7aa33aSEmmanuel Vadot
645cb7aa33aSEmmanuel Vadot                    usb2-2 {
646cb7aa33aSEmmanuel Vadot                        nvidia,function = "xusb";
647cb7aa33aSEmmanuel Vadot                        #phy-cells = <0>;
648cb7aa33aSEmmanuel Vadot                    };
649cb7aa33aSEmmanuel Vadot
650cb7aa33aSEmmanuel Vadot                    usb2-3 {
651cb7aa33aSEmmanuel Vadot                        nvidia,function = "xusb";
652cb7aa33aSEmmanuel Vadot                        #phy-cells = <0>;
653cb7aa33aSEmmanuel Vadot                    };
654cb7aa33aSEmmanuel Vadot                };
655cb7aa33aSEmmanuel Vadot            };
656cb7aa33aSEmmanuel Vadot
657cb7aa33aSEmmanuel Vadot            hsic {
658cb7aa33aSEmmanuel Vadot                clocks = <&tegra_car TEGRA210_CLK_HSIC_TRK>;
659cb7aa33aSEmmanuel Vadot                clock-names = "trk";
660cb7aa33aSEmmanuel Vadot                status = "disabled";
661cb7aa33aSEmmanuel Vadot
662cb7aa33aSEmmanuel Vadot                lanes {
663cb7aa33aSEmmanuel Vadot                    hsic-0 {
664cb7aa33aSEmmanuel Vadot                        status = "disabled";
665cb7aa33aSEmmanuel Vadot                        #phy-cells = <0>;
666cb7aa33aSEmmanuel Vadot                    };
667cb7aa33aSEmmanuel Vadot
668cb7aa33aSEmmanuel Vadot                    hsic-1 {
669cb7aa33aSEmmanuel Vadot                        status = "disabled";
670cb7aa33aSEmmanuel Vadot                        #phy-cells = <0>;
671cb7aa33aSEmmanuel Vadot                    };
672cb7aa33aSEmmanuel Vadot                };
673cb7aa33aSEmmanuel Vadot            };
674cb7aa33aSEmmanuel Vadot
675cb7aa33aSEmmanuel Vadot            pcie {
676cb7aa33aSEmmanuel Vadot                clocks = <&tegra_car TEGRA210_CLK_PLL_E>;
677cb7aa33aSEmmanuel Vadot                clock-names = "pll";
678cb7aa33aSEmmanuel Vadot                resets = <&tegra_car 205>;
679cb7aa33aSEmmanuel Vadot                reset-names = "phy";
680cb7aa33aSEmmanuel Vadot
681cb7aa33aSEmmanuel Vadot                lanes {
682cb7aa33aSEmmanuel Vadot                    pcie-0 {
683cb7aa33aSEmmanuel Vadot                        nvidia,function = "pcie-x1";
684cb7aa33aSEmmanuel Vadot                        #phy-cells = <0>;
685cb7aa33aSEmmanuel Vadot                    };
686cb7aa33aSEmmanuel Vadot
687cb7aa33aSEmmanuel Vadot                    pcie-1 {
688cb7aa33aSEmmanuel Vadot                        nvidia,function = "pcie-x4";
689cb7aa33aSEmmanuel Vadot                        #phy-cells = <0>;
690cb7aa33aSEmmanuel Vadot                    };
691cb7aa33aSEmmanuel Vadot
692cb7aa33aSEmmanuel Vadot                    pcie-2 {
693cb7aa33aSEmmanuel Vadot                        nvidia,function = "pcie-x4";
694cb7aa33aSEmmanuel Vadot                        #phy-cells = <0>;
695cb7aa33aSEmmanuel Vadot                    };
696cb7aa33aSEmmanuel Vadot
697cb7aa33aSEmmanuel Vadot                    pcie-3 {
698cb7aa33aSEmmanuel Vadot                        nvidia,function = "pcie-x4";
699cb7aa33aSEmmanuel Vadot                        #phy-cells = <0>;
700cb7aa33aSEmmanuel Vadot                    };
701cb7aa33aSEmmanuel Vadot
702cb7aa33aSEmmanuel Vadot                    pcie-4 {
703cb7aa33aSEmmanuel Vadot                        nvidia,function = "pcie-x4";
704cb7aa33aSEmmanuel Vadot                        #phy-cells = <0>;
705cb7aa33aSEmmanuel Vadot                    };
706cb7aa33aSEmmanuel Vadot
707cb7aa33aSEmmanuel Vadot                    pcie-5 {
708cb7aa33aSEmmanuel Vadot                        nvidia,function = "usb3-ss";
709cb7aa33aSEmmanuel Vadot                        #phy-cells = <0>;
710cb7aa33aSEmmanuel Vadot                    };
711cb7aa33aSEmmanuel Vadot
712cb7aa33aSEmmanuel Vadot                    pcie-6 {
713cb7aa33aSEmmanuel Vadot                        nvidia,function = "usb3-ss";
714cb7aa33aSEmmanuel Vadot                        #phy-cells = <0>;
715cb7aa33aSEmmanuel Vadot                    };
716cb7aa33aSEmmanuel Vadot                };
717cb7aa33aSEmmanuel Vadot            };
718cb7aa33aSEmmanuel Vadot
719cb7aa33aSEmmanuel Vadot            sata {
720cb7aa33aSEmmanuel Vadot                clocks = <&tegra_car TEGRA210_CLK_PLL_E>;
721cb7aa33aSEmmanuel Vadot                clock-names = "pll";
722cb7aa33aSEmmanuel Vadot                resets = <&tegra_car 204>;
723cb7aa33aSEmmanuel Vadot                reset-names = "phy";
724cb7aa33aSEmmanuel Vadot
725cb7aa33aSEmmanuel Vadot                lanes {
726cb7aa33aSEmmanuel Vadot                    sata-0 {
727cb7aa33aSEmmanuel Vadot                        nvidia,function = "sata";
728cb7aa33aSEmmanuel Vadot                        #phy-cells = <0>;
729cb7aa33aSEmmanuel Vadot                    };
730cb7aa33aSEmmanuel Vadot                };
731cb7aa33aSEmmanuel Vadot            };
732cb7aa33aSEmmanuel Vadot        };
733cb7aa33aSEmmanuel Vadot
734cb7aa33aSEmmanuel Vadot        ports {
735cb7aa33aSEmmanuel Vadot            usb2-0 {
736cb7aa33aSEmmanuel Vadot                mode = "peripheral";
737cb7aa33aSEmmanuel Vadot                usb-role-switch;
738cb7aa33aSEmmanuel Vadot
739cb7aa33aSEmmanuel Vadot                connector {
740cb7aa33aSEmmanuel Vadot                    compatible = "gpio-usb-b-connector",
741cb7aa33aSEmmanuel Vadot                                 "usb-b-connector";
742cb7aa33aSEmmanuel Vadot                    label = "micro-USB";
743cb7aa33aSEmmanuel Vadot                    type = "micro";
744cb7aa33aSEmmanuel Vadot                    vbus-gpios = <&gpio TEGRA_GPIO(CC, 4) GPIO_ACTIVE_LOW>;
745cb7aa33aSEmmanuel Vadot                };
746cb7aa33aSEmmanuel Vadot            };
747cb7aa33aSEmmanuel Vadot
748cb7aa33aSEmmanuel Vadot            usb2-1 {
749cb7aa33aSEmmanuel Vadot                vbus-supply = <&vdd_5v0_rtl>;
750cb7aa33aSEmmanuel Vadot                mode = "host";
751cb7aa33aSEmmanuel Vadot            };
752cb7aa33aSEmmanuel Vadot
753cb7aa33aSEmmanuel Vadot            usb2-2 {
754cb7aa33aSEmmanuel Vadot                vbus-supply = <&vdd_usb_vbus>;
755cb7aa33aSEmmanuel Vadot                mode = "host";
756cb7aa33aSEmmanuel Vadot            };
757cb7aa33aSEmmanuel Vadot
758cb7aa33aSEmmanuel Vadot            usb2-3 {
759cb7aa33aSEmmanuel Vadot                mode = "host";
760cb7aa33aSEmmanuel Vadot            };
761cb7aa33aSEmmanuel Vadot
762cb7aa33aSEmmanuel Vadot            hsic-0 {
763cb7aa33aSEmmanuel Vadot                status = "disabled";
764cb7aa33aSEmmanuel Vadot            };
765cb7aa33aSEmmanuel Vadot
766cb7aa33aSEmmanuel Vadot            hsic-1 {
767cb7aa33aSEmmanuel Vadot                status = "disabled";
768cb7aa33aSEmmanuel Vadot            };
769cb7aa33aSEmmanuel Vadot
770cb7aa33aSEmmanuel Vadot            usb3-0 {
771cb7aa33aSEmmanuel Vadot                nvidia,usb2-companion = <1>;
772cb7aa33aSEmmanuel Vadot            };
773cb7aa33aSEmmanuel Vadot
774cb7aa33aSEmmanuel Vadot            usb3-1 {
775cb7aa33aSEmmanuel Vadot                nvidia,usb2-companion = <2>;
776cb7aa33aSEmmanuel Vadot            };
777cb7aa33aSEmmanuel Vadot
778cb7aa33aSEmmanuel Vadot            usb3-2 {
779cb7aa33aSEmmanuel Vadot                status = "disabled";
780cb7aa33aSEmmanuel Vadot            };
781cb7aa33aSEmmanuel Vadot
782cb7aa33aSEmmanuel Vadot            usb3-3 {
783cb7aa33aSEmmanuel Vadot                status = "disabled";
784cb7aa33aSEmmanuel Vadot            };
785cb7aa33aSEmmanuel Vadot        };
786cb7aa33aSEmmanuel Vadot    };
787