cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

nvidia,tegra20-pcie.txt (20697B)


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