1NVIDIA Tegra PCIe controller 2 3Required properties: 4- compatible: Must be: 5 - "nvidia,tegra20-pcie": for Tegra20 6 - "nvidia,tegra30-pcie": for Tegra30 7 - "nvidia,tegra124-pcie": for Tegra124 and Tegra132 8 - "nvidia,tegra210-pcie": for Tegra210 9 - "nvidia,tegra186-pcie": for Tegra186 10- power-domains: To ungate power partition by BPMP powergate driver. Must 11 contain BPMP phandle and PCIe power partition ID. This is required only 12 for Tegra186. 13- device_type: Must be "pci" 14- reg: A list of physical base address and length for each set of controller 15 registers. Must contain an entry for each entry in the reg-names property. 16- reg-names: Must include the following entries: 17 "pads": PADS registers 18 "afi": AFI registers 19 "cs": configuration space region 20- interrupts: A list of interrupt outputs of the controller. Must contain an 21 entry for each entry in the interrupt-names property. 22- interrupt-names: Must include the following entries: 23 "intr": The Tegra interrupt that is asserted for controller interrupts 24 "msi": The Tegra interrupt that is asserted when an MSI is received 25- bus-range: Range of bus numbers associated with this controller 26- #address-cells: Address representation for root ports (must be 3) 27 - cell 0 specifies the bus and device numbers of the root port: 28 [23:16]: bus number 29 [15:11]: device number 30 - cell 1 denotes the upper 32 address bits and should be 0 31 - cell 2 contains the lower 32 address bits and is used to translate to the 32 CPU address space 33- #size-cells: Size representation for root ports (must be 2) 34- ranges: Describes the translation of addresses for root ports and standard 35 PCI regions. The entries must be 6 cells each, where the first three cells 36 correspond to the address as described for the #address-cells property 37 above, the fourth cell is the physical CPU address to translate to and the 38 fifth and six cells are as described for the #size-cells property above. 39 - The first two entries are expected to translate the addresses for the root 40 port registers, which are referenced by the assigned-addresses property of 41 the root port nodes (see below). 42 - The remaining entries setup the mapping for the standard I/O, memory and 43 prefetchable PCI regions. The first cell determines the type of region 44 that is setup: 45 - 0x81000000: I/O memory region 46 - 0x82000000: non-prefetchable memory region 47 - 0xc2000000: prefetchable memory region 48 Please refer to the standard PCI bus binding document for a more detailed 49 explanation. 50- #interrupt-cells: Size representation for interrupts (must be 1) 51- interrupt-map-mask and interrupt-map: Standard PCI IRQ mapping properties 52 Please refer to the standard PCI bus binding document for a more detailed 53 explanation. 54- clocks: Must contain an entry for each entry in clock-names. 55 See ../clocks/clock-bindings.txt for details. 56- clock-names: Must include the following entries: 57 - pex 58 - afi 59 - pll_e 60 - cml (not required for Tegra20) 61- resets: Must contain an entry for each entry in reset-names. 62 See ../reset/reset.txt for details. 63- reset-names: Must include the following entries: 64 - pex 65 - afi 66 - pcie_x 67 68Required properties on Tegra124 and later (deprecated): 69- phys: Must contain an entry for each entry in phy-names. 70- phy-names: Must include the following entries: 71 - pcie 72 73These properties are deprecated in favour of per-lane PHYs define in each of 74the root ports (see below). 75 76Power supplies for Tegra20: 77- avdd-pex-supply: Power supply for analog PCIe logic. Must supply 1.05 V. 78- vdd-pex-supply: Power supply for digital PCIe I/O. Must supply 1.05 V. 79- avdd-pex-pll-supply: Power supply for dedicated (internal) PCIe PLL. Must 80 supply 1.05 V. 81- avdd-plle-supply: Power supply for PLLE, which is shared with SATA. Must 82 supply 1.05 V. 83- vddio-pex-clk-supply: Power supply for PCIe clock. Must supply 3.3 V. 84 85Power supplies for Tegra30: 86- Required: 87 - avdd-pex-pll-supply: Power supply for dedicated (internal) PCIe PLL. Must 88 supply 1.05 V. 89 - avdd-plle-supply: Power supply for PLLE, which is shared with SATA. Must 90 supply 1.05 V. 91 - vddio-pex-ctl-supply: Power supply for PCIe control I/O partition. Must 92 supply 1.8 V. 93 - hvdd-pex-supply: High-voltage supply for PCIe I/O and PCIe output clocks. 94 Must supply 3.3 V. 95- Optional: 96 - If lanes 0 to 3 are used: 97 - avdd-pexa-supply: Power supply for analog PCIe logic. Must supply 1.05 V. 98 - vdd-pexa-supply: Power supply for digital PCIe I/O. Must supply 1.05 V. 99 - If lanes 4 or 5 are used: 100 - avdd-pexb-supply: Power supply for analog PCIe logic. Must supply 1.05 V. 101 - vdd-pexb-supply: Power supply for digital PCIe I/O. Must supply 1.05 V. 102 103Power supplies for Tegra124: 104- Required: 105 - avddio-pex-supply: Power supply for analog PCIe logic. Must supply 1.05 V. 106 - dvddio-pex-supply: Power supply for digital PCIe I/O. Must supply 1.05 V. 107 - avdd-pex-pll-supply: Power supply for dedicated (internal) PCIe PLL. Must 108 supply 1.05 V. 109 - hvdd-pex-supply: High-voltage supply for PCIe I/O and PCIe output clocks. 110 Must supply 3.3 V. 111 - hvdd-pex-pll-e-supply: High-voltage supply for PLLE (shared with USB3). 112 Must supply 3.3 V. 113 - vddio-pex-ctl-supply: Power supply for PCIe control I/O partition. Must 114 supply 2.8-3.3 V. 115 - avdd-pll-erefe-supply: Power supply for PLLE (shared with USB3). Must 116 supply 1.05 V. 117 118Power supplies for Tegra210: 119- Required: 120 - avdd-pll-uerefe-supply: Power supply for PLLE (shared with USB3). Must 121 supply 1.05 V. 122 - hvddio-pex-supply: High-voltage supply for PCIe I/O and PCIe output 123 clocks. Must supply 1.8 V. 124 - dvddio-pex-supply: Power supply for digital PCIe I/O. Must supply 1.05 V. 125 - dvdd-pex-pll-supply: Power supply for dedicated (internal) PCIe PLL. Must 126 supply 1.05 V. 127 - hvdd-pex-pll-e-supply: High-voltage supply for PLLE (shared with USB3). 128 Must supply 3.3 V. 129 - vddio-pex-ctl-supply: Power supply for PCIe control I/O partition. Must 130 supply 1.8 V. 131 132Power supplies for Tegra186: 133- Required: 134 - dvdd-pex-supply: Power supply for digital PCIe I/O. Must supply 1.05 V. 135 - hvdd-pex-pll-supply: High-voltage supply for PLLE (shared with USB3). Must 136 supply 1.8 V. 137 - hvdd-pex-supply: High-voltage supply for PCIe I/O and PCIe output clocks. 138 Must supply 1.8 V. 139 - vddio-pexctl-aud-supply: Power supply for PCIe side band signals. Must 140 supply 1.8 V. 141 142Root ports are defined as subnodes of the PCIe controller node. 143 144Required properties: 145- device_type: Must be "pci" 146- assigned-addresses: Address and size of the port configuration registers 147- reg: PCI bus address of the root port 148- #address-cells: Must be 3 149- #size-cells: Must be 2 150- ranges: Sub-ranges distributed from the PCIe controller node. An empty 151 property is sufficient. 152- nvidia,num-lanes: Number of lanes to use for this port. Valid combinations 153 are: 154 - Root port 0 uses 4 lanes, root port 1 is unused. 155 - Both root ports use 2 lanes. 156 157Required properties for Tegra124 and later: 158- phys: Must contain an phandle to a PHY for each entry in phy-names. 159- phy-names: Must include an entry for each active lane. Note that the number 160 of entries does not have to (though usually will) be equal to the specified 161 number of lanes in the nvidia,num-lanes property. Entries are of the form 162 "pcie-N": where N ranges from 0 to the value specified in nvidia,num-lanes. 163 164Examples: 165========= 166 167Tegra20: 168-------- 169 170SoC DTSI: 171 172 pcie-controller@80003000 { 173 compatible = "nvidia,tegra20-pcie"; 174 device_type = "pci"; 175 reg = <0x80003000 0x00000800 /* PADS registers */ 176 0x80003800 0x00000200 /* AFI registers */ 177 0x90000000 0x10000000>; /* configuration space */ 178 reg-names = "pads", "afi", "cs"; 179 interrupts = <0 98 0x04 /* controller interrupt */ 180 0 99 0x04>; /* MSI interrupt */ 181 interrupt-names = "intr", "msi"; 182 183 #interrupt-cells = <1>; 184 interrupt-map-mask = <0 0 0 0>; 185 interrupt-map = <0 0 0 0 &intc GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>; 186 187 bus-range = <0x00 0xff>; 188 #address-cells = <3>; 189 #size-cells = <2>; 190 191 ranges = <0x82000000 0 0x80000000 0x80000000 0 0x00001000 /* port 0 registers */ 192 0x82000000 0 0x80001000 0x80001000 0 0x00001000 /* port 1 registers */ 193 0x81000000 0 0 0x82000000 0 0x00010000 /* downstream I/O */ 194 0x82000000 0 0xa0000000 0xa0000000 0 0x10000000 /* non-prefetchable memory */ 195 0xc2000000 0 0xb0000000 0xb0000000 0 0x10000000>; /* prefetchable memory */ 196 197 clocks = <&tegra_car 70>, <&tegra_car 72>, <&tegra_car 118>; 198 clock-names = "pex", "afi", "pll_e"; 199 resets = <&tegra_car 70>, <&tegra_car 72>, <&tegra_car 74>; 200 reset-names = "pex", "afi", "pcie_x"; 201 status = "disabled"; 202 203 pci@1,0 { 204 device_type = "pci"; 205 assigned-addresses = <0x82000800 0 0x80000000 0 0x1000>; 206 reg = <0x000800 0 0 0 0>; 207 status = "disabled"; 208 209 #address-cells = <3>; 210 #size-cells = <2>; 211 212 ranges; 213 214 nvidia,num-lanes = <2>; 215 }; 216 217 pci@2,0 { 218 device_type = "pci"; 219 assigned-addresses = <0x82001000 0 0x80001000 0 0x1000>; 220 reg = <0x001000 0 0 0 0>; 221 status = "disabled"; 222 223 #address-cells = <3>; 224 #size-cells = <2>; 225 226 ranges; 227 228 nvidia,num-lanes = <2>; 229 }; 230 }; 231 232Board DTS: 233 234 pcie-controller@80003000 { 235 status = "okay"; 236 237 vdd-supply = <&pci_vdd_reg>; 238 pex-clk-supply = <&pci_clk_reg>; 239 240 /* root port 00:01.0 */ 241 pci@1,0 { 242 status = "okay"; 243 244 /* bridge 01:00.0 (optional) */ 245 pci@0,0 { 246 reg = <0x010000 0 0 0 0>; 247 248 #address-cells = <3>; 249 #size-cells = <2>; 250 251 device_type = "pci"; 252 253 /* endpoint 02:00.0 */ 254 pci@0,0 { 255 reg = <0x020000 0 0 0 0>; 256 }; 257 }; 258 }; 259 }; 260 261Note that devices on the PCI bus are dynamically discovered using PCI's bus 262enumeration and therefore don't need corresponding device nodes in DT. However 263if a device on the PCI bus provides a non-probeable bus such as I2C or SPI, 264device nodes need to be added in order to allow the bus' children to be 265instantiated at the proper location in the operating system's device tree (as 266illustrated by the optional nodes in the example above). 267 268Tegra30: 269-------- 270 271SoC DTSI: 272 273 pcie-controller@3000 { 274 compatible = "nvidia,tegra30-pcie"; 275 device_type = "pci"; 276 reg = <0x00003000 0x00000800 /* PADS registers */ 277 0x00003800 0x00000200 /* AFI registers */ 278 0x10000000 0x10000000>; /* configuration space */ 279 reg-names = "pads", "afi", "cs"; 280 interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH /* controller interrupt */ 281 GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>; /* MSI interrupt */ 282 interrupt-names = "intr", "msi"; 283 284 #interrupt-cells = <1>; 285 interrupt-map-mask = <0 0 0 0>; 286 interrupt-map = <0 0 0 0 &intc GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>; 287 288 bus-range = <0x00 0xff>; 289 #address-cells = <3>; 290 #size-cells = <2>; 291 292 ranges = <0x82000000 0 0x00000000 0x00000000 0 0x00001000 /* port 0 configuration space */ 293 0x82000000 0 0x00001000 0x00001000 0 0x00001000 /* port 1 configuration space */ 294 0x82000000 0 0x00004000 0x00004000 0 0x00001000 /* port 2 configuration space */ 295 0x81000000 0 0 0x02000000 0 0x00010000 /* downstream I/O */ 296 0x82000000 0 0x20000000 0x20000000 0 0x08000000 /* non-prefetchable memory */ 297 0xc2000000 0 0x28000000 0x28000000 0 0x18000000>; /* prefetchable memory */ 298 299 clocks = <&tegra_car TEGRA30_CLK_PCIE>, 300 <&tegra_car TEGRA30_CLK_AFI>, 301 <&tegra_car TEGRA30_CLK_PLL_E>, 302 <&tegra_car TEGRA30_CLK_CML0>; 303 clock-names = "pex", "afi", "pll_e", "cml"; 304 resets = <&tegra_car 70>, 305 <&tegra_car 72>, 306 <&tegra_car 74>; 307 reset-names = "pex", "afi", "pcie_x"; 308 status = "disabled"; 309 310 pci@1,0 { 311 device_type = "pci"; 312 assigned-addresses = <0x82000800 0 0x00000000 0 0x1000>; 313 reg = <0x000800 0 0 0 0>; 314 status = "disabled"; 315 316 #address-cells = <3>; 317 #size-cells = <2>; 318 ranges; 319 320 nvidia,num-lanes = <2>; 321 }; 322 323 pci@2,0 { 324 device_type = "pci"; 325 assigned-addresses = <0x82001000 0 0x00001000 0 0x1000>; 326 reg = <0x001000 0 0 0 0>; 327 status = "disabled"; 328 329 #address-cells = <3>; 330 #size-cells = <2>; 331 ranges; 332 333 nvidia,num-lanes = <2>; 334 }; 335 336 pci@3,0 { 337 device_type = "pci"; 338 assigned-addresses = <0x82001800 0 0x00004000 0 0x1000>; 339 reg = <0x001800 0 0 0 0>; 340 status = "disabled"; 341 342 #address-cells = <3>; 343 #size-cells = <2>; 344 ranges; 345 346 nvidia,num-lanes = <2>; 347 }; 348 }; 349 350Board DTS: 351 352 pcie-controller@3000 { 353 status = "okay"; 354 355 avdd-pexa-supply = <&ldo1_reg>; 356 vdd-pexa-supply = <&ldo1_reg>; 357 avdd-pexb-supply = <&ldo1_reg>; 358 vdd-pexb-supply = <&ldo1_reg>; 359 avdd-pex-pll-supply = <&ldo1_reg>; 360 avdd-plle-supply = <&ldo1_reg>; 361 vddio-pex-ctl-supply = <&sys_3v3_reg>; 362 hvdd-pex-supply = <&sys_3v3_pexs_reg>; 363 364 pci@1,0 { 365 status = "okay"; 366 }; 367 368 pci@3,0 { 369 status = "okay"; 370 }; 371 }; 372 373Tegra124: 374--------- 375 376SoC DTSI: 377 378 pcie-controller@1003000 { 379 compatible = "nvidia,tegra124-pcie"; 380 device_type = "pci"; 381 reg = <0x0 0x01003000 0x0 0x00000800 /* PADS registers */ 382 0x0 0x01003800 0x0 0x00000800 /* AFI registers */ 383 0x0 0x02000000 0x0 0x10000000>; /* configuration space */ 384 reg-names = "pads", "afi", "cs"; 385 interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>, /* controller interrupt */ 386 <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>; /* MSI interrupt */ 387 interrupt-names = "intr", "msi"; 388 389 #interrupt-cells = <1>; 390 interrupt-map-mask = <0 0 0 0>; 391 interrupt-map = <0 0 0 0 &gic GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>; 392 393 bus-range = <0x00 0xff>; 394 #address-cells = <3>; 395 #size-cells = <2>; 396 397 ranges = <0x82000000 0 0x01000000 0x0 0x01000000 0 0x00001000 /* port 0 configuration space */ 398 0x82000000 0 0x01001000 0x0 0x01001000 0 0x00001000 /* port 1 configuration space */ 399 0x81000000 0 0x0 0x0 0x12000000 0 0x00010000 /* downstream I/O (64 KiB) */ 400 0x82000000 0 0x13000000 0x0 0x13000000 0 0x0d000000 /* non-prefetchable memory (208 MiB) */ 401 0xc2000000 0 0x20000000 0x0 0x20000000 0 0x20000000>; /* prefetchable memory (512 MiB) */ 402 403 clocks = <&tegra_car TEGRA124_CLK_PCIE>, 404 <&tegra_car TEGRA124_CLK_AFI>, 405 <&tegra_car TEGRA124_CLK_PLL_E>, 406 <&tegra_car TEGRA124_CLK_CML0>; 407 clock-names = "pex", "afi", "pll_e", "cml"; 408 resets = <&tegra_car 70>, 409 <&tegra_car 72>, 410 <&tegra_car 74>; 411 reset-names = "pex", "afi", "pcie_x"; 412 status = "disabled"; 413 414 pci@1,0 { 415 device_type = "pci"; 416 assigned-addresses = <0x82000800 0 0x01000000 0 0x1000>; 417 reg = <0x000800 0 0 0 0>; 418 status = "disabled"; 419 420 #address-cells = <3>; 421 #size-cells = <2>; 422 ranges; 423 424 nvidia,num-lanes = <2>; 425 }; 426 427 pci@2,0 { 428 device_type = "pci"; 429 assigned-addresses = <0x82001000 0 0x01001000 0 0x1000>; 430 reg = <0x001000 0 0 0 0>; 431 status = "disabled"; 432 433 #address-cells = <3>; 434 #size-cells = <2>; 435 ranges; 436 437 nvidia,num-lanes = <1>; 438 }; 439 }; 440 441Board DTS: 442 443 pcie-controller@1003000 { 444 status = "okay"; 445 446 avddio-pex-supply = <&vdd_1v05_run>; 447 dvddio-pex-supply = <&vdd_1v05_run>; 448 avdd-pex-pll-supply = <&vdd_1v05_run>; 449 hvdd-pex-supply = <&vdd_3v3_lp0>; 450 hvdd-pex-pll-e-supply = <&vdd_3v3_lp0>; 451 vddio-pex-ctl-supply = <&vdd_3v3_lp0>; 452 avdd-pll-erefe-supply = <&avdd_1v05_run>; 453 454 /* Mini PCIe */ 455 pci@1,0 { 456 phys = <&{/padctl@7009f000/pads/pcie/lanes/pcie-4}>; 457 phy-names = "pcie-0"; 458 status = "okay"; 459 }; 460 461 /* Gigabit Ethernet */ 462 pci@2,0 { 463 phys = <&{/padctl@7009f000/pads/pcie/lanes/pcie-2}>; 464 phy-names = "pcie-0"; 465 status = "okay"; 466 }; 467 }; 468 469Tegra210: 470--------- 471 472SoC DTSI: 473 474 pcie-controller@1003000 { 475 compatible = "nvidia,tegra210-pcie"; 476 device_type = "pci"; 477 reg = <0x0 0x01003000 0x0 0x00000800 /* PADS registers */ 478 0x0 0x01003800 0x0 0x00000800 /* AFI registers */ 479 0x0 0x02000000 0x0 0x10000000>; /* configuration space */ 480 reg-names = "pads", "afi", "cs"; 481 interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>, /* controller interrupt */ 482 <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>; /* MSI interrupt */ 483 interrupt-names = "intr", "msi"; 484 485 #interrupt-cells = <1>; 486 interrupt-map-mask = <0 0 0 0>; 487 interrupt-map = <0 0 0 0 &gic GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>; 488 489 bus-range = <0x00 0xff>; 490 #address-cells = <3>; 491 #size-cells = <2>; 492 493 ranges = <0x82000000 0 0x01000000 0x0 0x01000000 0 0x00001000 /* port 0 configuration space */ 494 0x82000000 0 0x01001000 0x0 0x01001000 0 0x00001000 /* port 1 configuration space */ 495 0x81000000 0 0x0 0x0 0x12000000 0 0x00010000 /* downstream I/O (64 KiB) */ 496 0x82000000 0 0x13000000 0x0 0x13000000 0 0x0d000000 /* non-prefetchable memory (208 MiB) */ 497 0xc2000000 0 0x20000000 0x0 0x20000000 0 0x20000000>; /* prefetchable memory (512 MiB) */ 498 499 clocks = <&tegra_car TEGRA210_CLK_PCIE>, 500 <&tegra_car TEGRA210_CLK_AFI>, 501 <&tegra_car TEGRA210_CLK_PLL_E>, 502 <&tegra_car TEGRA210_CLK_CML0>; 503 clock-names = "pex", "afi", "pll_e", "cml"; 504 resets = <&tegra_car 70>, 505 <&tegra_car 72>, 506 <&tegra_car 74>; 507 reset-names = "pex", "afi", "pcie_x"; 508 status = "disabled"; 509 510 pci@1,0 { 511 device_type = "pci"; 512 assigned-addresses = <0x82000800 0 0x01000000 0 0x1000>; 513 reg = <0x000800 0 0 0 0>; 514 status = "disabled"; 515 516 #address-cells = <3>; 517 #size-cells = <2>; 518 ranges; 519 520 nvidia,num-lanes = <4>; 521 }; 522 523 pci@2,0 { 524 device_type = "pci"; 525 assigned-addresses = <0x82001000 0 0x01001000 0 0x1000>; 526 reg = <0x001000 0 0 0 0>; 527 status = "disabled"; 528 529 #address-cells = <3>; 530 #size-cells = <2>; 531 ranges; 532 533 nvidia,num-lanes = <1>; 534 }; 535 }; 536 537Board DTS: 538 539 pcie-controller@1003000 { 540 status = "okay"; 541 542 avdd-pll-uerefe-supply = <&avdd_1v05_pll>; 543 hvddio-pex-supply = <&vdd_1v8>; 544 dvddio-pex-supply = <&vdd_pex_1v05>; 545 dvdd-pex-pll-supply = <&vdd_pex_1v05>; 546 hvdd-pex-pll-e-supply = <&vdd_1v8>; 547 vddio-pex-ctl-supply = <&vdd_1v8>; 548 549 pci@1,0 { 550 phys = <&{/padctl@7009f000/pads/pcie/lanes/pcie-0}>, 551 <&{/padctl@7009f000/pads/pcie/lanes/pcie-1}>, 552 <&{/padctl@7009f000/pads/pcie/lanes/pcie-2}>, 553 <&{/padctl@7009f000/pads/pcie/lanes/pcie-3}>; 554 phy-names = "pcie-0", "pcie-1", "pcie-2", "pcie-3"; 555 status = "okay"; 556 }; 557 558 pci@2,0 { 559 phys = <&{/padctl@7009f000/pads/pcie/lanes/pcie-4}>; 560 phy-names = "pcie-0"; 561 status = "okay"; 562 }; 563 }; 564 565Tegra186: 566--------- 567 568SoC DTSI: 569 570 pcie@10003000 { 571 compatible = "nvidia,tegra186-pcie"; 572 power-domains = <&bpmp TEGRA186_POWER_DOMAIN_PCX>; 573 device_type = "pci"; 574 reg = <0x0 0x10003000 0x0 0x00000800 /* PADS registers */ 575 0x0 0x10003800 0x0 0x00000800 /* AFI registers */ 576 0x0 0x40000000 0x0 0x10000000>; /* configuration space */ 577 reg-names = "pads", "afi", "cs"; 578 579 interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>, /* controller interrupt */ 580 <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>; /* MSI interrupt */ 581 interrupt-names = "intr", "msi"; 582 583 #interrupt-cells = <1>; 584 interrupt-map-mask = <0 0 0 0>; 585 interrupt-map = <0 0 0 0 &gic GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>; 586 587 bus-range = <0x00 0xff>; 588 #address-cells = <3>; 589 #size-cells = <2>; 590 591 ranges = <0x82000000 0 0x10000000 0x0 0x10000000 0 0x00001000 /* port 0 configuration space */ 592 0x82000000 0 0x10001000 0x0 0x10001000 0 0x00001000 /* port 1 configuration space */ 593 0x82000000 0 0x10004000 0x0 0x10004000 0 0x00001000 /* port 2 configuration space */ 594 0x81000000 0 0x0 0x0 0x50000000 0 0x00010000 /* downstream I/O (64 KiB) */ 595 0x82000000 0 0x50100000 0x0 0x50100000 0 0x07F00000 /* non-prefetchable memory (127 MiB) */ 596 0xc2000000 0 0x58000000 0x0 0x58000000 0 0x28000000>; /* prefetchable memory (640 MiB) */ 597 598 clocks = <&bpmp TEGRA186_CLK_AFI>, 599 <&bpmp TEGRA186_CLK_PCIE>, 600 <&bpmp TEGRA186_CLK_PLLE>; 601 clock-names = "afi", "pex", "pll_e"; 602 603 resets = <&bpmp TEGRA186_RESET_AFI>, 604 <&bpmp TEGRA186_RESET_PCIE>, 605 <&bpmp TEGRA186_RESET_PCIEXCLK>; 606 reset-names = "afi", "pex", "pcie_x"; 607 608 status = "disabled"; 609 610 pci@1,0 { 611 device_type = "pci"; 612 assigned-addresses = <0x82000800 0 0x10000000 0 0x1000>; 613 reg = <0x000800 0 0 0 0>; 614 status = "disabled"; 615 616 #address-cells = <3>; 617 #size-cells = <2>; 618 ranges; 619 620 nvidia,num-lanes = <2>; 621 }; 622 623 pci@2,0 { 624 device_type = "pci"; 625 assigned-addresses = <0x82001000 0 0x10001000 0 0x1000>; 626 reg = <0x001000 0 0 0 0>; 627 status = "disabled"; 628 629 #address-cells = <3>; 630 #size-cells = <2>; 631 ranges; 632 633 nvidia,num-lanes = <1>; 634 }; 635 636 pci@3,0 { 637 device_type = "pci"; 638 assigned-addresses = <0x82001800 0 0x10004000 0 0x1000>; 639 reg = <0x001800 0 0 0 0>; 640 status = "disabled"; 641 642 #address-cells = <3>; 643 #size-cells = <2>; 644 ranges; 645 646 nvidia,num-lanes = <1>; 647 }; 648 }; 649 650Board DTS: 651 652 pcie@10003000 { 653 status = "okay"; 654 655 dvdd-pex-supply = <&vdd_pex>; 656 hvdd-pex-pll-supply = <&vdd_1v8>; 657 hvdd-pex-supply = <&vdd_1v8>; 658 vddio-pexctl-aud-supply = <&vdd_1v8>; 659 660 pci@1,0 { 661 nvidia,num-lanes = <4>; 662 status = "okay"; 663 }; 664 665 pci@2,0 { 666 nvidia,num-lanes = <0>; 667 status = "disabled"; 668 }; 669 670 pci@3,0 { 671 nvidia,num-lanes = <1>; 672 status = "disabled"; 673 }; 674 }; 675