1*440b075bSKrzysztof Kozlowski# 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,tegra210-xusb-padctl.yaml# 5fb1ff013SThierry Reding$schema: http://devicetree.org/meta-schemas/core.yaml# 6fb1ff013SThierry Reding 7fb1ff013SThierry Redingtitle: NVIDIA Tegra210 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: 45fb1ff013SThierry Reding const: nvidia,tegra210-xusb-padctl 46fb1ff013SThierry Reding 47fb1ff013SThierry Reding reg: 48fb1ff013SThierry Reding maxItems: 1 49fb1ff013SThierry Reding 50fb1ff013SThierry Reding resets: 51fb1ff013SThierry Reding items: 52fb1ff013SThierry Reding - description: pad controller reset 53fb1ff013SThierry Reding 54fb1ff013SThierry Reding interrupts: 55fb1ff013SThierry Reding items: 56fb1ff013SThierry Reding - description: XUSB pad controller interrupt 57fb1ff013SThierry Reding 58fb1ff013SThierry Reding reset-names: 59fb1ff013SThierry Reding items: 60fb1ff013SThierry Reding - const: padctl 61fb1ff013SThierry Reding 62fb1ff013SThierry Reding avdd-pll-utmip-supply: 63fb1ff013SThierry Reding description: UTMI PLL power supply. Must supply 1.8 V. 64fb1ff013SThierry Reding 65fb1ff013SThierry Reding avdd-pll-uerefe-supply: 66fb1ff013SThierry Reding description: PLLE reference PLL power supply. Must supply 1.05 V. 67fb1ff013SThierry Reding 68fb1ff013SThierry Reding dvdd-pex-pll-supply: 69fb1ff013SThierry Reding description: PCIe/USB3 PLL power supply. Must supply 1.05 V. 70fb1ff013SThierry Reding 71fb1ff013SThierry Reding hvdd-pex-pll-e-supply: 72fb1ff013SThierry Reding description: High-voltage PLLE power supply. Must supply 1.8 V. 73fb1ff013SThierry Reding 74fb1ff013SThierry Reding nvidia,pmc: 75fb1ff013SThierry Reding description: phandle to the Tegra Power Management Controller (PMC) node 76fb1ff013SThierry Reding $ref: /schemas/types.yaml#/definitions/phandle 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 be 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: [ snps, xusb, uart ] 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: [ snps, xusb, uart ] 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: [ snps, xusb, uart ] 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: [ snps, xusb, uart ] 154fb1ff013SThierry Reding 155fb1ff013SThierry Reding hsic: 156fb1ff013SThierry Reding type: object 157fb1ff013SThierry Reding additionalProperties: false 158fb1ff013SThierry Reding properties: 159fb1ff013SThierry Reding clocks: 160fb1ff013SThierry Reding items: 161fb1ff013SThierry Reding - description: HSIC tracking clock 162fb1ff013SThierry Reding 163fb1ff013SThierry Reding clock-names: 164fb1ff013SThierry Reding items: 165fb1ff013SThierry Reding - const: trk 166fb1ff013SThierry Reding 167fb1ff013SThierry Reding lanes: 168fb1ff013SThierry Reding type: object 169fb1ff013SThierry Reding additionalProperties: false 170fb1ff013SThierry Reding properties: 171fb1ff013SThierry Reding hsic-0: 172fb1ff013SThierry Reding type: object 173fb1ff013SThierry Reding additionalProperties: false 174fb1ff013SThierry Reding properties: 175fb1ff013SThierry Reding "#phy-cells": 176fb1ff013SThierry Reding const: 0 177fb1ff013SThierry Reding 178fb1ff013SThierry Reding nvidia,function: 179fb1ff013SThierry Reding description: Function selection for this lane. 180fb1ff013SThierry Reding $ref: /schemas/types.yaml#/definitions/string 181fb1ff013SThierry Reding enum: [ snps, xusb ] 182fb1ff013SThierry Reding 183fb1ff013SThierry Reding hsic-1: 184fb1ff013SThierry Reding type: object 185fb1ff013SThierry Reding additionalProperties: false 186fb1ff013SThierry Reding properties: 187fb1ff013SThierry Reding "#phy-cells": 188fb1ff013SThierry Reding const: 0 189fb1ff013SThierry Reding 190fb1ff013SThierry Reding nvidia,function: 191fb1ff013SThierry Reding description: Function selection for this lane. 192fb1ff013SThierry Reding $ref: /schemas/types.yaml#/definitions/string 193fb1ff013SThierry Reding enum: [ snps, xusb ] 194fb1ff013SThierry Reding 195fb1ff013SThierry Reding pcie: 196fb1ff013SThierry Reding type: object 197fb1ff013SThierry Reding additionalProperties: false 198fb1ff013SThierry Reding properties: 199fb1ff013SThierry Reding clocks: 200fb1ff013SThierry Reding items: 201fb1ff013SThierry Reding - description: PCIe PLL clock source 202fb1ff013SThierry Reding 203fb1ff013SThierry Reding clock-names: 204fb1ff013SThierry Reding items: 205fb1ff013SThierry Reding - const: pll 206fb1ff013SThierry Reding 207fb1ff013SThierry Reding resets: 208fb1ff013SThierry Reding items: 209fb1ff013SThierry Reding - description: PCIe PHY reset 210fb1ff013SThierry Reding 211fb1ff013SThierry Reding reset-names: 212fb1ff013SThierry Reding items: 213fb1ff013SThierry Reding - const: phy 214fb1ff013SThierry Reding 215fb1ff013SThierry Reding lanes: 216fb1ff013SThierry Reding type: object 217fb1ff013SThierry Reding additionalProperties: false 218fb1ff013SThierry Reding properties: 219fb1ff013SThierry Reding pcie-0: 220fb1ff013SThierry Reding type: object 221fb1ff013SThierry Reding additionalProperties: false 222fb1ff013SThierry Reding properties: 223fb1ff013SThierry Reding "#phy-cells": 224fb1ff013SThierry Reding const: 0 225fb1ff013SThierry Reding 226fb1ff013SThierry Reding nvidia,function: 227fb1ff013SThierry Reding description: Function selection for this lane. 228fb1ff013SThierry Reding $ref: /schemas/types.yaml#/definitions/string 229fb1ff013SThierry Reding enum: [ pcie-x1, usb3-ss, pcie-x4 ] 230fb1ff013SThierry Reding 231fb1ff013SThierry Reding pcie-1: 232fb1ff013SThierry Reding type: object 233fb1ff013SThierry Reding additionalProperties: false 234fb1ff013SThierry Reding properties: 235fb1ff013SThierry Reding "#phy-cells": 236fb1ff013SThierry Reding const: 0 237fb1ff013SThierry Reding 238fb1ff013SThierry Reding nvidia,function: 239fb1ff013SThierry Reding description: Function selection for this lane. 240fb1ff013SThierry Reding $ref: /schemas/types.yaml#/definitions/string 241fb1ff013SThierry Reding enum: [ pcie-x1, usb3-ss, pcie-x4 ] 242fb1ff013SThierry Reding 243fb1ff013SThierry Reding pcie-2: 244fb1ff013SThierry Reding type: object 245fb1ff013SThierry Reding additionalProperties: false 246fb1ff013SThierry Reding properties: 247fb1ff013SThierry Reding "#phy-cells": 248fb1ff013SThierry Reding const: 0 249fb1ff013SThierry Reding 250fb1ff013SThierry Reding nvidia,function: 251fb1ff013SThierry Reding description: Function selection for this lane. 252fb1ff013SThierry Reding $ref: /schemas/types.yaml#/definitions/string 253fb1ff013SThierry Reding enum: [ pcie-x1, usb3-ss, pcie-x4 ] 254fb1ff013SThierry Reding 255fb1ff013SThierry Reding pcie-3: 256fb1ff013SThierry Reding type: object 257fb1ff013SThierry Reding additionalProperties: false 258fb1ff013SThierry Reding properties: 259fb1ff013SThierry Reding "#phy-cells": 260fb1ff013SThierry Reding const: 0 261fb1ff013SThierry Reding 262fb1ff013SThierry Reding nvidia,function: 263fb1ff013SThierry Reding description: Function selection for this lane. 264fb1ff013SThierry Reding $ref: /schemas/types.yaml#/definitions/string 265fb1ff013SThierry Reding enum: [ pcie-x1, usb3-ss, pcie-x4 ] 266fb1ff013SThierry Reding 267fb1ff013SThierry Reding pcie-4: 268fb1ff013SThierry Reding type: object 269fb1ff013SThierry Reding additionalProperties: false 270fb1ff013SThierry Reding properties: 271fb1ff013SThierry Reding "#phy-cells": 272fb1ff013SThierry Reding const: 0 273fb1ff013SThierry Reding 274fb1ff013SThierry Reding nvidia,function: 275fb1ff013SThierry Reding description: Function selection for this lane. 276fb1ff013SThierry Reding $ref: /schemas/types.yaml#/definitions/string 277fb1ff013SThierry Reding enum: [ pcie-x1, usb3-ss, pcie-x4 ] 278fb1ff013SThierry Reding 279fb1ff013SThierry Reding pcie-5: 280fb1ff013SThierry Reding type: object 281fb1ff013SThierry Reding additionalProperties: false 282fb1ff013SThierry Reding properties: 283fb1ff013SThierry Reding "#phy-cells": 284fb1ff013SThierry Reding const: 0 285fb1ff013SThierry Reding 286fb1ff013SThierry Reding nvidia,function: 287fb1ff013SThierry Reding description: Function selection for this lane. 288fb1ff013SThierry Reding $ref: /schemas/types.yaml#/definitions/string 289fb1ff013SThierry Reding enum: [ pcie-x1, usb3-ss, pcie-x4 ] 290fb1ff013SThierry Reding 291fb1ff013SThierry Reding pcie-6: 292fb1ff013SThierry Reding type: object 293fb1ff013SThierry Reding additionalProperties: false 294fb1ff013SThierry Reding properties: 295fb1ff013SThierry Reding "#phy-cells": 296fb1ff013SThierry Reding const: 0 297fb1ff013SThierry Reding 298fb1ff013SThierry Reding nvidia,function: 299fb1ff013SThierry Reding description: Function selection for this lane. 300fb1ff013SThierry Reding $ref: /schemas/types.yaml#/definitions/string 301fb1ff013SThierry Reding enum: [ pcie-x1, usb3-ss, pcie-x4 ] 302fb1ff013SThierry Reding 303fb1ff013SThierry Reding sata: 304fb1ff013SThierry Reding type: object 305fb1ff013SThierry Reding additionalProperties: false 306fb1ff013SThierry Reding properties: 307fb1ff013SThierry Reding clocks: 308fb1ff013SThierry Reding items: 309fb1ff013SThierry Reding - description: SATA PLL clock source 310fb1ff013SThierry Reding 311fb1ff013SThierry Reding clock-names: 312fb1ff013SThierry Reding items: 313fb1ff013SThierry Reding - const: pll 314fb1ff013SThierry Reding 315fb1ff013SThierry Reding resets: 316fb1ff013SThierry Reding items: 317fb1ff013SThierry Reding - description: SATA PHY reset 318fb1ff013SThierry Reding 319fb1ff013SThierry Reding reset-names: 320fb1ff013SThierry Reding items: 321fb1ff013SThierry Reding - const: phy 322fb1ff013SThierry Reding 323fb1ff013SThierry Reding lanes: 324fb1ff013SThierry Reding type: object 325fb1ff013SThierry Reding additionalProperties: false 326fb1ff013SThierry Reding properties: 327fb1ff013SThierry Reding sata-0: 328fb1ff013SThierry Reding type: object 329fb1ff013SThierry Reding additionalProperties: false 330fb1ff013SThierry Reding properties: 331fb1ff013SThierry Reding "#phy-cells": 332fb1ff013SThierry Reding const: 0 333fb1ff013SThierry Reding 334fb1ff013SThierry Reding nvidia,function: 335fb1ff013SThierry Reding description: Function selection for this lane. 336fb1ff013SThierry Reding $ref: /schemas/types.yaml#/definitions/string 337fb1ff013SThierry Reding enum: [ usb3-ss, sata ] 338fb1ff013SThierry Reding 339fb1ff013SThierry Reding ports: 340fb1ff013SThierry Reding description: A required child node named "ports" contains a list of 341fb1ff013SThierry Reding subnodes, one for each of the ports exposed by the XUSB pad controller. 342fb1ff013SThierry Reding Each port may need additional resources that can be referenced in its 343fb1ff013SThierry Reding port node. 344fb1ff013SThierry Reding 345fb1ff013SThierry Reding The "status" property is used to enable or disable the use of a port. 346fb1ff013SThierry Reding If set to "disabled", the port will not be used on the given board. In 347fb1ff013SThierry Reding order to use the port, this property must be set to "okay". 348fb1ff013SThierry Reding type: object 349fb1ff013SThierry Reding additionalProperties: false 350fb1ff013SThierry Reding properties: 351fb1ff013SThierry Reding usb2-0: 352fb1ff013SThierry Reding type: object 353fb1ff013SThierry Reding additionalProperties: false 354fb1ff013SThierry Reding properties: 355fb1ff013SThierry Reding # no need to further describe this because the connector will 356fb1ff013SThierry Reding # match on gpio-usb-b-connector or usb-b-connector and cause 357fb1ff013SThierry Reding # that binding to be selected for the subnode 358fb1ff013SThierry Reding connector: 359fb1ff013SThierry Reding type: object 360fb1ff013SThierry Reding 361fb1ff013SThierry Reding mode: 362fb1ff013SThierry Reding description: A string that determines the mode in which to 363fb1ff013SThierry Reding run the port. 364fb1ff013SThierry Reding $ref: /schemas/types.yaml#/definitions/string 365fb1ff013SThierry Reding enum: [ host, peripheral, otg ] 366fb1ff013SThierry Reding 367fb1ff013SThierry Reding nvidia,internal: 368fb1ff013SThierry Reding description: A boolean property whose presence determines 369fb1ff013SThierry Reding that a port is internal. In the absence of this property 370fb1ff013SThierry Reding the port is considered to be external. 371fb1ff013SThierry Reding $ref: /schemas/types.yaml#/definitions/flag 372fb1ff013SThierry Reding 373fb1ff013SThierry Reding usb-role-switch: 374fb1ff013SThierry Reding description: | 375fb1ff013SThierry Reding A boolean property whole presence indicates that the port 376fb1ff013SThierry Reding supports OTG or peripheral mode. If present, the port 377fb1ff013SThierry Reding supports switching between USB host and peripheral roles. 378fb1ff013SThierry Reding A connector must be added as a subnode in that case. 379fb1ff013SThierry Reding 380fb1ff013SThierry Reding See ../connector/usb-connector.yaml. 381fb1ff013SThierry Reding 382fb1ff013SThierry Reding vbus-supply: 383fb1ff013SThierry Reding description: A phandle to the regulator supplying the VBUS 384fb1ff013SThierry Reding voltage. 385fb1ff013SThierry Reding 386fb1ff013SThierry Reding dependencies: 387fb1ff013SThierry Reding usb-role-switch: [ connector ] 388fb1ff013SThierry Reding 389fb1ff013SThierry Reding usb2-1: 390fb1ff013SThierry Reding type: object 391fb1ff013SThierry Reding additionalProperties: false 392fb1ff013SThierry Reding properties: 393fb1ff013SThierry Reding # no need to further describe this because the connector will 394fb1ff013SThierry Reding # match on gpio-usb-b-connector or usb-b-connector and cause 395fb1ff013SThierry Reding # that binding to be selected for the subnode 396fb1ff013SThierry Reding connector: 397fb1ff013SThierry Reding type: object 398fb1ff013SThierry Reding 399fb1ff013SThierry Reding mode: 400fb1ff013SThierry Reding description: A string that determines the mode in which to 401fb1ff013SThierry Reding run the port. 402fb1ff013SThierry Reding $ref: /schemas/types.yaml#/definitions/string 403fb1ff013SThierry Reding enum: [ host, peripheral, otg ] 404fb1ff013SThierry Reding 405fb1ff013SThierry Reding nvidia,internal: 406fb1ff013SThierry Reding description: A boolean property whose presence determines 407fb1ff013SThierry Reding that a port is internal. In the absence of this property 408fb1ff013SThierry Reding the port is considered to be external. 409fb1ff013SThierry Reding $ref: /schemas/types.yaml#/definitions/flag 410fb1ff013SThierry Reding 411fb1ff013SThierry Reding usb-role-switch: 412fb1ff013SThierry Reding description: | 413fb1ff013SThierry Reding A boolean property whole presence indicates that the port 414fb1ff013SThierry Reding supports OTG or peripheral mode. If present, the port 415fb1ff013SThierry Reding supports switching between USB host and peripheral roles. 416fb1ff013SThierry Reding A connector must be added as a subnode in that case. 417fb1ff013SThierry Reding 418fb1ff013SThierry Reding See ../connector/usb-connector.yaml. 419fb1ff013SThierry Reding 420fb1ff013SThierry Reding vbus-supply: 421fb1ff013SThierry Reding description: A phandle to the regulator supplying the VBUS 422fb1ff013SThierry Reding voltage. 423fb1ff013SThierry Reding 424fb1ff013SThierry Reding dependencies: 425fb1ff013SThierry Reding usb-role-switch: [ connector ] 426fb1ff013SThierry Reding 427fb1ff013SThierry Reding usb2-2: 428fb1ff013SThierry Reding type: object 429fb1ff013SThierry Reding additionalProperties: false 430fb1ff013SThierry Reding properties: 431fb1ff013SThierry Reding # no need to further describe this because the connector will 432fb1ff013SThierry Reding # match on gpio-usb-b-connector or usb-b-connector and cause 433fb1ff013SThierry Reding # that binding to be selected for the subnode 434fb1ff013SThierry Reding connector: 435fb1ff013SThierry Reding type: object 436fb1ff013SThierry Reding 437fb1ff013SThierry Reding mode: 438fb1ff013SThierry Reding description: A string that determines the mode in which to 439fb1ff013SThierry Reding run the port. 440fb1ff013SThierry Reding $ref: /schemas/types.yaml#/definitions/string 441fb1ff013SThierry Reding enum: [ host, peripheral, otg ] 442fb1ff013SThierry Reding 443fb1ff013SThierry Reding nvidia,internal: 444fb1ff013SThierry Reding description: A boolean property whose presence determines 445fb1ff013SThierry Reding that a port is internal. In the absence of this property 446fb1ff013SThierry Reding the port is considered to be external. 447fb1ff013SThierry Reding $ref: /schemas/types.yaml#/definitions/flag 448fb1ff013SThierry Reding 449fb1ff013SThierry Reding usb-role-switch: 450fb1ff013SThierry Reding description: | 451fb1ff013SThierry Reding A boolean property whole presence indicates that the port 452fb1ff013SThierry Reding supports OTG or peripheral mode. If present, the port 453fb1ff013SThierry Reding supports switching between USB host and peripheral roles. 454fb1ff013SThierry Reding A connector must be added as a subnode in that case. 455fb1ff013SThierry Reding 456fb1ff013SThierry Reding See ../connector/usb-connector.yaml. 457fb1ff013SThierry Reding 458fb1ff013SThierry Reding vbus-supply: 459fb1ff013SThierry Reding description: A phandle to the regulator supplying the VBUS 460fb1ff013SThierry Reding voltage. 461fb1ff013SThierry Reding 462fb1ff013SThierry Reding dependencies: 463fb1ff013SThierry Reding usb-role-switch: [ connector ] 464fb1ff013SThierry Reding 465fb1ff013SThierry Reding usb2-3: 466fb1ff013SThierry Reding type: object 467fb1ff013SThierry Reding additionalProperties: false 468fb1ff013SThierry Reding properties: 469fb1ff013SThierry Reding # no need to further describe this because the connector will 470fb1ff013SThierry Reding # match on gpio-usb-b-connector or usb-b-connector and cause 471fb1ff013SThierry Reding # that binding to be selected for the subnode 472fb1ff013SThierry Reding connector: 473fb1ff013SThierry Reding type: object 474fb1ff013SThierry Reding 475fb1ff013SThierry Reding mode: 476fb1ff013SThierry Reding description: A string that determines the mode in which to 477fb1ff013SThierry Reding run the port. 478fb1ff013SThierry Reding $ref: /schemas/types.yaml#/definitions/string 479fb1ff013SThierry Reding enum: [ host, peripheral, otg ] 480fb1ff013SThierry Reding 481fb1ff013SThierry Reding nvidia,internal: 482fb1ff013SThierry Reding description: A boolean property whose presence determines 483fb1ff013SThierry Reding that a port is internal. In the absence of this property 484fb1ff013SThierry Reding the port is considered to be external. 485fb1ff013SThierry Reding $ref: /schemas/types.yaml#/definitions/flag 486fb1ff013SThierry Reding 487fb1ff013SThierry Reding usb-role-switch: 488fb1ff013SThierry Reding description: | 489fb1ff013SThierry Reding A boolean property whole presence indicates that the port 490fb1ff013SThierry Reding supports OTG or peripheral mode. If present, the port 491fb1ff013SThierry Reding supports switching between USB host and peripheral roles. 492fb1ff013SThierry Reding A connector must be added as a subnode in that case. 493fb1ff013SThierry Reding 494fb1ff013SThierry Reding See ../connector/usb-connector.yaml. 495fb1ff013SThierry Reding 496fb1ff013SThierry Reding vbus-supply: 497fb1ff013SThierry Reding description: A phandle to the regulator supplying the VBUS 498fb1ff013SThierry Reding voltage. 499fb1ff013SThierry Reding 500fb1ff013SThierry Reding dependencies: 501fb1ff013SThierry Reding usb-role-switch: [ connector ] 502fb1ff013SThierry Reding 503fb1ff013SThierry Reding hsic-0: 504fb1ff013SThierry Reding type: object 505fb1ff013SThierry Reding additionalProperties: false 506fb1ff013SThierry Reding properties: 507fb1ff013SThierry Reding vbus-supply: 508fb1ff013SThierry Reding description: A phandle to the regulator supplying the VBUS 509fb1ff013SThierry Reding voltage. 510fb1ff013SThierry Reding 511fb1ff013SThierry Reding hsic-1: 512fb1ff013SThierry Reding type: object 513fb1ff013SThierry Reding additionalProperties: false 514fb1ff013SThierry Reding properties: 515fb1ff013SThierry Reding vbus-supply: 516fb1ff013SThierry Reding description: A phandle to the regulator supplying the VBUS 517fb1ff013SThierry Reding voltage. 518fb1ff013SThierry Reding 519fb1ff013SThierry Reding usb3-0: 520fb1ff013SThierry Reding type: object 521fb1ff013SThierry Reding additionalProperties: false 522fb1ff013SThierry Reding properties: 523fb1ff013SThierry Reding nvidia,internal: 524fb1ff013SThierry Reding description: A boolean property whose presence determines 525fb1ff013SThierry Reding that a port is internal. In the absence of this property 526fb1ff013SThierry Reding the port is considered to be external. 527fb1ff013SThierry Reding $ref: /schemas/types.yaml#/definitions/flag 528fb1ff013SThierry Reding 529fb1ff013SThierry Reding nvidia,usb2-companion: 530fb1ff013SThierry Reding description: A single cell that specifies the physical port 531fb1ff013SThierry Reding number to map this super-speed USB port to. The range of 532fb1ff013SThierry Reding valid port numbers varies with the SoC generation. 533fb1ff013SThierry Reding $ref: /schemas/types.yaml#/definitions/uint32 534fb1ff013SThierry Reding enum: [ 0, 1, 2, 3 ] 535fb1ff013SThierry Reding 536fb1ff013SThierry Reding vbus-supply: 537fb1ff013SThierry Reding description: A phandle to the regulator supplying the VBUS 538fb1ff013SThierry Reding voltage. 539fb1ff013SThierry Reding 540fb1ff013SThierry Reding usb3-1: 541fb1ff013SThierry Reding type: object 542fb1ff013SThierry Reding additionalProperties: false 543fb1ff013SThierry Reding properties: 544fb1ff013SThierry Reding nvidia,internal: 545fb1ff013SThierry Reding description: A boolean property whose presence determines 546fb1ff013SThierry Reding that a port is internal. In the absence of this property 547fb1ff013SThierry Reding the port is considered to be external. 548fb1ff013SThierry Reding $ref: /schemas/types.yaml#/definitions/flag 549fb1ff013SThierry Reding 550fb1ff013SThierry Reding nvidia,usb2-companion: 551fb1ff013SThierry Reding description: A single cell that specifies the physical port 552fb1ff013SThierry Reding number to map this super-speed USB port to. The range of 553fb1ff013SThierry Reding valid port numbers varies with the SoC generation. 554fb1ff013SThierry Reding $ref: /schemas/types.yaml#/definitions/uint32 555fb1ff013SThierry Reding enum: [ 0, 1, 2, 3 ] 556fb1ff013SThierry Reding 557fb1ff013SThierry Reding vbus-supply: 558fb1ff013SThierry Reding description: A phandle to the regulator supplying the VBUS 559fb1ff013SThierry Reding voltage. 560fb1ff013SThierry Reding 561fb1ff013SThierry Reding usb3-2: 562fb1ff013SThierry Reding type: object 563fb1ff013SThierry Reding additionalProperties: false 564fb1ff013SThierry Reding properties: 565fb1ff013SThierry Reding nvidia,internal: 566fb1ff013SThierry Reding description: A boolean property whose presence determines 567fb1ff013SThierry Reding that a port is internal. In the absence of this property 568fb1ff013SThierry Reding the port is considered to be external. 569fb1ff013SThierry Reding $ref: /schemas/types.yaml#/definitions/flag 570fb1ff013SThierry Reding 571fb1ff013SThierry Reding nvidia,usb2-companion: 572fb1ff013SThierry Reding description: A single cell that specifies the physical port 573fb1ff013SThierry Reding number to map this super-speed USB port to. The range of 574fb1ff013SThierry Reding valid port numbers varies with the SoC generation. 575fb1ff013SThierry Reding $ref: /schemas/types.yaml#/definitions/uint32 576fb1ff013SThierry Reding enum: [ 0, 1, 2, 3 ] 577fb1ff013SThierry Reding 578fb1ff013SThierry Reding vbus-supply: 579fb1ff013SThierry Reding description: A phandle to the regulator supplying the VBUS 580fb1ff013SThierry Reding voltage. 581fb1ff013SThierry Reding 582fb1ff013SThierry Reding usb3-3: 583fb1ff013SThierry Reding type: object 584fb1ff013SThierry Reding additionalProperties: false 585fb1ff013SThierry Reding properties: 586fb1ff013SThierry Reding nvidia,internal: 587fb1ff013SThierry Reding description: A boolean property whose presence determines 588fb1ff013SThierry Reding that a port is internal. In the absence of this property 589fb1ff013SThierry Reding the port is considered to be external. 590fb1ff013SThierry Reding $ref: /schemas/types.yaml#/definitions/flag 591fb1ff013SThierry Reding 592fb1ff013SThierry Reding nvidia,usb2-companion: 593fb1ff013SThierry Reding description: A single cell that specifies the physical port 594fb1ff013SThierry Reding number to map this super-speed USB port to. The range of 595fb1ff013SThierry Reding valid port numbers varies with the SoC generation. 596fb1ff013SThierry Reding $ref: /schemas/types.yaml#/definitions/uint32 597fb1ff013SThierry Reding enum: [ 0, 1, 2, 3 ] 598fb1ff013SThierry Reding 599fb1ff013SThierry Reding vbus-supply: 600fb1ff013SThierry Reding description: A phandle to the regulator supplying the VBUS 601fb1ff013SThierry Reding voltage. 602fb1ff013SThierry Reding 603fb1ff013SThierry RedingadditionalProperties: false 604fb1ff013SThierry Reding 605fb1ff013SThierry Redingrequired: 606fb1ff013SThierry Reding - avdd-pll-utmip-supply 607fb1ff013SThierry Reding - avdd-pll-uerefe-supply 608fb1ff013SThierry Reding - dvdd-pex-pll-supply 609fb1ff013SThierry Reding - hvdd-pex-pll-e-supply 610fb1ff013SThierry Reding 611fb1ff013SThierry Redingexamples: 612fb1ff013SThierry Reding - | 613fb1ff013SThierry Reding #include <dt-bindings/clock/tegra210-car.h> 614fb1ff013SThierry Reding #include <dt-bindings/gpio/tegra-gpio.h> 615fb1ff013SThierry Reding #include <dt-bindings/interrupt-controller/arm-gic.h> 616fb1ff013SThierry Reding 617fb1ff013SThierry Reding padctl@7009f000 { 618fb1ff013SThierry Reding compatible = "nvidia,tegra210-xusb-padctl"; 619fb1ff013SThierry Reding reg = <0x7009f000 0x1000>; 620fb1ff013SThierry Reding interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>; 621fb1ff013SThierry Reding resets = <&tegra_car 142>; 622fb1ff013SThierry Reding reset-names = "padctl"; 623fb1ff013SThierry Reding 624fb1ff013SThierry Reding avdd-pll-utmip-supply = <&vdd_1v8>; 625fb1ff013SThierry Reding avdd-pll-uerefe-supply = <&vdd_pex_1v05>; 626fb1ff013SThierry Reding dvdd-pex-pll-supply = <&vdd_pex_1v05>; 627fb1ff013SThierry Reding hvdd-pex-pll-e-supply = <&vdd_1v8>; 628fb1ff013SThierry Reding 629fb1ff013SThierry Reding pads { 630fb1ff013SThierry Reding usb2 { 631fb1ff013SThierry Reding clocks = <&tegra_car TEGRA210_CLK_USB2_TRK>; 632fb1ff013SThierry Reding clock-names = "trk"; 633fb1ff013SThierry Reding 634fb1ff013SThierry Reding lanes { 635fb1ff013SThierry Reding usb2-0 { 636fb1ff013SThierry Reding nvidia,function = "xusb"; 637fb1ff013SThierry Reding #phy-cells = <0>; 638fb1ff013SThierry Reding }; 639fb1ff013SThierry Reding 640fb1ff013SThierry Reding usb2-1 { 641fb1ff013SThierry Reding nvidia,function = "xusb"; 642fb1ff013SThierry Reding #phy-cells = <0>; 643fb1ff013SThierry Reding }; 644fb1ff013SThierry Reding 645fb1ff013SThierry Reding usb2-2 { 646fb1ff013SThierry Reding nvidia,function = "xusb"; 647fb1ff013SThierry Reding #phy-cells = <0>; 648fb1ff013SThierry Reding }; 649fb1ff013SThierry Reding 650fb1ff013SThierry Reding usb2-3 { 651fb1ff013SThierry Reding nvidia,function = "xusb"; 652fb1ff013SThierry Reding #phy-cells = <0>; 653fb1ff013SThierry Reding }; 654fb1ff013SThierry Reding }; 655fb1ff013SThierry Reding }; 656fb1ff013SThierry Reding 657fb1ff013SThierry Reding hsic { 658fb1ff013SThierry Reding clocks = <&tegra_car TEGRA210_CLK_HSIC_TRK>; 659fb1ff013SThierry Reding clock-names = "trk"; 660fb1ff013SThierry Reding status = "disabled"; 661fb1ff013SThierry Reding 662fb1ff013SThierry Reding lanes { 663fb1ff013SThierry Reding hsic-0 { 664fb1ff013SThierry Reding status = "disabled"; 665fb1ff013SThierry Reding #phy-cells = <0>; 666fb1ff013SThierry Reding }; 667fb1ff013SThierry Reding 668fb1ff013SThierry Reding hsic-1 { 669fb1ff013SThierry Reding status = "disabled"; 670fb1ff013SThierry Reding #phy-cells = <0>; 671fb1ff013SThierry Reding }; 672fb1ff013SThierry Reding }; 673fb1ff013SThierry Reding }; 674fb1ff013SThierry Reding 675fb1ff013SThierry Reding pcie { 676fb1ff013SThierry Reding clocks = <&tegra_car TEGRA210_CLK_PLL_E>; 677fb1ff013SThierry Reding clock-names = "pll"; 678fb1ff013SThierry Reding resets = <&tegra_car 205>; 679fb1ff013SThierry Reding reset-names = "phy"; 680fb1ff013SThierry Reding 681fb1ff013SThierry Reding lanes { 682fb1ff013SThierry Reding pcie-0 { 683fb1ff013SThierry Reding nvidia,function = "pcie-x1"; 684fb1ff013SThierry Reding #phy-cells = <0>; 685fb1ff013SThierry Reding }; 686fb1ff013SThierry Reding 687fb1ff013SThierry Reding pcie-1 { 688fb1ff013SThierry Reding nvidia,function = "pcie-x4"; 689fb1ff013SThierry Reding #phy-cells = <0>; 690fb1ff013SThierry Reding }; 691fb1ff013SThierry Reding 692fb1ff013SThierry Reding pcie-2 { 693fb1ff013SThierry Reding nvidia,function = "pcie-x4"; 694fb1ff013SThierry Reding #phy-cells = <0>; 695fb1ff013SThierry Reding }; 696fb1ff013SThierry Reding 697fb1ff013SThierry Reding pcie-3 { 698fb1ff013SThierry Reding nvidia,function = "pcie-x4"; 699fb1ff013SThierry Reding #phy-cells = <0>; 700fb1ff013SThierry Reding }; 701fb1ff013SThierry Reding 702fb1ff013SThierry Reding pcie-4 { 703fb1ff013SThierry Reding nvidia,function = "pcie-x4"; 704fb1ff013SThierry Reding #phy-cells = <0>; 705fb1ff013SThierry Reding }; 706fb1ff013SThierry Reding 707fb1ff013SThierry Reding pcie-5 { 708fb1ff013SThierry Reding nvidia,function = "usb3-ss"; 709fb1ff013SThierry Reding #phy-cells = <0>; 710fb1ff013SThierry Reding }; 711fb1ff013SThierry Reding 712fb1ff013SThierry Reding pcie-6 { 713fb1ff013SThierry Reding nvidia,function = "usb3-ss"; 714fb1ff013SThierry Reding #phy-cells = <0>; 715fb1ff013SThierry Reding }; 716fb1ff013SThierry Reding }; 717fb1ff013SThierry Reding }; 718fb1ff013SThierry Reding 719fb1ff013SThierry Reding sata { 720fb1ff013SThierry Reding clocks = <&tegra_car TEGRA210_CLK_PLL_E>; 721fb1ff013SThierry Reding clock-names = "pll"; 722fb1ff013SThierry Reding resets = <&tegra_car 204>; 723fb1ff013SThierry Reding reset-names = "phy"; 724fb1ff013SThierry Reding 725fb1ff013SThierry Reding lanes { 726fb1ff013SThierry Reding sata-0 { 727fb1ff013SThierry Reding nvidia,function = "sata"; 728fb1ff013SThierry Reding #phy-cells = <0>; 729fb1ff013SThierry Reding }; 730fb1ff013SThierry Reding }; 731fb1ff013SThierry Reding }; 732fb1ff013SThierry Reding }; 733fb1ff013SThierry Reding 734fb1ff013SThierry Reding ports { 735fb1ff013SThierry Reding usb2-0 { 736fb1ff013SThierry Reding mode = "peripheral"; 737fb1ff013SThierry Reding usb-role-switch; 738fb1ff013SThierry Reding 739fb1ff013SThierry Reding connector { 740fb1ff013SThierry Reding compatible = "gpio-usb-b-connector", 741fb1ff013SThierry Reding "usb-b-connector"; 742fb1ff013SThierry Reding label = "micro-USB"; 743fb1ff013SThierry Reding type = "micro"; 744fb1ff013SThierry Reding vbus-gpios = <&gpio TEGRA_GPIO(CC, 4) GPIO_ACTIVE_LOW>; 745fb1ff013SThierry Reding }; 746fb1ff013SThierry Reding }; 747fb1ff013SThierry Reding 748fb1ff013SThierry Reding usb2-1 { 749fb1ff013SThierry Reding vbus-supply = <&vdd_5v0_rtl>; 750fb1ff013SThierry Reding mode = "host"; 751fb1ff013SThierry Reding }; 752fb1ff013SThierry Reding 753fb1ff013SThierry Reding usb2-2 { 754fb1ff013SThierry Reding vbus-supply = <&vdd_usb_vbus>; 755fb1ff013SThierry Reding mode = "host"; 756fb1ff013SThierry Reding }; 757fb1ff013SThierry Reding 758fb1ff013SThierry Reding usb2-3 { 759fb1ff013SThierry Reding mode = "host"; 760fb1ff013SThierry Reding }; 761fb1ff013SThierry Reding 762fb1ff013SThierry Reding hsic-0 { 763fb1ff013SThierry Reding status = "disabled"; 764fb1ff013SThierry Reding }; 765fb1ff013SThierry Reding 766fb1ff013SThierry Reding hsic-1 { 767fb1ff013SThierry Reding status = "disabled"; 768fb1ff013SThierry Reding }; 769fb1ff013SThierry Reding 770fb1ff013SThierry Reding usb3-0 { 771fb1ff013SThierry Reding nvidia,usb2-companion = <1>; 772fb1ff013SThierry Reding }; 773fb1ff013SThierry Reding 774fb1ff013SThierry Reding usb3-1 { 775fb1ff013SThierry Reding nvidia,usb2-companion = <2>; 776fb1ff013SThierry Reding }; 777fb1ff013SThierry Reding 778fb1ff013SThierry Reding usb3-2 { 779fb1ff013SThierry Reding status = "disabled"; 780fb1ff013SThierry Reding }; 781fb1ff013SThierry Reding 782fb1ff013SThierry Reding usb3-3 { 783fb1ff013SThierry Reding status = "disabled"; 784fb1ff013SThierry Reding }; 785fb1ff013SThierry Reding }; 786fb1ff013SThierry Reding }; 787