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: 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 - nvidia,tegra234-xudc # For Tegra234 26 27 reg: 28 minItems: 2 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 items: 37 - const: base 38 - const: fpci 39 - const: ipfs 40 41 interrupts: 42 maxItems: 1 43 description: Must contain the XUSB device interrupt. 44 45 clocks: 46 minItems: 4 47 items: 48 - description: Clock to enable core XUSB dev clock. 49 - description: Clock to enable XUSB super speed clock. 50 - description: Clock to enable XUSB super speed dev clock. 51 - description: Clock to enable XUSB high speed dev clock. 52 - description: Clock to enable XUSB full speed dev clock. 53 54 clock-names: 55 minItems: 4 56 items: 57 - const: dev 58 - const: ss 59 - const: ss_src 60 - const: fs_src 61 - const: hs_src 62 63 interconnects: 64 items: 65 - description: memory read client 66 - description: memory write client 67 68 interconnect-names: 69 items: 70 - const: dma-mem # read 71 - const: write 72 73 iommus: 74 maxItems: 1 75 76 power-domains: 77 items: 78 - description: XUSBB(device) power-domain 79 - description: XUSBA(superspeed) power-domain 80 81 power-domain-names: 82 items: 83 - const: dev 84 - const: ss 85 86 nvidia,xusb-padctl: 87 $ref: /schemas/types.yaml#/definitions/phandle 88 description: 89 phandle to the XUSB pad controller that is used to configure the USB pads 90 used by the XUDC controller. 91 92 phys: 93 minItems: 1 94 maxItems: 2 95 description: 96 Must contain an entry for each entry in phy-names. 97 See ../phy/phy-bindings.txt for details. 98 99 phy-names: 100 minItems: 1 101 items: 102 - const: usb2-0 103 - const: usb3-0 104 105 avddio-usb-supply: 106 description: PCIe/USB3 analog logic power supply. Must supply 1.05 V. 107 108 hvdd-usb-supply: 109 description: USB controller power supply. Must supply 3.3 V. 110 111 dma-coherent: true 112 113required: 114 - compatible 115 - reg 116 - reg-names 117 - interrupts 118 - clocks 119 - clock-names 120 - power-domains 121 - power-domain-names 122 - nvidia,xusb-padctl 123 - phys 124 - phy-names 125 126allOf: 127 - if: 128 properties: 129 compatible: 130 contains: 131 enum: 132 - nvidia,tegra210-xudc 133 then: 134 properties: 135 reg: 136 minItems: 3 137 reg-names: 138 minItems: 3 139 clocks: 140 minItems: 5 141 clock-names: 142 minItems: 5 143 required: 144 - avddio-usb-supply 145 - hvdd-usb-supply 146 147 - if: 148 properties: 149 compatible: 150 contains: 151 enum: 152 - nvidia,tegra186-xudc 153 - nvidia,tegra194-xudc 154 - nvidia,tegra234-xudc 155 then: 156 properties: 157 reg: 158 maxItems: 2 159 reg-names: 160 maxItems: 2 161 clocks: 162 maxItems: 4 163 clock-names: 164 maxItems: 4 165 166 - if: 167 properties: 168 compatible: 169 contains: 170 enum: 171 - nvidia,tegra194-xudc 172 - nvidia,tegra234-xudc 173 then: 174 required: 175 - dma-coherent 176 177additionalProperties: false 178 179examples: 180 - | 181 #include <dt-bindings/clock/tegra210-car.h> 182 #include <dt-bindings/gpio/tegra-gpio.h> 183 #include <dt-bindings/interrupt-controller/arm-gic.h> 184 185 usb@700d0000 { 186 compatible = "nvidia,tegra210-xudc"; 187 reg = <0x700d0000 0x8000>, 188 <0x700d8000 0x1000>, 189 <0x700d9000 0x1000>; 190 reg-names = "base", "fpci", "ipfs"; 191 192 interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>; 193 194 clocks = <&tegra_car TEGRA210_CLK_XUSB_DEV>, 195 <&tegra_car TEGRA210_CLK_XUSB_SS>, 196 <&tegra_car TEGRA210_CLK_XUSB_SSP_SRC>, 197 <&tegra_car TEGRA210_CLK_XUSB_FS_SRC>, 198 <&tegra_car TEGRA210_CLK_XUSB_HS_SRC>; 199 clock-names = "dev", "ss", "ss_src", "fs_src", "hs_src"; 200 201 power-domains = <&pd_xusbdev>, <&pd_xusbss>; 202 power-domain-names = "dev", "ss"; 203 204 nvidia,xusb-padctl = <&padctl>; 205 206 phys = <µ_b>; 207 phy-names = "usb2-0"; 208 209 avddio-usb-supply = <&vdd_pex_1v05>; 210 hvdd-usb-supply = <&vdd_3v3_sys>; 211 }; 212