212 lines · yaml
1# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)2%YAML 1.23---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 and11 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 Tegra21023 - nvidia,tegra186-xudc # For Tegra18624 - nvidia,tegra194-xudc # For Tegra19425 - nvidia,tegra234-xudc # For Tegra23426 27 reg:28 minItems: 229 items:30 - description: XUSB device controller registers31 - description: XUSB device PCI Config registers32 - description: XUSB device registers.33 34 reg-names:35 minItems: 236 items:37 - const: base38 - const: fpci39 - const: ipfs40 41 interrupts:42 maxItems: 143 description: Must contain the XUSB device interrupt.44 45 clocks:46 minItems: 447 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: 456 items:57 - const: dev58 - const: ss59 - const: ss_src60 - const: fs_src61 - const: hs_src62 63 interconnects:64 items:65 - description: memory read client66 - description: memory write client67 68 interconnect-names:69 items:70 - const: dma-mem # read71 - const: write72 73 iommus:74 maxItems: 175 76 power-domains:77 items:78 - description: XUSBB(device) power-domain79 - description: XUSBA(superspeed) power-domain80 81 power-domain-names:82 items:83 - const: dev84 - const: ss85 86 nvidia,xusb-padctl:87 $ref: /schemas/types.yaml#/definitions/phandle88 description:89 phandle to the XUSB pad controller that is used to configure the USB pads90 used by the XUDC controller.91 92 phys:93 minItems: 194 maxItems: 295 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: 1101 items:102 - const: usb2-0103 - const: usb3-0104 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: true112 113required:114 - compatible115 - reg116 - reg-names117 - interrupts118 - clocks119 - clock-names120 - power-domains121 - power-domain-names122 - nvidia,xusb-padctl123 - phys124 - phy-names125 126allOf:127 - if:128 properties:129 compatible:130 contains:131 enum:132 - nvidia,tegra210-xudc133 then:134 properties:135 reg:136 minItems: 3137 reg-names:138 minItems: 3139 clocks:140 minItems: 5141 clock-names:142 minItems: 5143 required:144 - avddio-usb-supply145 - hvdd-usb-supply146 147 - if:148 properties:149 compatible:150 contains:151 enum:152 - nvidia,tegra186-xudc153 - nvidia,tegra194-xudc154 - nvidia,tegra234-xudc155 then:156 properties:157 reg:158 maxItems: 2159 reg-names:160 maxItems: 2161 clocks:162 maxItems: 4163 clock-names:164 maxItems: 4165 166 - if:167 properties:168 compatible:169 contains:170 enum:171 - nvidia,tegra194-xudc172 - nvidia,tegra234-xudc173 then:174 required:175 - dma-coherent176 177additionalProperties: false178 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