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