Back to home page

OSCL-LXR

 
 

    


0001 NVIDIA Tegra PCIe controller
0002 
0003 Required properties:
0004 - compatible: Must be:
0005   - "nvidia,tegra20-pcie": for Tegra20
0006   - "nvidia,tegra30-pcie": for Tegra30
0007   - "nvidia,tegra124-pcie": for Tegra124 and Tegra132
0008   - "nvidia,tegra210-pcie": for Tegra210
0009   - "nvidia,tegra186-pcie": for Tegra186
0010 - power-domains: To ungate power partition by BPMP powergate driver. Must
0011   contain BPMP phandle and PCIe power partition ID. This is required only
0012   for Tegra186.
0013 - device_type: Must be "pci"
0014 - reg: A list of physical base address and length for each set of controller
0015   registers. Must contain an entry for each entry in the reg-names property.
0016 - reg-names: Must include the following entries:
0017   "pads": PADS registers
0018   "afi": AFI registers
0019   "cs": configuration space region
0020 - interrupts: A list of interrupt outputs of the controller. Must contain an
0021   entry for each entry in the interrupt-names property.
0022 - interrupt-names: Must include the following entries:
0023   "intr": The Tegra interrupt that is asserted for controller interrupts
0024   "msi": The Tegra interrupt that is asserted when an MSI is received
0025 - bus-range: Range of bus numbers associated with this controller
0026 - #address-cells: Address representation for root ports (must be 3)
0027   - cell 0 specifies the bus and device numbers of the root port:
0028     [23:16]: bus number
0029     [15:11]: device number
0030   - cell 1 denotes the upper 32 address bits and should be 0
0031   - cell 2 contains the lower 32 address bits and is used to translate to the
0032     CPU address space
0033 - #size-cells: Size representation for root ports (must be 2)
0034 - ranges: Describes the translation of addresses for root ports and standard
0035   PCI regions. The entries must be 6 cells each, where the first three cells
0036   correspond to the address as described for the #address-cells property
0037   above, the fourth cell is the physical CPU address to translate to and the
0038   fifth and six cells are as described for the #size-cells property above.
0039   - The first two entries are expected to translate the addresses for the root
0040     port registers, which are referenced by the assigned-addresses property of
0041     the root port nodes (see below).
0042   - The remaining entries setup the mapping for the standard I/O, memory and
0043     prefetchable PCI regions. The first cell determines the type of region
0044     that is setup:
0045     - 0x81000000: I/O memory region
0046     - 0x82000000: non-prefetchable memory region
0047     - 0xc2000000: prefetchable memory region
0048   Please refer to the standard PCI bus binding document for a more detailed
0049   explanation.
0050 - #interrupt-cells: Size representation for interrupts (must be 1)
0051 - interrupt-map-mask and interrupt-map: Standard PCI IRQ mapping properties
0052   Please refer to the standard PCI bus binding document for a more detailed
0053   explanation.
0054 - clocks: Must contain an entry for each entry in clock-names.
0055   See ../clocks/clock-bindings.txt for details.
0056 - clock-names: Must include the following entries:
0057   - pex
0058   - afi
0059   - pll_e
0060   - cml (not required for Tegra20)
0061 - resets: Must contain an entry for each entry in reset-names.
0062   See ../reset/reset.txt for details.
0063 - reset-names: Must include the following entries:
0064   - pex
0065   - afi
0066   - pcie_x
0067 
0068 Optional properties:
0069 - pinctrl-names: A list of pinctrl state names. Must contain the following
0070   entries:
0071   - "default": active state, puts PCIe I/O out of deep power down state
0072   - "idle": puts PCIe I/O into deep power down state
0073 - pinctrl-0: phandle for the default/active state of pin configurations.
0074 - pinctrl-1: phandle for the idle state of pin configurations.
0075 
0076 Required properties on Tegra124 and later (deprecated):
0077 - phys: Must contain an entry for each entry in phy-names.
0078 - phy-names: Must include the following entries:
0079   - pcie
0080 
0081 These properties are deprecated in favour of per-lane PHYs define in each of
0082 the root ports (see below).
0083 
0084 Power supplies for Tegra20:
0085 - avdd-pex-supply: Power supply for analog PCIe logic. Must supply 1.05 V.
0086 - vdd-pex-supply: Power supply for digital PCIe I/O. Must supply 1.05 V.
0087 - avdd-pex-pll-supply: Power supply for dedicated (internal) PCIe PLL. Must
0088   supply 1.05 V.
0089 - avdd-plle-supply: Power supply for PLLE, which is shared with SATA. Must
0090   supply 1.05 V.
0091 - vddio-pex-clk-supply: Power supply for PCIe clock. Must supply 3.3 V.
0092 
0093 Power supplies for Tegra30:
0094 - Required:
0095   - avdd-pex-pll-supply: Power supply for dedicated (internal) PCIe PLL. Must
0096     supply 1.05 V.
0097   - avdd-plle-supply: Power supply for PLLE, which is shared with SATA. Must
0098     supply 1.05 V.
0099   - vddio-pex-ctl-supply: Power supply for PCIe control I/O partition. Must
0100     supply 1.8 V.
0101   - hvdd-pex-supply: High-voltage supply for PCIe I/O and PCIe output clocks.
0102     Must supply 3.3 V.
0103 - Optional:
0104   - If lanes 0 to 3 are used:
0105     - avdd-pexa-supply: Power supply for analog PCIe logic. Must supply 1.05 V.
0106     - vdd-pexa-supply: Power supply for digital PCIe I/O. Must supply 1.05 V.
0107   - If lanes 4 or 5 are used:
0108     - avdd-pexb-supply: Power supply for analog PCIe logic. Must supply 1.05 V.
0109     - vdd-pexb-supply: Power supply for digital PCIe I/O. Must supply 1.05 V.
0110 
0111 Power supplies for Tegra124:
0112 - Required:
0113   - avddio-pex-supply: Power supply for analog PCIe logic. Must supply 1.05 V.
0114   - dvddio-pex-supply: Power supply for digital PCIe I/O. Must supply 1.05 V.
0115   - hvdd-pex-supply: High-voltage supply for PCIe I/O and PCIe output clocks.
0116     Must supply 3.3 V.
0117   - vddio-pex-ctl-supply: Power supply for PCIe control I/O partition. Must
0118     supply 2.8-3.3 V.
0119 
0120 Power supplies for Tegra210:
0121 - Required:
0122   - hvddio-pex-supply: High-voltage supply for PCIe I/O and PCIe output
0123     clocks. Must supply 1.8 V.
0124   - dvddio-pex-supply: Power supply for digital PCIe I/O. Must supply 1.05 V.
0125   - vddio-pex-ctl-supply: Power supply for PCIe control I/O partition. Must
0126     supply 1.8 V.
0127 
0128 Power supplies for Tegra186:
0129 - Required:
0130   - dvdd-pex-supply: Power supply for digital PCIe I/O. Must supply 1.05 V.
0131   - hvdd-pex-pll-supply: High-voltage supply for PLLE (shared with USB3). Must
0132     supply 1.8 V.
0133   - hvdd-pex-supply: High-voltage supply for PCIe I/O and PCIe output clocks.
0134     Must supply 1.8 V.
0135   - vddio-pexctl-aud-supply: Power supply for PCIe side band signals. Must
0136     supply 1.8 V.
0137 
0138 Root ports are defined as subnodes of the PCIe controller node.
0139 
0140 Required properties:
0141 - device_type: Must be "pci"
0142 - assigned-addresses: Address and size of the port configuration registers
0143 - reg: PCI bus address of the root port
0144 - #address-cells: Must be 3
0145 - #size-cells: Must be 2
0146 - ranges: Sub-ranges distributed from the PCIe controller node. An empty
0147   property is sufficient.
0148 - nvidia,num-lanes: Number of lanes to use for this port. Valid combinations
0149   are:
0150   - Root port 0 uses 4 lanes, root port 1 is unused.
0151   - Both root ports use 2 lanes.
0152 
0153 Required properties for Tegra124 and later:
0154 - phys: Must contain an phandle to a PHY for each entry in phy-names.
0155 - phy-names: Must include an entry for each active lane. Note that the number
0156   of entries does not have to (though usually will) be equal to the specified
0157   number of lanes in the nvidia,num-lanes property. Entries are of the form
0158   "pcie-N": where N ranges from 0 to the value specified in nvidia,num-lanes.
0159 
0160 Examples:
0161 =========
0162 
0163 Tegra20:
0164 --------
0165 
0166 SoC DTSI:
0167 
0168         pcie-controller@80003000 {
0169                 compatible = "nvidia,tegra20-pcie";
0170                 device_type = "pci";
0171                 reg = <0x80003000 0x00000800   /* PADS registers */
0172                        0x80003800 0x00000200   /* AFI registers */
0173                        0x90000000 0x10000000>; /* configuration space */
0174                 reg-names = "pads", "afi", "cs";
0175                 interrupts = <0 98 0x04   /* controller interrupt */
0176                               0 99 0x04>; /* MSI interrupt */
0177                 interrupt-names = "intr", "msi";
0178 
0179                 #interrupt-cells = <1>;
0180                 interrupt-map-mask = <0 0 0 0>;
0181                 interrupt-map = <0 0 0 0 &intc GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
0182 
0183                 bus-range = <0x00 0xff>;
0184                 #address-cells = <3>;
0185                 #size-cells = <2>;
0186 
0187                 ranges = <0x82000000 0 0x80000000 0x80000000 0 0x00001000   /* port 0 registers */
0188                           0x82000000 0 0x80001000 0x80001000 0 0x00001000   /* port 1 registers */
0189                           0x81000000 0 0          0x82000000 0 0x00010000   /* downstream I/O */
0190                           0x82000000 0 0xa0000000 0xa0000000 0 0x10000000   /* non-prefetchable memory */
0191                           0xc2000000 0 0xb0000000 0xb0000000 0 0x10000000>; /* prefetchable memory */
0192 
0193                 clocks = <&tegra_car 70>, <&tegra_car 72>, <&tegra_car 118>;
0194                 clock-names = "pex", "afi", "pll_e";
0195                 resets = <&tegra_car 70>, <&tegra_car 72>, <&tegra_car 74>;
0196                 reset-names = "pex", "afi", "pcie_x";
0197                 status = "disabled";
0198 
0199                 pci@1,0 {
0200                         device_type = "pci";
0201                         assigned-addresses = <0x82000800 0 0x80000000 0 0x1000>;
0202                         reg = <0x000800 0 0 0 0>;
0203                         status = "disabled";
0204 
0205                         #address-cells = <3>;
0206                         #size-cells = <2>;
0207 
0208                         ranges;
0209 
0210                         nvidia,num-lanes = <2>;
0211                 };
0212 
0213                 pci@2,0 {
0214                         device_type = "pci";
0215                         assigned-addresses = <0x82001000 0 0x80001000 0 0x1000>;
0216                         reg = <0x001000 0 0 0 0>;
0217                         status = "disabled";
0218 
0219                         #address-cells = <3>;
0220                         #size-cells = <2>;
0221 
0222                         ranges;
0223 
0224                         nvidia,num-lanes = <2>;
0225                 };
0226         };
0227 
0228 Board DTS:
0229 
0230         pcie-controller@80003000 {
0231                 status = "okay";
0232 
0233                 vdd-supply = <&pci_vdd_reg>;
0234                 pex-clk-supply = <&pci_clk_reg>;
0235 
0236                 /* root port 00:01.0 */
0237                 pci@1,0 {
0238                         status = "okay";
0239 
0240                         /* bridge 01:00.0 (optional) */
0241                         pci@0,0 {
0242                                 reg = <0x010000 0 0 0 0>;
0243 
0244                                 #address-cells = <3>;
0245                                 #size-cells = <2>;
0246 
0247                                 device_type = "pci";
0248 
0249                                 /* endpoint 02:00.0 */
0250                                 pci@0,0 {
0251                                         reg = <0x020000 0 0 0 0>;
0252                                 };
0253                         };
0254                 };
0255         };
0256 
0257 Note that devices on the PCI bus are dynamically discovered using PCI's bus
0258 enumeration and therefore don't need corresponding device nodes in DT. However
0259 if a device on the PCI bus provides a non-probeable bus such as I2C or SPI,
0260 device nodes need to be added in order to allow the bus' children to be
0261 instantiated at the proper location in the operating system's device tree (as
0262 illustrated by the optional nodes in the example above).
0263 
0264 Tegra30:
0265 --------
0266 
0267 SoC DTSI:
0268 
0269         pcie-controller@3000 {
0270                 compatible = "nvidia,tegra30-pcie";
0271                 device_type = "pci";
0272                 reg = <0x00003000 0x00000800   /* PADS registers */
0273                        0x00003800 0x00000200   /* AFI registers */
0274                        0x10000000 0x10000000>; /* configuration space */
0275                 reg-names = "pads", "afi", "cs";
0276                 interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH   /* controller interrupt */
0277                               GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>; /* MSI interrupt */
0278                 interrupt-names = "intr", "msi";
0279 
0280                 #interrupt-cells = <1>;
0281                 interrupt-map-mask = <0 0 0 0>;
0282                 interrupt-map = <0 0 0 0 &intc GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
0283 
0284                 bus-range = <0x00 0xff>;
0285                 #address-cells = <3>;
0286                 #size-cells = <2>;
0287 
0288                 ranges = <0x82000000 0 0x00000000 0x00000000 0 0x00001000   /* port 0 configuration space */
0289                           0x82000000 0 0x00001000 0x00001000 0 0x00001000   /* port 1 configuration space */
0290                           0x82000000 0 0x00004000 0x00004000 0 0x00001000   /* port 2 configuration space */
0291                           0x81000000 0 0          0x02000000 0 0x00010000   /* downstream I/O */
0292                           0x82000000 0 0x20000000 0x20000000 0 0x08000000   /* non-prefetchable memory */
0293                           0xc2000000 0 0x28000000 0x28000000 0 0x18000000>; /* prefetchable memory */
0294 
0295                 clocks = <&tegra_car TEGRA30_CLK_PCIE>,
0296                          <&tegra_car TEGRA30_CLK_AFI>,
0297                          <&tegra_car TEGRA30_CLK_PLL_E>,
0298                          <&tegra_car TEGRA30_CLK_CML0>;
0299                 clock-names = "pex", "afi", "pll_e", "cml";
0300                 resets = <&tegra_car 70>,
0301                          <&tegra_car 72>,
0302                          <&tegra_car 74>;
0303                 reset-names = "pex", "afi", "pcie_x";
0304                 status = "disabled";
0305 
0306                 pci@1,0 {
0307                         device_type = "pci";
0308                         assigned-addresses = <0x82000800 0 0x00000000 0 0x1000>;
0309                         reg = <0x000800 0 0 0 0>;
0310                         status = "disabled";
0311 
0312                         #address-cells = <3>;
0313                         #size-cells = <2>;
0314                         ranges;
0315 
0316                         nvidia,num-lanes = <2>;
0317                 };
0318 
0319                 pci@2,0 {
0320                         device_type = "pci";
0321                         assigned-addresses = <0x82001000 0 0x00001000 0 0x1000>;
0322                         reg = <0x001000 0 0 0 0>;
0323                         status = "disabled";
0324 
0325                         #address-cells = <3>;
0326                         #size-cells = <2>;
0327                         ranges;
0328 
0329                         nvidia,num-lanes = <2>;
0330                 };
0331 
0332                 pci@3,0 {
0333                         device_type = "pci";
0334                         assigned-addresses = <0x82001800 0 0x00004000 0 0x1000>;
0335                         reg = <0x001800 0 0 0 0>;
0336                         status = "disabled";
0337 
0338                         #address-cells = <3>;
0339                         #size-cells = <2>;
0340                         ranges;
0341 
0342                         nvidia,num-lanes = <2>;
0343                 };
0344         };
0345 
0346 Board DTS:
0347 
0348         pcie-controller@3000 {
0349                 status = "okay";
0350 
0351                 avdd-pexa-supply = <&ldo1_reg>;
0352                 vdd-pexa-supply = <&ldo1_reg>;
0353                 avdd-pexb-supply = <&ldo1_reg>;
0354                 vdd-pexb-supply = <&ldo1_reg>;
0355                 avdd-pex-pll-supply = <&ldo1_reg>;
0356                 avdd-plle-supply = <&ldo1_reg>;
0357                 vddio-pex-ctl-supply = <&sys_3v3_reg>;
0358                 hvdd-pex-supply = <&sys_3v3_pexs_reg>;
0359 
0360                 pci@1,0 {
0361                         status = "okay";
0362                 };
0363 
0364                 pci@3,0 {
0365                         status = "okay";
0366                 };
0367         };
0368 
0369 Tegra124:
0370 ---------
0371 
0372 SoC DTSI:
0373 
0374         pcie-controller@1003000 {
0375                 compatible = "nvidia,tegra124-pcie";
0376                 device_type = "pci";
0377                 reg = <0x0 0x01003000 0x0 0x00000800   /* PADS registers */
0378                        0x0 0x01003800 0x0 0x00000800   /* AFI registers */
0379                        0x0 0x02000000 0x0 0x10000000>; /* configuration space */
0380                 reg-names = "pads", "afi", "cs";
0381                 interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>, /* controller interrupt */
0382                              <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>; /* MSI interrupt */
0383                 interrupt-names = "intr", "msi";
0384 
0385                 #interrupt-cells = <1>;
0386                 interrupt-map-mask = <0 0 0 0>;
0387                 interrupt-map = <0 0 0 0 &gic GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
0388 
0389                 bus-range = <0x00 0xff>;
0390                 #address-cells = <3>;
0391                 #size-cells = <2>;
0392 
0393                 ranges = <0x82000000 0 0x01000000 0x0 0x01000000 0 0x00001000   /* port 0 configuration space */
0394                           0x82000000 0 0x01001000 0x0 0x01001000 0 0x00001000   /* port 1 configuration space */
0395                           0x81000000 0 0x0        0x0 0x12000000 0 0x00010000   /* downstream I/O (64 KiB) */
0396                           0x82000000 0 0x13000000 0x0 0x13000000 0 0x0d000000   /* non-prefetchable memory (208 MiB) */
0397                           0xc2000000 0 0x20000000 0x0 0x20000000 0 0x20000000>; /* prefetchable memory (512 MiB) */
0398 
0399                 clocks = <&tegra_car TEGRA124_CLK_PCIE>,
0400                          <&tegra_car TEGRA124_CLK_AFI>,
0401                          <&tegra_car TEGRA124_CLK_PLL_E>,
0402                          <&tegra_car TEGRA124_CLK_CML0>;
0403                 clock-names = "pex", "afi", "pll_e", "cml";
0404                 resets = <&tegra_car 70>,
0405                          <&tegra_car 72>,
0406                          <&tegra_car 74>;
0407                 reset-names = "pex", "afi", "pcie_x";
0408                 status = "disabled";
0409 
0410                 pci@1,0 {
0411                         device_type = "pci";
0412                         assigned-addresses = <0x82000800 0 0x01000000 0 0x1000>;
0413                         reg = <0x000800 0 0 0 0>;
0414                         status = "disabled";
0415 
0416                         #address-cells = <3>;
0417                         #size-cells = <2>;
0418                         ranges;
0419 
0420                         nvidia,num-lanes = <2>;
0421                 };
0422 
0423                 pci@2,0 {
0424                         device_type = "pci";
0425                         assigned-addresses = <0x82001000 0 0x01001000 0 0x1000>;
0426                         reg = <0x001000 0 0 0 0>;
0427                         status = "disabled";
0428 
0429                         #address-cells = <3>;
0430                         #size-cells = <2>;
0431                         ranges;
0432 
0433                         nvidia,num-lanes = <1>;
0434                 };
0435         };
0436 
0437 Board DTS:
0438 
0439         pcie-controller@1003000 {
0440                 status = "okay";
0441 
0442                 avddio-pex-supply = <&vdd_1v05_run>;
0443                 dvddio-pex-supply = <&vdd_1v05_run>;
0444                 avdd-pex-pll-supply = <&vdd_1v05_run>;
0445                 hvdd-pex-supply = <&vdd_3v3_lp0>;
0446                 hvdd-pex-pll-e-supply = <&vdd_3v3_lp0>;
0447                 vddio-pex-ctl-supply = <&vdd_3v3_lp0>;
0448                 avdd-pll-erefe-supply = <&avdd_1v05_run>;
0449 
0450                 /* Mini PCIe */
0451                 pci@1,0 {
0452                         phys = <&{/padctl@7009f000/pads/pcie/lanes/pcie-4}>;
0453                         phy-names = "pcie-0";
0454                         status = "okay";
0455                 };
0456 
0457                 /* Gigabit Ethernet */
0458                 pci@2,0 {
0459                         phys = <&{/padctl@7009f000/pads/pcie/lanes/pcie-2}>;
0460                         phy-names = "pcie-0";
0461                         status = "okay";
0462                 };
0463         };
0464 
0465 Tegra210:
0466 ---------
0467 
0468 SoC DTSI:
0469 
0470         pcie-controller@1003000 {
0471                 compatible = "nvidia,tegra210-pcie";
0472                 device_type = "pci";
0473                 reg = <0x0 0x01003000 0x0 0x00000800   /* PADS registers */
0474                        0x0 0x01003800 0x0 0x00000800   /* AFI registers */
0475                        0x0 0x02000000 0x0 0x10000000>; /* configuration space */
0476                 reg-names = "pads", "afi", "cs";
0477                 interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>, /* controller interrupt */
0478                              <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>; /* MSI interrupt */
0479                 interrupt-names = "intr", "msi";
0480 
0481                 #interrupt-cells = <1>;
0482                 interrupt-map-mask = <0 0 0 0>;
0483                 interrupt-map = <0 0 0 0 &gic GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
0484 
0485                 bus-range = <0x00 0xff>;
0486                 #address-cells = <3>;
0487                 #size-cells = <2>;
0488 
0489                 ranges = <0x82000000 0 0x01000000 0x0 0x01000000 0 0x00001000   /* port 0 configuration space */
0490                           0x82000000 0 0x01001000 0x0 0x01001000 0 0x00001000   /* port 1 configuration space */
0491                           0x81000000 0 0x0        0x0 0x12000000 0 0x00010000   /* downstream I/O (64 KiB) */
0492                           0x82000000 0 0x13000000 0x0 0x13000000 0 0x0d000000   /* non-prefetchable memory (208 MiB) */
0493                           0xc2000000 0 0x20000000 0x0 0x20000000 0 0x20000000>; /* prefetchable memory (512 MiB) */
0494 
0495                 clocks = <&tegra_car TEGRA210_CLK_PCIE>,
0496                          <&tegra_car TEGRA210_CLK_AFI>,
0497                          <&tegra_car TEGRA210_CLK_PLL_E>,
0498                          <&tegra_car TEGRA210_CLK_CML0>;
0499                 clock-names = "pex", "afi", "pll_e", "cml";
0500                 resets = <&tegra_car 70>,
0501                          <&tegra_car 72>,
0502                          <&tegra_car 74>;
0503                 reset-names = "pex", "afi", "pcie_x";
0504                 status = "disabled";
0505 
0506                 pci@1,0 {
0507                         device_type = "pci";
0508                         assigned-addresses = <0x82000800 0 0x01000000 0 0x1000>;
0509                         reg = <0x000800 0 0 0 0>;
0510                         status = "disabled";
0511 
0512                         #address-cells = <3>;
0513                         #size-cells = <2>;
0514                         ranges;
0515 
0516                         nvidia,num-lanes = <4>;
0517                 };
0518 
0519                 pci@2,0 {
0520                         device_type = "pci";
0521                         assigned-addresses = <0x82001000 0 0x01001000 0 0x1000>;
0522                         reg = <0x001000 0 0 0 0>;
0523                         status = "disabled";
0524 
0525                         #address-cells = <3>;
0526                         #size-cells = <2>;
0527                         ranges;
0528 
0529                         nvidia,num-lanes = <1>;
0530                 };
0531         };
0532 
0533 Board DTS:
0534 
0535         pcie-controller@1003000 {
0536                 status = "okay";
0537 
0538                 avdd-pll-uerefe-supply = <&avdd_1v05_pll>;
0539                 hvddio-pex-supply = <&vdd_1v8>;
0540                 dvddio-pex-supply = <&vdd_pex_1v05>;
0541                 dvdd-pex-pll-supply = <&vdd_pex_1v05>;
0542                 hvdd-pex-pll-e-supply = <&vdd_1v8>;
0543                 vddio-pex-ctl-supply = <&vdd_1v8>;
0544 
0545                 pci@1,0 {
0546                         phys = <&{/padctl@7009f000/pads/pcie/lanes/pcie-0}>,
0547                                <&{/padctl@7009f000/pads/pcie/lanes/pcie-1}>,
0548                                <&{/padctl@7009f000/pads/pcie/lanes/pcie-2}>,
0549                                <&{/padctl@7009f000/pads/pcie/lanes/pcie-3}>;
0550                         phy-names = "pcie-0", "pcie-1", "pcie-2", "pcie-3";
0551                         status = "okay";
0552                 };
0553 
0554                 pci@2,0 {
0555                         phys = <&{/padctl@7009f000/pads/pcie/lanes/pcie-4}>;
0556                         phy-names = "pcie-0";
0557                         status = "okay";
0558                 };
0559         };
0560 
0561 Tegra186:
0562 ---------
0563 
0564 SoC DTSI:
0565 
0566         pcie@10003000 {
0567                 compatible = "nvidia,tegra186-pcie";
0568                 power-domains = <&bpmp TEGRA186_POWER_DOMAIN_PCX>;
0569                 device_type = "pci";
0570                 reg = <0x0 0x10003000 0x0 0x00000800   /* PADS registers */
0571                        0x0 0x10003800 0x0 0x00000800   /* AFI registers */
0572                        0x0 0x40000000 0x0 0x10000000>; /* configuration space */
0573                 reg-names = "pads", "afi", "cs";
0574 
0575                 interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>, /* controller interrupt */
0576                              <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>; /* MSI interrupt */
0577                 interrupt-names = "intr", "msi";
0578 
0579                 #interrupt-cells = <1>;
0580                 interrupt-map-mask = <0 0 0 0>;
0581                 interrupt-map = <0 0 0 0 &gic GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>;
0582 
0583                 bus-range = <0x00 0xff>;
0584                 #address-cells = <3>;
0585                 #size-cells = <2>;
0586 
0587                 ranges = <0x82000000 0 0x10000000 0x0 0x10000000 0 0x00001000   /* port 0 configuration space */
0588                           0x82000000 0 0x10001000 0x0 0x10001000 0 0x00001000   /* port 1 configuration space */
0589                           0x82000000 0 0x10004000 0x0 0x10004000 0 0x00001000   /* port 2 configuration space */
0590                           0x81000000 0 0x0        0x0 0x50000000 0 0x00010000   /* downstream I/O (64 KiB) */
0591                           0x82000000 0 0x50100000 0x0 0x50100000 0 0x07F00000   /* non-prefetchable memory (127 MiB) */
0592                           0xc2000000 0 0x58000000 0x0 0x58000000 0 0x28000000>; /* prefetchable memory (640 MiB) */
0593 
0594                 clocks = <&bpmp TEGRA186_CLK_AFI>,
0595                          <&bpmp TEGRA186_CLK_PCIE>,
0596                          <&bpmp TEGRA186_CLK_PLLE>;
0597                 clock-names = "afi", "pex", "pll_e";
0598 
0599                 resets = <&bpmp TEGRA186_RESET_AFI>,
0600                          <&bpmp TEGRA186_RESET_PCIE>,
0601                          <&bpmp TEGRA186_RESET_PCIEXCLK>;
0602                 reset-names = "afi", "pex", "pcie_x";
0603 
0604                 status = "disabled";
0605 
0606                 pci@1,0 {
0607                         device_type = "pci";
0608                         assigned-addresses = <0x82000800 0 0x10000000 0 0x1000>;
0609                         reg = <0x000800 0 0 0 0>;
0610                         status = "disabled";
0611 
0612                         #address-cells = <3>;
0613                         #size-cells = <2>;
0614                         ranges;
0615 
0616                         nvidia,num-lanes = <2>;
0617                 };
0618 
0619                 pci@2,0 {
0620                         device_type = "pci";
0621                         assigned-addresses = <0x82001000 0 0x10001000 0 0x1000>;
0622                         reg = <0x001000 0 0 0 0>;
0623                         status = "disabled";
0624 
0625                         #address-cells = <3>;
0626                         #size-cells = <2>;
0627                         ranges;
0628 
0629                         nvidia,num-lanes = <1>;
0630                 };
0631 
0632                 pci@3,0 {
0633                         device_type = "pci";
0634                         assigned-addresses = <0x82001800 0 0x10004000 0 0x1000>;
0635                         reg = <0x001800 0 0 0 0>;
0636                         status = "disabled";
0637 
0638                         #address-cells = <3>;
0639                         #size-cells = <2>;
0640                         ranges;
0641 
0642                         nvidia,num-lanes = <1>;
0643                 };
0644         };
0645 
0646 Board DTS:
0647 
0648         pcie@10003000 {
0649                 status = "okay";
0650 
0651                 dvdd-pex-supply = <&vdd_pex>;
0652                 hvdd-pex-pll-supply = <&vdd_1v8>;
0653                 hvdd-pex-supply = <&vdd_1v8>;
0654                 vddio-pexctl-aud-supply = <&vdd_1v8>;
0655 
0656                 pci@1,0 {
0657                         nvidia,num-lanes = <4>;
0658                         status = "okay";
0659                 };
0660 
0661                 pci@2,0 {
0662                         nvidia,num-lanes = <0>;
0663                         status = "disabled";
0664                 };
0665 
0666                 pci@3,0 {
0667                         nvidia,num-lanes = <1>;
0668                         status = "disabled";
0669                 };
0670         };