1# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) 2%YAML 1.2 3--- 4$id: "http://devicetree.org/schemas/usb/nvidia,tegra-xudc.yaml#" 5$schema: "http://devicetree.org/meta-schemas/core.yaml#" 6 7title: Device tree binding for NVIDIA Tegra XUSB device mode controller (XUDC) 8 9description: 10 The Tegra XUDC controller supports both USB 2.0 HighSpeed/FullSpeed and 11 USB 3.0 SuperSpeed protocols. 12 13maintainers: 14 - Nagarjuna Kristam <nkristam@nvidia.com> 15 - JC Kuo <jckuo@nvidia.com> 16 - Thierry Reding <treding@nvidia.com> 17 18properties: 19 compatible: 20 items: 21 - enum: 22 - nvidia,tegra210-xudc # For Tegra210 23 - nvidia,tegra186-xudc # For Tegra186 24 - nvidia,tegra194-xudc # For Tegra194 25 26 reg: 27 minItems: 2 28 maxItems: 3 29 items: 30 - description: XUSB device controller registers 31 - description: XUSB device PCI Config registers 32 - description: XUSB device registers. 33 34 reg-names: 35 minItems: 2 36 maxItems: 3 37 items: 38 - const: base 39 - const: fpci 40 - const: ipfs 41 42 interrupts: 43 maxItems: 1 44 description: Must contain the XUSB device interrupt. 45 46 clocks: 47 minItems: 4 48 maxItems: 5 49 items: 50 - description: Clock to enable core XUSB dev clock. 51 - description: Clock to enable XUSB super speed clock. 52 - description: Clock to enable XUSB super speed dev clock. 53 - description: Clock to enable XUSB high speed dev clock. 54 - description: Clock to enable XUSB full speed dev clock. 55 56 clock-names: 57 minItems: 4 58 maxItems: 5 59 items: 60 - const: dev 61 - const: ss 62 - const: ss_src 63 - const: fs_src 64 - const: hs_src 65 66 power-domains: 67 items: 68 - description: XUSBB(device) power-domain 69 - description: XUSBA(superspeed) power-domain 70 71 power-domain-names: 72 items: 73 - const: dev 74 - const: ss 75 76 nvidia,xusb-padctl: 77 $ref: /schemas/types.yaml#/definitions/phandle-array 78 description: 79 phandle to the XUSB pad controller that is used to configure the USB pads 80 used by the XUDC controller. 81 82 phys: 83 minItems: 1 84 description: 85 Must contain an entry for each entry in phy-names. 86 See ../phy/phy-bindings.txt for details. 87 88 phy-names: 89 minItems: 1 90 items: 91 - const: usb2-0 92 - const: usb2-1 93 - const: usb2-2 94 - const: usb2-3 95 - const: usb3-0 96 - const: usb3-1 97 - const: usb3-2 98 - const: usb3-3 99 100 avddio-usb-supply: 101 description: PCIe/USB3 analog logic power supply. Must supply 1.05 V. 102 103 hvdd-usb-supply: 104 description: USB controller power supply. Must supply 3.3 V. 105 106required: 107 - compatible 108 - reg 109 - reg-names 110 - interrupts 111 - clocks 112 - clock-names 113 - power-domains 114 - power-domain-names 115 - nvidia,xusb-padctl 116 - phys 117 - phy-names 118 119allOf: 120 - if: 121 properties: 122 compatible: 123 contains: 124 enum: 125 - nvidia,tegra210-xudc 126 then: 127 properties: 128 reg: 129 minItems: 3 130 reg-names: 131 minItems: 3 132 clocks: 133 minItems: 5 134 clock-names: 135 minItems: 5 136 required: 137 - avddio-usb-supply 138 - hvdd-usb-supply 139 140 - if: 141 properties: 142 compatible: 143 contains: 144 enum: 145 - nvidia,tegra186-xudc 146 - nvidia,tegra194-xudc 147 then: 148 properties: 149 reg: 150 maxItems: 2 151 reg-names: 152 maxItems: 2 153 clocks: 154 maxItems: 4 155 clock-names: 156 maxItems: 4 157 158examples: 159 - | 160 #include <dt-bindings/clock/tegra210-car.h> 161 #include <dt-bindings/gpio/tegra-gpio.h> 162 #include <dt-bindings/interrupt-controller/arm-gic.h> 163 164 usb@700d0000 { 165 compatible = "nvidia,tegra210-xudc"; 166 reg = <0x700d0000 0x8000>, 167 <0x700d8000 0x1000>, 168 <0x700d9000 0x1000>; 169 reg-names = "base", "fpci", "ipfs"; 170 171 interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>; 172 173 clocks = <&tegra_car TEGRA210_CLK_XUSB_DEV>, 174 <&tegra_car TEGRA210_CLK_XUSB_SS>, 175 <&tegra_car TEGRA210_CLK_XUSB_SSP_SRC>, 176 <&tegra_car TEGRA210_CLK_XUSB_FS_SRC>, 177 <&tegra_car TEGRA210_CLK_XUSB_HS_SRC>; 178 clock-names = "dev", "ss", "ss_src", "fs_src", "hs_src"; 179 180 power-domains = <&pd_xusbdev>, <&pd_xusbss>; 181 power-domain-names = "dev", "ss"; 182 183 nvidia,xusb-padctl = <&padctl>; 184 185 phys = <µ_b>; 186 phy-names = "usb2-0"; 187 188 avddio-usb-supply = <&vdd_pex_1v05>; 189 hvdd-usb-supply = <&vdd_3v3_sys>; 190 }; 191