1d1523b52SThierry RedingNVIDIA Tegra PCIe controller 2d1523b52SThierry Reding 3d1523b52SThierry RedingRequired properties: 4193c9d23SPaul Walmsley- compatible: For Tegra20, must contain "nvidia,tegra20-pcie". For Tegra30, 5193c9d23SPaul Walmsley "nvidia,tegra30-pcie". For Tegra124, must contain "nvidia,tegra124-pcie". 6193c9d23SPaul Walmsley Otherwise, must contain "nvidia,<chip>-pcie", plus one of the above, where 7193c9d23SPaul Walmsley <chip> is tegra132 or tegra210. 8d1523b52SThierry Reding- device_type: Must be "pci" 9d1523b52SThierry Reding- reg: A list of physical base address and length for each set of controller 10d1523b52SThierry Reding registers. Must contain an entry for each entry in the reg-names property. 11d1523b52SThierry Reding- reg-names: Must include the following entries: 12d1523b52SThierry Reding "pads": PADS registers 13d1523b52SThierry Reding "afi": AFI registers 14d1523b52SThierry Reding "cs": configuration space region 15d1523b52SThierry Reding- interrupts: A list of interrupt outputs of the controller. Must contain an 16d1523b52SThierry Reding entry for each entry in the interrupt-names property. 17d1523b52SThierry Reding- interrupt-names: Must include the following entries: 18d1523b52SThierry Reding "intr": The Tegra interrupt that is asserted for controller interrupts 19d1523b52SThierry Reding "msi": The Tegra interrupt that is asserted when an MSI is received 20d1523b52SThierry Reding- bus-range: Range of bus numbers associated with this controller 21d1523b52SThierry Reding- #address-cells: Address representation for root ports (must be 3) 22d1523b52SThierry Reding - cell 0 specifies the bus and device numbers of the root port: 23d1523b52SThierry Reding [23:16]: bus number 24d1523b52SThierry Reding [15:11]: device number 25d1523b52SThierry Reding - cell 1 denotes the upper 32 address bits and should be 0 26d1523b52SThierry Reding - cell 2 contains the lower 32 address bits and is used to translate to the 27d1523b52SThierry Reding CPU address space 28d1523b52SThierry Reding- #size-cells: Size representation for root ports (must be 2) 29d1523b52SThierry Reding- ranges: Describes the translation of addresses for root ports and standard 30d1523b52SThierry Reding PCI regions. The entries must be 6 cells each, where the first three cells 31d1523b52SThierry Reding correspond to the address as described for the #address-cells property 32d1523b52SThierry Reding above, the fourth cell is the physical CPU address to translate to and the 33d1523b52SThierry Reding fifth and six cells are as described for the #size-cells property above. 34d1523b52SThierry Reding - The first two entries are expected to translate the addresses for the root 35d1523b52SThierry Reding port registers, which are referenced by the assigned-addresses property of 36d1523b52SThierry Reding the root port nodes (see below). 37d1523b52SThierry Reding - The remaining entries setup the mapping for the standard I/O, memory and 38d1523b52SThierry Reding prefetchable PCI regions. The first cell determines the type of region 39d1523b52SThierry Reding that is setup: 40d1523b52SThierry Reding - 0x81000000: I/O memory region 41d1523b52SThierry Reding - 0x82000000: non-prefetchable memory region 42d1523b52SThierry Reding - 0xc2000000: prefetchable memory region 43d1523b52SThierry Reding Please refer to the standard PCI bus binding document for a more detailed 44d1523b52SThierry Reding explanation. 4597070bd4SLucas Stach- #interrupt-cells: Size representation for interrupts (must be 1) 4697070bd4SLucas Stach- interrupt-map-mask and interrupt-map: Standard PCI IRQ mapping properties 4797070bd4SLucas Stach Please refer to the standard PCI bus binding document for a more detailed 4897070bd4SLucas Stach explanation. 49d8f64797SStephen Warren- clocks: Must contain an entry for each entry in clock-names. 50d8f64797SStephen Warren See ../clocks/clock-bindings.txt for details. 51d1523b52SThierry Reding- clock-names: Must include the following entries: 52d8f64797SStephen Warren - pex 53d8f64797SStephen Warren - afi 54d8f64797SStephen Warren - pll_e 55d8f64797SStephen Warren - cml (not required for Tegra20) 5607999587SStephen Warren- resets: Must contain an entry for each entry in reset-names. 5707999587SStephen Warren See ../reset/reset.txt for details. 5807999587SStephen Warren- reset-names: Must include the following entries: 5907999587SStephen Warren - pex 6007999587SStephen Warren - afi 6107999587SStephen Warren - pcie_x 62d1523b52SThierry Reding 63*13541cc3SThierry RedingRequired properties on Tegra124 and later (deprecated): 647f1f054bSThierry Reding- phys: Must contain an entry for each entry in phy-names. 657f1f054bSThierry Reding- phy-names: Must include the following entries: 667f1f054bSThierry Reding - pcie 677f1f054bSThierry Reding 68*13541cc3SThierry RedingThese properties are deprecated in favour of per-lane PHYs define in each of 69*13541cc3SThierry Redingthe root ports (see below). 70*13541cc3SThierry Reding 71e4958675SThierry RedingPower supplies for Tegra20: 72e4958675SThierry Reding- avdd-pex-supply: Power supply for analog PCIe logic. Must supply 1.05 V. 73e4958675SThierry Reding- vdd-pex-supply: Power supply for digital PCIe I/O. Must supply 1.05 V. 74e4958675SThierry Reding- avdd-pex-pll-supply: Power supply for dedicated (internal) PCIe PLL. Must 75e4958675SThierry Reding supply 1.05 V. 76e4958675SThierry Reding- avdd-plle-supply: Power supply for PLLE, which is shared with SATA. Must 77e4958675SThierry Reding supply 1.05 V. 78e4958675SThierry Reding- vddio-pex-clk-supply: Power supply for PCIe clock. Must supply 3.3 V. 79e4958675SThierry Reding 80e4958675SThierry RedingPower supplies for Tegra30: 81e4958675SThierry Reding- Required: 82e4958675SThierry Reding - avdd-pex-pll-supply: Power supply for dedicated (internal) PCIe PLL. Must 83e4958675SThierry Reding supply 1.05 V. 84e4958675SThierry Reding - avdd-plle-supply: Power supply for PLLE, which is shared with SATA. Must 85e4958675SThierry Reding supply 1.05 V. 86e4958675SThierry Reding - vddio-pex-ctl-supply: Power supply for PCIe control I/O partition. Must 87e4958675SThierry Reding supply 1.8 V. 88e4958675SThierry Reding - hvdd-pex-supply: High-voltage supply for PCIe I/O and PCIe output clocks. 89e4958675SThierry Reding Must supply 3.3 V. 90e4958675SThierry Reding- Optional: 91e4958675SThierry Reding - If lanes 0 to 3 are used: 92e4958675SThierry Reding - avdd-pexa-supply: Power supply for analog PCIe logic. Must supply 1.05 V. 93e4958675SThierry Reding - vdd-pexa-supply: Power supply for digital PCIe I/O. Must supply 1.05 V. 94e4958675SThierry Reding - If lanes 4 or 5 are used: 95e4958675SThierry Reding - avdd-pexb-supply: Power supply for analog PCIe logic. Must supply 1.05 V. 96e4958675SThierry Reding - vdd-pexb-supply: Power supply for digital PCIe I/O. Must supply 1.05 V. 97e4958675SThierry Reding 987f1f054bSThierry RedingPower supplies for Tegra124: 997f1f054bSThierry Reding- Required: 1007f1f054bSThierry Reding - avddio-pex-supply: Power supply for analog PCIe logic. Must supply 1.05 V. 1017f1f054bSThierry Reding - dvddio-pex-supply: Power supply for digital PCIe I/O. Must supply 1.05 V. 1027f1f054bSThierry Reding - avdd-pex-pll-supply: Power supply for dedicated (internal) PCIe PLL. Must 1037f1f054bSThierry Reding supply 1.05 V. 1047f1f054bSThierry Reding - hvdd-pex-supply: High-voltage supply for PCIe I/O and PCIe output clocks. 1057f1f054bSThierry Reding Must supply 3.3 V. 1067f1f054bSThierry Reding - hvdd-pex-pll-e-supply: High-voltage supply for PLLE (shared with USB3). 1077f1f054bSThierry Reding Must supply 3.3 V. 1087f1f054bSThierry Reding - vddio-pex-ctl-supply: Power supply for PCIe control I/O partition. Must 1097f1f054bSThierry Reding supply 2.8-3.3 V. 1107f1f054bSThierry Reding - avdd-pll-erefe-supply: Power supply for PLLE (shared with USB3). Must 1117f1f054bSThierry Reding supply 1.05 V. 1127f1f054bSThierry Reding 113d1523b52SThierry RedingRoot ports are defined as subnodes of the PCIe controller node. 114d1523b52SThierry Reding 115d1523b52SThierry RedingRequired properties: 116d1523b52SThierry Reding- device_type: Must be "pci" 117d1523b52SThierry Reding- assigned-addresses: Address and size of the port configuration registers 118d1523b52SThierry Reding- reg: PCI bus address of the root port 119d1523b52SThierry Reding- #address-cells: Must be 3 120d1523b52SThierry Reding- #size-cells: Must be 2 121d1523b52SThierry Reding- ranges: Sub-ranges distributed from the PCIe controller node. An empty 122d1523b52SThierry Reding property is sufficient. 123d1523b52SThierry Reding- nvidia,num-lanes: Number of lanes to use for this port. Valid combinations 124d1523b52SThierry Reding are: 125d1523b52SThierry Reding - Root port 0 uses 4 lanes, root port 1 is unused. 126d1523b52SThierry Reding - Both root ports use 2 lanes. 127d1523b52SThierry Reding 128*13541cc3SThierry RedingRequired properties for Tegra124 and later: 129*13541cc3SThierry Reding- phys: Must contain an phandle to a PHY for each entry in phy-names. 130*13541cc3SThierry Reding- phy-names: Must include an entry for each active lane. Note that the number 131*13541cc3SThierry Reding of entries does not have to (though usually will) be equal to the specified 132*13541cc3SThierry Reding number of lanes in the nvidia,num-lanes property. Entries are of the form 133*13541cc3SThierry Reding "pcie-N": where N ranges from 0 to the value specified in nvidia,num-lanes. 134*13541cc3SThierry Reding 135*13541cc3SThierry RedingExamples: 136*13541cc3SThierry Reding========= 137*13541cc3SThierry Reding 138*13541cc3SThierry RedingTegra20: 139*13541cc3SThierry Reding-------- 140d1523b52SThierry Reding 141d1523b52SThierry RedingSoC DTSI: 142d1523b52SThierry Reding 143*13541cc3SThierry Reding pcie-controller@80003000 { 144d1523b52SThierry Reding compatible = "nvidia,tegra20-pcie"; 145d1523b52SThierry Reding device_type = "pci"; 146d1523b52SThierry Reding reg = <0x80003000 0x00000800 /* PADS registers */ 147d1523b52SThierry Reding 0x80003800 0x00000200 /* AFI registers */ 148d1523b52SThierry Reding 0x90000000 0x10000000>; /* configuration space */ 149d1523b52SThierry Reding reg-names = "pads", "afi", "cs"; 150d1523b52SThierry Reding interrupts = <0 98 0x04 /* controller interrupt */ 151d1523b52SThierry Reding 0 99 0x04>; /* MSI interrupt */ 152d1523b52SThierry Reding interrupt-names = "intr", "msi"; 153d1523b52SThierry Reding 15497070bd4SLucas Stach #interrupt-cells = <1>; 15597070bd4SLucas Stach interrupt-map-mask = <0 0 0 0>; 15697070bd4SLucas Stach interrupt-map = <0 0 0 0 &intc GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>; 15797070bd4SLucas Stach 158d1523b52SThierry Reding bus-range = <0x00 0xff>; 159d1523b52SThierry Reding #address-cells = <3>; 160d1523b52SThierry Reding #size-cells = <2>; 161d1523b52SThierry Reding 162d1523b52SThierry Reding ranges = <0x82000000 0 0x80000000 0x80000000 0 0x00001000 /* port 0 registers */ 163d1523b52SThierry Reding 0x82000000 0 0x80001000 0x80001000 0 0x00001000 /* port 1 registers */ 164d1523b52SThierry Reding 0x81000000 0 0 0x82000000 0 0x00010000 /* downstream I/O */ 165d1523b52SThierry Reding 0x82000000 0 0xa0000000 0xa0000000 0 0x10000000 /* non-prefetchable memory */ 166d1523b52SThierry Reding 0xc2000000 0 0xb0000000 0xb0000000 0 0x10000000>; /* prefetchable memory */ 167d1523b52SThierry Reding 16807999587SStephen Warren clocks = <&tegra_car 70>, <&tegra_car 72>, <&tegra_car 118>; 16907999587SStephen Warren clock-names = "pex", "afi", "pll_e"; 17007999587SStephen Warren resets = <&tegra_car 70>, <&tegra_car 72>, <&tegra_car 74>; 17107999587SStephen Warren reset-names = "pex", "afi", "pcie_x"; 172d1523b52SThierry Reding status = "disabled"; 173d1523b52SThierry Reding 174d1523b52SThierry Reding pci@1,0 { 175d1523b52SThierry Reding device_type = "pci"; 176d1523b52SThierry Reding assigned-addresses = <0x82000800 0 0x80000000 0 0x1000>; 177d1523b52SThierry Reding reg = <0x000800 0 0 0 0>; 178d1523b52SThierry Reding status = "disabled"; 179d1523b52SThierry Reding 180d1523b52SThierry Reding #address-cells = <3>; 181d1523b52SThierry Reding #size-cells = <2>; 182d1523b52SThierry Reding 183d1523b52SThierry Reding ranges; 184d1523b52SThierry Reding 185d1523b52SThierry Reding nvidia,num-lanes = <2>; 186d1523b52SThierry Reding }; 187d1523b52SThierry Reding 188d1523b52SThierry Reding pci@2,0 { 189d1523b52SThierry Reding device_type = "pci"; 190d1523b52SThierry Reding assigned-addresses = <0x82001000 0 0x80001000 0 0x1000>; 191d1523b52SThierry Reding reg = <0x001000 0 0 0 0>; 192d1523b52SThierry Reding status = "disabled"; 193d1523b52SThierry Reding 194d1523b52SThierry Reding #address-cells = <3>; 195d1523b52SThierry Reding #size-cells = <2>; 196d1523b52SThierry Reding 197d1523b52SThierry Reding ranges; 198d1523b52SThierry Reding 199d1523b52SThierry Reding nvidia,num-lanes = <2>; 200d1523b52SThierry Reding }; 201d1523b52SThierry Reding }; 202d1523b52SThierry Reding 203d1523b52SThierry RedingBoard DTS: 204d1523b52SThierry Reding 205*13541cc3SThierry Reding pcie-controller@80003000 { 206d1523b52SThierry Reding status = "okay"; 207d1523b52SThierry Reding 208d1523b52SThierry Reding vdd-supply = <&pci_vdd_reg>; 209d1523b52SThierry Reding pex-clk-supply = <&pci_clk_reg>; 210d1523b52SThierry Reding 211d1523b52SThierry Reding /* root port 00:01.0 */ 212d1523b52SThierry Reding pci@1,0 { 213d1523b52SThierry Reding status = "okay"; 214d1523b52SThierry Reding 215d1523b52SThierry Reding /* bridge 01:00.0 (optional) */ 216d1523b52SThierry Reding pci@0,0 { 217d1523b52SThierry Reding reg = <0x010000 0 0 0 0>; 218d1523b52SThierry Reding 219d1523b52SThierry Reding #address-cells = <3>; 220d1523b52SThierry Reding #size-cells = <2>; 221d1523b52SThierry Reding 222d1523b52SThierry Reding device_type = "pci"; 223d1523b52SThierry Reding 224d1523b52SThierry Reding /* endpoint 02:00.0 */ 225d1523b52SThierry Reding pci@0,0 { 226d1523b52SThierry Reding reg = <0x020000 0 0 0 0>; 227d1523b52SThierry Reding }; 228d1523b52SThierry Reding }; 229d1523b52SThierry Reding }; 230d1523b52SThierry Reding }; 231d1523b52SThierry Reding 232d1523b52SThierry RedingNote that devices on the PCI bus are dynamically discovered using PCI's bus 233d1523b52SThierry Redingenumeration and therefore don't need corresponding device nodes in DT. However 234d1523b52SThierry Redingif a device on the PCI bus provides a non-probeable bus such as I2C or SPI, 235d1523b52SThierry Redingdevice nodes need to be added in order to allow the bus' children to be 236d1523b52SThierry Redinginstantiated at the proper location in the operating system's device tree (as 237d1523b52SThierry Redingillustrated by the optional nodes in the example above). 238*13541cc3SThierry Reding 239*13541cc3SThierry RedingTegra30: 240*13541cc3SThierry Reding-------- 241*13541cc3SThierry Reding 242*13541cc3SThierry RedingSoC DTSI: 243*13541cc3SThierry Reding 244*13541cc3SThierry Reding pcie-controller@00003000 { 245*13541cc3SThierry Reding compatible = "nvidia,tegra30-pcie"; 246*13541cc3SThierry Reding device_type = "pci"; 247*13541cc3SThierry Reding reg = <0x00003000 0x00000800 /* PADS registers */ 248*13541cc3SThierry Reding 0x00003800 0x00000200 /* AFI registers */ 249*13541cc3SThierry Reding 0x10000000 0x10000000>; /* configuration space */ 250*13541cc3SThierry Reding reg-names = "pads", "afi", "cs"; 251*13541cc3SThierry Reding interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH /* controller interrupt */ 252*13541cc3SThierry Reding GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>; /* MSI interrupt */ 253*13541cc3SThierry Reding interrupt-names = "intr", "msi"; 254*13541cc3SThierry Reding 255*13541cc3SThierry Reding #interrupt-cells = <1>; 256*13541cc3SThierry Reding interrupt-map-mask = <0 0 0 0>; 257*13541cc3SThierry Reding interrupt-map = <0 0 0 0 &intc GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>; 258*13541cc3SThierry Reding 259*13541cc3SThierry Reding bus-range = <0x00 0xff>; 260*13541cc3SThierry Reding #address-cells = <3>; 261*13541cc3SThierry Reding #size-cells = <2>; 262*13541cc3SThierry Reding 263*13541cc3SThierry Reding ranges = <0x82000000 0 0x00000000 0x00000000 0 0x00001000 /* port 0 configuration space */ 264*13541cc3SThierry Reding 0x82000000 0 0x00001000 0x00001000 0 0x00001000 /* port 1 configuration space */ 265*13541cc3SThierry Reding 0x82000000 0 0x00004000 0x00004000 0 0x00001000 /* port 2 configuration space */ 266*13541cc3SThierry Reding 0x81000000 0 0 0x02000000 0 0x00010000 /* downstream I/O */ 267*13541cc3SThierry Reding 0x82000000 0 0x20000000 0x20000000 0 0x08000000 /* non-prefetchable memory */ 268*13541cc3SThierry Reding 0xc2000000 0 0x28000000 0x28000000 0 0x18000000>; /* prefetchable memory */ 269*13541cc3SThierry Reding 270*13541cc3SThierry Reding clocks = <&tegra_car TEGRA30_CLK_PCIE>, 271*13541cc3SThierry Reding <&tegra_car TEGRA30_CLK_AFI>, 272*13541cc3SThierry Reding <&tegra_car TEGRA30_CLK_PLL_E>, 273*13541cc3SThierry Reding <&tegra_car TEGRA30_CLK_CML0>; 274*13541cc3SThierry Reding clock-names = "pex", "afi", "pll_e", "cml"; 275*13541cc3SThierry Reding resets = <&tegra_car 70>, 276*13541cc3SThierry Reding <&tegra_car 72>, 277*13541cc3SThierry Reding <&tegra_car 74>; 278*13541cc3SThierry Reding reset-names = "pex", "afi", "pcie_x"; 279*13541cc3SThierry Reding status = "disabled"; 280*13541cc3SThierry Reding 281*13541cc3SThierry Reding pci@1,0 { 282*13541cc3SThierry Reding device_type = "pci"; 283*13541cc3SThierry Reding assigned-addresses = <0x82000800 0 0x00000000 0 0x1000>; 284*13541cc3SThierry Reding reg = <0x000800 0 0 0 0>; 285*13541cc3SThierry Reding status = "disabled"; 286*13541cc3SThierry Reding 287*13541cc3SThierry Reding #address-cells = <3>; 288*13541cc3SThierry Reding #size-cells = <2>; 289*13541cc3SThierry Reding ranges; 290*13541cc3SThierry Reding 291*13541cc3SThierry Reding nvidia,num-lanes = <2>; 292*13541cc3SThierry Reding }; 293*13541cc3SThierry Reding 294*13541cc3SThierry Reding pci@2,0 { 295*13541cc3SThierry Reding device_type = "pci"; 296*13541cc3SThierry Reding assigned-addresses = <0x82001000 0 0x00001000 0 0x1000>; 297*13541cc3SThierry Reding reg = <0x001000 0 0 0 0>; 298*13541cc3SThierry Reding status = "disabled"; 299*13541cc3SThierry Reding 300*13541cc3SThierry Reding #address-cells = <3>; 301*13541cc3SThierry Reding #size-cells = <2>; 302*13541cc3SThierry Reding ranges; 303*13541cc3SThierry Reding 304*13541cc3SThierry Reding nvidia,num-lanes = <2>; 305*13541cc3SThierry Reding }; 306*13541cc3SThierry Reding 307*13541cc3SThierry Reding pci@3,0 { 308*13541cc3SThierry Reding device_type = "pci"; 309*13541cc3SThierry Reding assigned-addresses = <0x82001800 0 0x00004000 0 0x1000>; 310*13541cc3SThierry Reding reg = <0x001800 0 0 0 0>; 311*13541cc3SThierry Reding status = "disabled"; 312*13541cc3SThierry Reding 313*13541cc3SThierry Reding #address-cells = <3>; 314*13541cc3SThierry Reding #size-cells = <2>; 315*13541cc3SThierry Reding ranges; 316*13541cc3SThierry Reding 317*13541cc3SThierry Reding nvidia,num-lanes = <2>; 318*13541cc3SThierry Reding }; 319*13541cc3SThierry Reding }; 320*13541cc3SThierry Reding 321*13541cc3SThierry RedingBoard DTS: 322*13541cc3SThierry Reding 323*13541cc3SThierry Reding pcie-controller@00003000 { 324*13541cc3SThierry Reding status = "okay"; 325*13541cc3SThierry Reding 326*13541cc3SThierry Reding avdd-pexa-supply = <&ldo1_reg>; 327*13541cc3SThierry Reding vdd-pexa-supply = <&ldo1_reg>; 328*13541cc3SThierry Reding avdd-pexb-supply = <&ldo1_reg>; 329*13541cc3SThierry Reding vdd-pexb-supply = <&ldo1_reg>; 330*13541cc3SThierry Reding avdd-pex-pll-supply = <&ldo1_reg>; 331*13541cc3SThierry Reding avdd-plle-supply = <&ldo1_reg>; 332*13541cc3SThierry Reding vddio-pex-ctl-supply = <&sys_3v3_reg>; 333*13541cc3SThierry Reding hvdd-pex-supply = <&sys_3v3_pexs_reg>; 334*13541cc3SThierry Reding 335*13541cc3SThierry Reding pci@1,0 { 336*13541cc3SThierry Reding status = "okay"; 337*13541cc3SThierry Reding }; 338*13541cc3SThierry Reding 339*13541cc3SThierry Reding pci@3,0 { 340*13541cc3SThierry Reding status = "okay"; 341*13541cc3SThierry Reding }; 342*13541cc3SThierry Reding }; 343*13541cc3SThierry Reding 344*13541cc3SThierry RedingTegra124: 345*13541cc3SThierry Reding--------- 346*13541cc3SThierry Reding 347*13541cc3SThierry RedingSoC DTSI: 348*13541cc3SThierry Reding 349*13541cc3SThierry Reding pcie-controller@01003000 { 350*13541cc3SThierry Reding compatible = "nvidia,tegra124-pcie"; 351*13541cc3SThierry Reding device_type = "pci"; 352*13541cc3SThierry Reding reg = <0x0 0x01003000 0x0 0x00000800 /* PADS registers */ 353*13541cc3SThierry Reding 0x0 0x01003800 0x0 0x00000800 /* AFI registers */ 354*13541cc3SThierry Reding 0x0 0x02000000 0x0 0x10000000>; /* configuration space */ 355*13541cc3SThierry Reding reg-names = "pads", "afi", "cs"; 356*13541cc3SThierry Reding interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>, /* controller interrupt */ 357*13541cc3SThierry Reding <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>; /* MSI interrupt */ 358*13541cc3SThierry Reding interrupt-names = "intr", "msi"; 359*13541cc3SThierry Reding 360*13541cc3SThierry Reding #interrupt-cells = <1>; 361*13541cc3SThierry Reding interrupt-map-mask = <0 0 0 0>; 362*13541cc3SThierry Reding interrupt-map = <0 0 0 0 &gic GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>; 363*13541cc3SThierry Reding 364*13541cc3SThierry Reding bus-range = <0x00 0xff>; 365*13541cc3SThierry Reding #address-cells = <3>; 366*13541cc3SThierry Reding #size-cells = <2>; 367*13541cc3SThierry Reding 368*13541cc3SThierry Reding ranges = <0x82000000 0 0x01000000 0x0 0x01000000 0 0x00001000 /* port 0 configuration space */ 369*13541cc3SThierry Reding 0x82000000 0 0x01001000 0x0 0x01001000 0 0x00001000 /* port 1 configuration space */ 370*13541cc3SThierry Reding 0x81000000 0 0x0 0x0 0x12000000 0 0x00010000 /* downstream I/O (64 KiB) */ 371*13541cc3SThierry Reding 0x82000000 0 0x13000000 0x0 0x13000000 0 0x0d000000 /* non-prefetchable memory (208 MiB) */ 372*13541cc3SThierry Reding 0xc2000000 0 0x20000000 0x0 0x20000000 0 0x20000000>; /* prefetchable memory (512 MiB) */ 373*13541cc3SThierry Reding 374*13541cc3SThierry Reding clocks = <&tegra_car TEGRA124_CLK_PCIE>, 375*13541cc3SThierry Reding <&tegra_car TEGRA124_CLK_AFI>, 376*13541cc3SThierry Reding <&tegra_car TEGRA124_CLK_PLL_E>, 377*13541cc3SThierry Reding <&tegra_car TEGRA124_CLK_CML0>; 378*13541cc3SThierry Reding clock-names = "pex", "afi", "pll_e", "cml"; 379*13541cc3SThierry Reding resets = <&tegra_car 70>, 380*13541cc3SThierry Reding <&tegra_car 72>, 381*13541cc3SThierry Reding <&tegra_car 74>; 382*13541cc3SThierry Reding reset-names = "pex", "afi", "pcie_x"; 383*13541cc3SThierry Reding status = "disabled"; 384*13541cc3SThierry Reding 385*13541cc3SThierry Reding pci@1,0 { 386*13541cc3SThierry Reding device_type = "pci"; 387*13541cc3SThierry Reding assigned-addresses = <0x82000800 0 0x01000000 0 0x1000>; 388*13541cc3SThierry Reding reg = <0x000800 0 0 0 0>; 389*13541cc3SThierry Reding status = "disabled"; 390*13541cc3SThierry Reding 391*13541cc3SThierry Reding #address-cells = <3>; 392*13541cc3SThierry Reding #size-cells = <2>; 393*13541cc3SThierry Reding ranges; 394*13541cc3SThierry Reding 395*13541cc3SThierry Reding nvidia,num-lanes = <2>; 396*13541cc3SThierry Reding }; 397*13541cc3SThierry Reding 398*13541cc3SThierry Reding pci@2,0 { 399*13541cc3SThierry Reding device_type = "pci"; 400*13541cc3SThierry Reding assigned-addresses = <0x82001000 0 0x01001000 0 0x1000>; 401*13541cc3SThierry Reding reg = <0x001000 0 0 0 0>; 402*13541cc3SThierry Reding status = "disabled"; 403*13541cc3SThierry Reding 404*13541cc3SThierry Reding #address-cells = <3>; 405*13541cc3SThierry Reding #size-cells = <2>; 406*13541cc3SThierry Reding ranges; 407*13541cc3SThierry Reding 408*13541cc3SThierry Reding nvidia,num-lanes = <1>; 409*13541cc3SThierry Reding }; 410*13541cc3SThierry Reding }; 411*13541cc3SThierry Reding 412*13541cc3SThierry RedingBoard DTS: 413*13541cc3SThierry Reding 414*13541cc3SThierry Reding pcie-controller@01003000 { 415*13541cc3SThierry Reding status = "okay"; 416*13541cc3SThierry Reding 417*13541cc3SThierry Reding avddio-pex-supply = <&vdd_1v05_run>; 418*13541cc3SThierry Reding dvddio-pex-supply = <&vdd_1v05_run>; 419*13541cc3SThierry Reding avdd-pex-pll-supply = <&vdd_1v05_run>; 420*13541cc3SThierry Reding hvdd-pex-supply = <&vdd_3v3_lp0>; 421*13541cc3SThierry Reding hvdd-pex-pll-e-supply = <&vdd_3v3_lp0>; 422*13541cc3SThierry Reding vddio-pex-ctl-supply = <&vdd_3v3_lp0>; 423*13541cc3SThierry Reding avdd-pll-erefe-supply = <&avdd_1v05_run>; 424*13541cc3SThierry Reding 425*13541cc3SThierry Reding /* Mini PCIe */ 426*13541cc3SThierry Reding pci@1,0 { 427*13541cc3SThierry Reding phys = <&{/padctl@7009f000/pads/pcie/lanes/pcie-4}>; 428*13541cc3SThierry Reding phy-names = "pcie-0"; 429*13541cc3SThierry Reding status = "okay"; 430*13541cc3SThierry Reding }; 431*13541cc3SThierry Reding 432*13541cc3SThierry Reding /* Gigabit Ethernet */ 433*13541cc3SThierry Reding pci@2,0 { 434*13541cc3SThierry Reding phys = <&{/padctl@7009f000/pads/pcie/lanes/pcie-2}>; 435*13541cc3SThierry Reding phy-names = "pcie-0"; 436*13541cc3SThierry Reding status = "okay"; 437*13541cc3SThierry Reding }; 438*13541cc3SThierry Reding }; 439