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