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