18c2ecf20Sopenharmony_ciNVIDIA Tegra PCIe controller
28c2ecf20Sopenharmony_ci
38c2ecf20Sopenharmony_ciRequired properties:
48c2ecf20Sopenharmony_ci- compatible: Must be:
58c2ecf20Sopenharmony_ci  - "nvidia,tegra20-pcie": for Tegra20
68c2ecf20Sopenharmony_ci  - "nvidia,tegra30-pcie": for Tegra30
78c2ecf20Sopenharmony_ci  - "nvidia,tegra124-pcie": for Tegra124 and Tegra132
88c2ecf20Sopenharmony_ci  - "nvidia,tegra210-pcie": for Tegra210
98c2ecf20Sopenharmony_ci  - "nvidia,tegra186-pcie": for Tegra186
108c2ecf20Sopenharmony_ci- power-domains: To ungate power partition by BPMP powergate driver. Must
118c2ecf20Sopenharmony_ci  contain BPMP phandle and PCIe power partition ID. This is required only
128c2ecf20Sopenharmony_ci  for Tegra186.
138c2ecf20Sopenharmony_ci- device_type: Must be "pci"
148c2ecf20Sopenharmony_ci- reg: A list of physical base address and length for each set of controller
158c2ecf20Sopenharmony_ci  registers. Must contain an entry for each entry in the reg-names property.
168c2ecf20Sopenharmony_ci- reg-names: Must include the following entries:
178c2ecf20Sopenharmony_ci  "pads": PADS registers
188c2ecf20Sopenharmony_ci  "afi": AFI registers
198c2ecf20Sopenharmony_ci  "cs": configuration space region
208c2ecf20Sopenharmony_ci- interrupts: A list of interrupt outputs of the controller. Must contain an
218c2ecf20Sopenharmony_ci  entry for each entry in the interrupt-names property.
228c2ecf20Sopenharmony_ci- interrupt-names: Must include the following entries:
238c2ecf20Sopenharmony_ci  "intr": The Tegra interrupt that is asserted for controller interrupts
248c2ecf20Sopenharmony_ci  "msi": The Tegra interrupt that is asserted when an MSI is received
258c2ecf20Sopenharmony_ci- bus-range: Range of bus numbers associated with this controller
268c2ecf20Sopenharmony_ci- #address-cells: Address representation for root ports (must be 3)
278c2ecf20Sopenharmony_ci  - cell 0 specifies the bus and device numbers of the root port:
288c2ecf20Sopenharmony_ci    [23:16]: bus number
298c2ecf20Sopenharmony_ci    [15:11]: device number
308c2ecf20Sopenharmony_ci  - cell 1 denotes the upper 32 address bits and should be 0
318c2ecf20Sopenharmony_ci  - cell 2 contains the lower 32 address bits and is used to translate to the
328c2ecf20Sopenharmony_ci    CPU address space
338c2ecf20Sopenharmony_ci- #size-cells: Size representation for root ports (must be 2)
348c2ecf20Sopenharmony_ci- ranges: Describes the translation of addresses for root ports and standard
358c2ecf20Sopenharmony_ci  PCI regions. The entries must be 6 cells each, where the first three cells
368c2ecf20Sopenharmony_ci  correspond to the address as described for the #address-cells property
378c2ecf20Sopenharmony_ci  above, the fourth cell is the physical CPU address to translate to and the
388c2ecf20Sopenharmony_ci  fifth and six cells are as described for the #size-cells property above.
398c2ecf20Sopenharmony_ci  - The first two entries are expected to translate the addresses for the root
408c2ecf20Sopenharmony_ci    port registers, which are referenced by the assigned-addresses property of
418c2ecf20Sopenharmony_ci    the root port nodes (see below).
428c2ecf20Sopenharmony_ci  - The remaining entries setup the mapping for the standard I/O, memory and
438c2ecf20Sopenharmony_ci    prefetchable PCI regions. The first cell determines the type of region
448c2ecf20Sopenharmony_ci    that is setup:
458c2ecf20Sopenharmony_ci    - 0x81000000: I/O memory region
468c2ecf20Sopenharmony_ci    - 0x82000000: non-prefetchable memory region
478c2ecf20Sopenharmony_ci    - 0xc2000000: prefetchable memory region
488c2ecf20Sopenharmony_ci  Please refer to the standard PCI bus binding document for a more detailed
498c2ecf20Sopenharmony_ci  explanation.
508c2ecf20Sopenharmony_ci- #interrupt-cells: Size representation for interrupts (must be 1)
518c2ecf20Sopenharmony_ci- interrupt-map-mask and interrupt-map: Standard PCI IRQ mapping properties
528c2ecf20Sopenharmony_ci  Please refer to the standard PCI bus binding document for a more detailed
538c2ecf20Sopenharmony_ci  explanation.
548c2ecf20Sopenharmony_ci- clocks: Must contain an entry for each entry in clock-names.
558c2ecf20Sopenharmony_ci  See ../clocks/clock-bindings.txt for details.
568c2ecf20Sopenharmony_ci- clock-names: Must include the following entries:
578c2ecf20Sopenharmony_ci  - pex
588c2ecf20Sopenharmony_ci  - afi
598c2ecf20Sopenharmony_ci  - pll_e
608c2ecf20Sopenharmony_ci  - cml (not required for Tegra20)
618c2ecf20Sopenharmony_ci- resets: Must contain an entry for each entry in reset-names.
628c2ecf20Sopenharmony_ci  See ../reset/reset.txt for details.
638c2ecf20Sopenharmony_ci- reset-names: Must include the following entries:
648c2ecf20Sopenharmony_ci  - pex
658c2ecf20Sopenharmony_ci  - afi
668c2ecf20Sopenharmony_ci  - pcie_x
678c2ecf20Sopenharmony_ci
688c2ecf20Sopenharmony_ciOptional properties:
698c2ecf20Sopenharmony_ci- pinctrl-names: A list of pinctrl state names. Must contain the following
708c2ecf20Sopenharmony_ci  entries:
718c2ecf20Sopenharmony_ci  - "default": active state, puts PCIe I/O out of deep power down state
728c2ecf20Sopenharmony_ci  - "idle": puts PCIe I/O into deep power down state
738c2ecf20Sopenharmony_ci- pinctrl-0: phandle for the default/active state of pin configurations.
748c2ecf20Sopenharmony_ci- pinctrl-1: phandle for the idle state of pin configurations.
758c2ecf20Sopenharmony_ci
768c2ecf20Sopenharmony_ciRequired properties on Tegra124 and later (deprecated):
778c2ecf20Sopenharmony_ci- phys: Must contain an entry for each entry in phy-names.
788c2ecf20Sopenharmony_ci- phy-names: Must include the following entries:
798c2ecf20Sopenharmony_ci  - pcie
808c2ecf20Sopenharmony_ci
818c2ecf20Sopenharmony_ciThese properties are deprecated in favour of per-lane PHYs define in each of
828c2ecf20Sopenharmony_cithe root ports (see below).
838c2ecf20Sopenharmony_ci
848c2ecf20Sopenharmony_ciPower supplies for Tegra20:
858c2ecf20Sopenharmony_ci- avdd-pex-supply: Power supply for analog PCIe logic. Must supply 1.05 V.
868c2ecf20Sopenharmony_ci- vdd-pex-supply: Power supply for digital PCIe I/O. Must supply 1.05 V.
878c2ecf20Sopenharmony_ci- avdd-pex-pll-supply: Power supply for dedicated (internal) PCIe PLL. Must
888c2ecf20Sopenharmony_ci  supply 1.05 V.
898c2ecf20Sopenharmony_ci- avdd-plle-supply: Power supply for PLLE, which is shared with SATA. Must
908c2ecf20Sopenharmony_ci  supply 1.05 V.
918c2ecf20Sopenharmony_ci- vddio-pex-clk-supply: Power supply for PCIe clock. Must supply 3.3 V.
928c2ecf20Sopenharmony_ci
938c2ecf20Sopenharmony_ciPower supplies for Tegra30:
948c2ecf20Sopenharmony_ci- Required:
958c2ecf20Sopenharmony_ci  - avdd-pex-pll-supply: Power supply for dedicated (internal) PCIe PLL. Must
968c2ecf20Sopenharmony_ci    supply 1.05 V.
978c2ecf20Sopenharmony_ci  - avdd-plle-supply: Power supply for PLLE, which is shared with SATA. Must
988c2ecf20Sopenharmony_ci    supply 1.05 V.
998c2ecf20Sopenharmony_ci  - vddio-pex-ctl-supply: Power supply for PCIe control I/O partition. Must
1008c2ecf20Sopenharmony_ci    supply 1.8 V.
1018c2ecf20Sopenharmony_ci  - hvdd-pex-supply: High-voltage supply for PCIe I/O and PCIe output clocks.
1028c2ecf20Sopenharmony_ci    Must supply 3.3 V.
1038c2ecf20Sopenharmony_ci- Optional:
1048c2ecf20Sopenharmony_ci  - If lanes 0 to 3 are used:
1058c2ecf20Sopenharmony_ci    - avdd-pexa-supply: Power supply for analog PCIe logic. Must supply 1.05 V.
1068c2ecf20Sopenharmony_ci    - vdd-pexa-supply: Power supply for digital PCIe I/O. Must supply 1.05 V.
1078c2ecf20Sopenharmony_ci  - If lanes 4 or 5 are used:
1088c2ecf20Sopenharmony_ci    - avdd-pexb-supply: Power supply for analog PCIe logic. Must supply 1.05 V.
1098c2ecf20Sopenharmony_ci    - vdd-pexb-supply: Power supply for digital PCIe I/O. Must supply 1.05 V.
1108c2ecf20Sopenharmony_ci
1118c2ecf20Sopenharmony_ciPower supplies for Tegra124:
1128c2ecf20Sopenharmony_ci- Required:
1138c2ecf20Sopenharmony_ci  - avddio-pex-supply: Power supply for analog PCIe logic. Must supply 1.05 V.
1148c2ecf20Sopenharmony_ci  - dvddio-pex-supply: Power supply for digital PCIe I/O. Must supply 1.05 V.
1158c2ecf20Sopenharmony_ci  - hvdd-pex-supply: High-voltage supply for PCIe I/O and PCIe output clocks.
1168c2ecf20Sopenharmony_ci    Must supply 3.3 V.
1178c2ecf20Sopenharmony_ci  - vddio-pex-ctl-supply: Power supply for PCIe control I/O partition. Must
1188c2ecf20Sopenharmony_ci    supply 2.8-3.3 V.
1198c2ecf20Sopenharmony_ci
1208c2ecf20Sopenharmony_ciPower supplies for Tegra210:
1218c2ecf20Sopenharmony_ci- Required:
1228c2ecf20Sopenharmony_ci  - hvddio-pex-supply: High-voltage supply for PCIe I/O and PCIe output
1238c2ecf20Sopenharmony_ci    clocks. Must supply 1.8 V.
1248c2ecf20Sopenharmony_ci  - dvddio-pex-supply: Power supply for digital PCIe I/O. Must supply 1.05 V.
1258c2ecf20Sopenharmony_ci  - vddio-pex-ctl-supply: Power supply for PCIe control I/O partition. Must
1268c2ecf20Sopenharmony_ci    supply 1.8 V.
1278c2ecf20Sopenharmony_ci
1288c2ecf20Sopenharmony_ciPower supplies for Tegra186:
1298c2ecf20Sopenharmony_ci- Required:
1308c2ecf20Sopenharmony_ci  - dvdd-pex-supply: Power supply for digital PCIe I/O. Must supply 1.05 V.
1318c2ecf20Sopenharmony_ci  - hvdd-pex-pll-supply: High-voltage supply for PLLE (shared with USB3). Must
1328c2ecf20Sopenharmony_ci    supply 1.8 V.
1338c2ecf20Sopenharmony_ci  - hvdd-pex-supply: High-voltage supply for PCIe I/O and PCIe output clocks.
1348c2ecf20Sopenharmony_ci    Must supply 1.8 V.
1358c2ecf20Sopenharmony_ci  - vddio-pexctl-aud-supply: Power supply for PCIe side band signals. Must
1368c2ecf20Sopenharmony_ci    supply 1.8 V.
1378c2ecf20Sopenharmony_ci
1388c2ecf20Sopenharmony_ciRoot ports are defined as subnodes of the PCIe controller node.
1398c2ecf20Sopenharmony_ci
1408c2ecf20Sopenharmony_ciRequired properties:
1418c2ecf20Sopenharmony_ci- device_type: Must be "pci"
1428c2ecf20Sopenharmony_ci- assigned-addresses: Address and size of the port configuration registers
1438c2ecf20Sopenharmony_ci- reg: PCI bus address of the root port
1448c2ecf20Sopenharmony_ci- #address-cells: Must be 3
1458c2ecf20Sopenharmony_ci- #size-cells: Must be 2
1468c2ecf20Sopenharmony_ci- ranges: Sub-ranges distributed from the PCIe controller node. An empty
1478c2ecf20Sopenharmony_ci  property is sufficient.
1488c2ecf20Sopenharmony_ci- nvidia,num-lanes: Number of lanes to use for this port. Valid combinations
1498c2ecf20Sopenharmony_ci  are:
1508c2ecf20Sopenharmony_ci  - Root port 0 uses 4 lanes, root port 1 is unused.
1518c2ecf20Sopenharmony_ci  - Both root ports use 2 lanes.
1528c2ecf20Sopenharmony_ci
1538c2ecf20Sopenharmony_ciRequired properties for Tegra124 and later:
1548c2ecf20Sopenharmony_ci- phys: Must contain an phandle to a PHY for each entry in phy-names.
1558c2ecf20Sopenharmony_ci- phy-names: Must include an entry for each active lane. Note that the number
1568c2ecf20Sopenharmony_ci  of entries does not have to (though usually will) be equal to the specified
1578c2ecf20Sopenharmony_ci  number of lanes in the nvidia,num-lanes property. Entries are of the form
1588c2ecf20Sopenharmony_ci  "pcie-N": where N ranges from 0 to the value specified in nvidia,num-lanes.
1598c2ecf20Sopenharmony_ci
1608c2ecf20Sopenharmony_ciExamples:
1618c2ecf20Sopenharmony_ci=========
1628c2ecf20Sopenharmony_ci
1638c2ecf20Sopenharmony_ciTegra20:
1648c2ecf20Sopenharmony_ci--------
1658c2ecf20Sopenharmony_ci
1668c2ecf20Sopenharmony_ciSoC DTSI:
1678c2ecf20Sopenharmony_ci
1688c2ecf20Sopenharmony_ci	pcie-controller@80003000 {
1698c2ecf20Sopenharmony_ci		compatible = "nvidia,tegra20-pcie";
1708c2ecf20Sopenharmony_ci		device_type = "pci";
1718c2ecf20Sopenharmony_ci		reg = <0x80003000 0x00000800   /* PADS registers */
1728c2ecf20Sopenharmony_ci		       0x80003800 0x00000200   /* AFI registers */
1738c2ecf20Sopenharmony_ci		       0x90000000 0x10000000>; /* configuration space */
1748c2ecf20Sopenharmony_ci		reg-names = "pads", "afi", "cs";
1758c2ecf20Sopenharmony_ci		interrupts = <0 98 0x04   /* controller interrupt */
1768c2ecf20Sopenharmony_ci		              0 99 0x04>; /* MSI interrupt */
1778c2ecf20Sopenharmony_ci		interrupt-names = "intr", "msi";
1788c2ecf20Sopenharmony_ci
1798c2ecf20Sopenharmony_ci		#interrupt-cells = <1>;
1808c2ecf20Sopenharmony_ci		interrupt-map-mask = <0 0 0 0>;
1818c2ecf20Sopenharmony_ci		interrupt-map = <0 0 0 0 &intc GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
1828c2ecf20Sopenharmony_ci
1838c2ecf20Sopenharmony_ci		bus-range = <0x00 0xff>;
1848c2ecf20Sopenharmony_ci		#address-cells = <3>;
1858c2ecf20Sopenharmony_ci		#size-cells = <2>;
1868c2ecf20Sopenharmony_ci
1878c2ecf20Sopenharmony_ci		ranges = <0x82000000 0 0x80000000 0x80000000 0 0x00001000   /* port 0 registers */
1888c2ecf20Sopenharmony_ci			  0x82000000 0 0x80001000 0x80001000 0 0x00001000   /* port 1 registers */
1898c2ecf20Sopenharmony_ci			  0x81000000 0 0          0x82000000 0 0x00010000   /* downstream I/O */
1908c2ecf20Sopenharmony_ci			  0x82000000 0 0xa0000000 0xa0000000 0 0x10000000   /* non-prefetchable memory */
1918c2ecf20Sopenharmony_ci			  0xc2000000 0 0xb0000000 0xb0000000 0 0x10000000>; /* prefetchable memory */
1928c2ecf20Sopenharmony_ci
1938c2ecf20Sopenharmony_ci		clocks = <&tegra_car 70>, <&tegra_car 72>, <&tegra_car 118>;
1948c2ecf20Sopenharmony_ci		clock-names = "pex", "afi", "pll_e";
1958c2ecf20Sopenharmony_ci		resets = <&tegra_car 70>, <&tegra_car 72>, <&tegra_car 74>;
1968c2ecf20Sopenharmony_ci		reset-names = "pex", "afi", "pcie_x";
1978c2ecf20Sopenharmony_ci		status = "disabled";
1988c2ecf20Sopenharmony_ci
1998c2ecf20Sopenharmony_ci		pci@1,0 {
2008c2ecf20Sopenharmony_ci			device_type = "pci";
2018c2ecf20Sopenharmony_ci			assigned-addresses = <0x82000800 0 0x80000000 0 0x1000>;
2028c2ecf20Sopenharmony_ci			reg = <0x000800 0 0 0 0>;
2038c2ecf20Sopenharmony_ci			status = "disabled";
2048c2ecf20Sopenharmony_ci
2058c2ecf20Sopenharmony_ci			#address-cells = <3>;
2068c2ecf20Sopenharmony_ci			#size-cells = <2>;
2078c2ecf20Sopenharmony_ci
2088c2ecf20Sopenharmony_ci			ranges;
2098c2ecf20Sopenharmony_ci
2108c2ecf20Sopenharmony_ci			nvidia,num-lanes = <2>;
2118c2ecf20Sopenharmony_ci		};
2128c2ecf20Sopenharmony_ci
2138c2ecf20Sopenharmony_ci		pci@2,0 {
2148c2ecf20Sopenharmony_ci			device_type = "pci";
2158c2ecf20Sopenharmony_ci			assigned-addresses = <0x82001000 0 0x80001000 0 0x1000>;
2168c2ecf20Sopenharmony_ci			reg = <0x001000 0 0 0 0>;
2178c2ecf20Sopenharmony_ci			status = "disabled";
2188c2ecf20Sopenharmony_ci
2198c2ecf20Sopenharmony_ci			#address-cells = <3>;
2208c2ecf20Sopenharmony_ci			#size-cells = <2>;
2218c2ecf20Sopenharmony_ci
2228c2ecf20Sopenharmony_ci			ranges;
2238c2ecf20Sopenharmony_ci
2248c2ecf20Sopenharmony_ci			nvidia,num-lanes = <2>;
2258c2ecf20Sopenharmony_ci		};
2268c2ecf20Sopenharmony_ci	};
2278c2ecf20Sopenharmony_ci
2288c2ecf20Sopenharmony_ciBoard DTS:
2298c2ecf20Sopenharmony_ci
2308c2ecf20Sopenharmony_ci	pcie-controller@80003000 {
2318c2ecf20Sopenharmony_ci		status = "okay";
2328c2ecf20Sopenharmony_ci
2338c2ecf20Sopenharmony_ci		vdd-supply = <&pci_vdd_reg>;
2348c2ecf20Sopenharmony_ci		pex-clk-supply = <&pci_clk_reg>;
2358c2ecf20Sopenharmony_ci
2368c2ecf20Sopenharmony_ci		/* root port 00:01.0 */
2378c2ecf20Sopenharmony_ci		pci@1,0 {
2388c2ecf20Sopenharmony_ci			status = "okay";
2398c2ecf20Sopenharmony_ci
2408c2ecf20Sopenharmony_ci			/* bridge 01:00.0 (optional) */
2418c2ecf20Sopenharmony_ci			pci@0,0 {
2428c2ecf20Sopenharmony_ci				reg = <0x010000 0 0 0 0>;
2438c2ecf20Sopenharmony_ci
2448c2ecf20Sopenharmony_ci				#address-cells = <3>;
2458c2ecf20Sopenharmony_ci				#size-cells = <2>;
2468c2ecf20Sopenharmony_ci
2478c2ecf20Sopenharmony_ci				device_type = "pci";
2488c2ecf20Sopenharmony_ci
2498c2ecf20Sopenharmony_ci				/* endpoint 02:00.0 */
2508c2ecf20Sopenharmony_ci				pci@0,0 {
2518c2ecf20Sopenharmony_ci					reg = <0x020000 0 0 0 0>;
2528c2ecf20Sopenharmony_ci				};
2538c2ecf20Sopenharmony_ci			};
2548c2ecf20Sopenharmony_ci		};
2558c2ecf20Sopenharmony_ci	};
2568c2ecf20Sopenharmony_ci
2578c2ecf20Sopenharmony_ciNote that devices on the PCI bus are dynamically discovered using PCI's bus
2588c2ecf20Sopenharmony_cienumeration and therefore don't need corresponding device nodes in DT. However
2598c2ecf20Sopenharmony_ciif a device on the PCI bus provides a non-probeable bus such as I2C or SPI,
2608c2ecf20Sopenharmony_cidevice nodes need to be added in order to allow the bus' children to be
2618c2ecf20Sopenharmony_ciinstantiated at the proper location in the operating system's device tree (as
2628c2ecf20Sopenharmony_ciillustrated by the optional nodes in the example above).
2638c2ecf20Sopenharmony_ci
2648c2ecf20Sopenharmony_ciTegra30:
2658c2ecf20Sopenharmony_ci--------
2668c2ecf20Sopenharmony_ci
2678c2ecf20Sopenharmony_ciSoC DTSI:
2688c2ecf20Sopenharmony_ci
2698c2ecf20Sopenharmony_ci	pcie-controller@3000 {
2708c2ecf20Sopenharmony_ci		compatible = "nvidia,tegra30-pcie";
2718c2ecf20Sopenharmony_ci		device_type = "pci";
2728c2ecf20Sopenharmony_ci		reg = <0x00003000 0x00000800   /* PADS registers */
2738c2ecf20Sopenharmony_ci		       0x00003800 0x00000200   /* AFI registers */
2748c2ecf20Sopenharmony_ci		       0x10000000 0x10000000>; /* configuration space */
2758c2ecf20Sopenharmony_ci		reg-names = "pads", "afi", "cs";
2768c2ecf20Sopenharmony_ci		interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH   /* controller interrupt */
2778c2ecf20Sopenharmony_ci			      GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>; /* MSI interrupt */
2788c2ecf20Sopenharmony_ci		interrupt-names = "intr", "msi";
2798c2ecf20Sopenharmony_ci
2808c2ecf20Sopenharmony_ci		#interrupt-cells = <1>;
2818c2ecf20Sopenharmony_ci		interrupt-map-mask = <0 0 0 0>;
2828c2ecf20Sopenharmony_ci		interrupt-map = <0 0 0 0 &intc GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
2838c2ecf20Sopenharmony_ci
2848c2ecf20Sopenharmony_ci		bus-range = <0x00 0xff>;
2858c2ecf20Sopenharmony_ci		#address-cells = <3>;
2868c2ecf20Sopenharmony_ci		#size-cells = <2>;
2878c2ecf20Sopenharmony_ci
2888c2ecf20Sopenharmony_ci		ranges = <0x82000000 0 0x00000000 0x00000000 0 0x00001000   /* port 0 configuration space */
2898c2ecf20Sopenharmony_ci			  0x82000000 0 0x00001000 0x00001000 0 0x00001000   /* port 1 configuration space */
2908c2ecf20Sopenharmony_ci			  0x82000000 0 0x00004000 0x00004000 0 0x00001000   /* port 2 configuration space */
2918c2ecf20Sopenharmony_ci			  0x81000000 0 0          0x02000000 0 0x00010000   /* downstream I/O */
2928c2ecf20Sopenharmony_ci			  0x82000000 0 0x20000000 0x20000000 0 0x08000000   /* non-prefetchable memory */
2938c2ecf20Sopenharmony_ci			  0xc2000000 0 0x28000000 0x28000000 0 0x18000000>; /* prefetchable memory */
2948c2ecf20Sopenharmony_ci
2958c2ecf20Sopenharmony_ci		clocks = <&tegra_car TEGRA30_CLK_PCIE>,
2968c2ecf20Sopenharmony_ci			 <&tegra_car TEGRA30_CLK_AFI>,
2978c2ecf20Sopenharmony_ci			 <&tegra_car TEGRA30_CLK_PLL_E>,
2988c2ecf20Sopenharmony_ci			 <&tegra_car TEGRA30_CLK_CML0>;
2998c2ecf20Sopenharmony_ci		clock-names = "pex", "afi", "pll_e", "cml";
3008c2ecf20Sopenharmony_ci		resets = <&tegra_car 70>,
3018c2ecf20Sopenharmony_ci			 <&tegra_car 72>,
3028c2ecf20Sopenharmony_ci			 <&tegra_car 74>;
3038c2ecf20Sopenharmony_ci		reset-names = "pex", "afi", "pcie_x";
3048c2ecf20Sopenharmony_ci		status = "disabled";
3058c2ecf20Sopenharmony_ci
3068c2ecf20Sopenharmony_ci		pci@1,0 {
3078c2ecf20Sopenharmony_ci			device_type = "pci";
3088c2ecf20Sopenharmony_ci			assigned-addresses = <0x82000800 0 0x00000000 0 0x1000>;
3098c2ecf20Sopenharmony_ci			reg = <0x000800 0 0 0 0>;
3108c2ecf20Sopenharmony_ci			status = "disabled";
3118c2ecf20Sopenharmony_ci
3128c2ecf20Sopenharmony_ci			#address-cells = <3>;
3138c2ecf20Sopenharmony_ci			#size-cells = <2>;
3148c2ecf20Sopenharmony_ci			ranges;
3158c2ecf20Sopenharmony_ci
3168c2ecf20Sopenharmony_ci			nvidia,num-lanes = <2>;
3178c2ecf20Sopenharmony_ci		};
3188c2ecf20Sopenharmony_ci
3198c2ecf20Sopenharmony_ci		pci@2,0 {
3208c2ecf20Sopenharmony_ci			device_type = "pci";
3218c2ecf20Sopenharmony_ci			assigned-addresses = <0x82001000 0 0x00001000 0 0x1000>;
3228c2ecf20Sopenharmony_ci			reg = <0x001000 0 0 0 0>;
3238c2ecf20Sopenharmony_ci			status = "disabled";
3248c2ecf20Sopenharmony_ci
3258c2ecf20Sopenharmony_ci			#address-cells = <3>;
3268c2ecf20Sopenharmony_ci			#size-cells = <2>;
3278c2ecf20Sopenharmony_ci			ranges;
3288c2ecf20Sopenharmony_ci
3298c2ecf20Sopenharmony_ci			nvidia,num-lanes = <2>;
3308c2ecf20Sopenharmony_ci		};
3318c2ecf20Sopenharmony_ci
3328c2ecf20Sopenharmony_ci		pci@3,0 {
3338c2ecf20Sopenharmony_ci			device_type = "pci";
3348c2ecf20Sopenharmony_ci			assigned-addresses = <0x82001800 0 0x00004000 0 0x1000>;
3358c2ecf20Sopenharmony_ci			reg = <0x001800 0 0 0 0>;
3368c2ecf20Sopenharmony_ci			status = "disabled";
3378c2ecf20Sopenharmony_ci
3388c2ecf20Sopenharmony_ci			#address-cells = <3>;
3398c2ecf20Sopenharmony_ci			#size-cells = <2>;
3408c2ecf20Sopenharmony_ci			ranges;
3418c2ecf20Sopenharmony_ci
3428c2ecf20Sopenharmony_ci			nvidia,num-lanes = <2>;
3438c2ecf20Sopenharmony_ci		};
3448c2ecf20Sopenharmony_ci	};
3458c2ecf20Sopenharmony_ci
3468c2ecf20Sopenharmony_ciBoard DTS:
3478c2ecf20Sopenharmony_ci
3488c2ecf20Sopenharmony_ci	pcie-controller@3000 {
3498c2ecf20Sopenharmony_ci		status = "okay";
3508c2ecf20Sopenharmony_ci
3518c2ecf20Sopenharmony_ci		avdd-pexa-supply = <&ldo1_reg>;
3528c2ecf20Sopenharmony_ci		vdd-pexa-supply = <&ldo1_reg>;
3538c2ecf20Sopenharmony_ci		avdd-pexb-supply = <&ldo1_reg>;
3548c2ecf20Sopenharmony_ci		vdd-pexb-supply = <&ldo1_reg>;
3558c2ecf20Sopenharmony_ci		avdd-pex-pll-supply = <&ldo1_reg>;
3568c2ecf20Sopenharmony_ci		avdd-plle-supply = <&ldo1_reg>;
3578c2ecf20Sopenharmony_ci		vddio-pex-ctl-supply = <&sys_3v3_reg>;
3588c2ecf20Sopenharmony_ci		hvdd-pex-supply = <&sys_3v3_pexs_reg>;
3598c2ecf20Sopenharmony_ci
3608c2ecf20Sopenharmony_ci		pci@1,0 {
3618c2ecf20Sopenharmony_ci			status = "okay";
3628c2ecf20Sopenharmony_ci		};
3638c2ecf20Sopenharmony_ci
3648c2ecf20Sopenharmony_ci		pci@3,0 {
3658c2ecf20Sopenharmony_ci			status = "okay";
3668c2ecf20Sopenharmony_ci		};
3678c2ecf20Sopenharmony_ci	};
3688c2ecf20Sopenharmony_ci
3698c2ecf20Sopenharmony_ciTegra124:
3708c2ecf20Sopenharmony_ci---------
3718c2ecf20Sopenharmony_ci
3728c2ecf20Sopenharmony_ciSoC DTSI:
3738c2ecf20Sopenharmony_ci
3748c2ecf20Sopenharmony_ci	pcie-controller@1003000 {
3758c2ecf20Sopenharmony_ci		compatible = "nvidia,tegra124-pcie";
3768c2ecf20Sopenharmony_ci		device_type = "pci";
3778c2ecf20Sopenharmony_ci		reg = <0x0 0x01003000 0x0 0x00000800   /* PADS registers */
3788c2ecf20Sopenharmony_ci		       0x0 0x01003800 0x0 0x00000800   /* AFI registers */
3798c2ecf20Sopenharmony_ci		       0x0 0x02000000 0x0 0x10000000>; /* configuration space */
3808c2ecf20Sopenharmony_ci		reg-names = "pads", "afi", "cs";
3818c2ecf20Sopenharmony_ci		interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>, /* controller interrupt */
3828c2ecf20Sopenharmony_ci			     <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>; /* MSI interrupt */
3838c2ecf20Sopenharmony_ci		interrupt-names = "intr", "msi";
3848c2ecf20Sopenharmony_ci
3858c2ecf20Sopenharmony_ci		#interrupt-cells = <1>;
3868c2ecf20Sopenharmony_ci		interrupt-map-mask = <0 0 0 0>;
3878c2ecf20Sopenharmony_ci		interrupt-map = <0 0 0 0 &gic GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
3888c2ecf20Sopenharmony_ci
3898c2ecf20Sopenharmony_ci		bus-range = <0x00 0xff>;
3908c2ecf20Sopenharmony_ci		#address-cells = <3>;
3918c2ecf20Sopenharmony_ci		#size-cells = <2>;
3928c2ecf20Sopenharmony_ci
3938c2ecf20Sopenharmony_ci		ranges = <0x82000000 0 0x01000000 0x0 0x01000000 0 0x00001000   /* port 0 configuration space */
3948c2ecf20Sopenharmony_ci			  0x82000000 0 0x01001000 0x0 0x01001000 0 0x00001000   /* port 1 configuration space */
3958c2ecf20Sopenharmony_ci			  0x81000000 0 0x0        0x0 0x12000000 0 0x00010000   /* downstream I/O (64 KiB) */
3968c2ecf20Sopenharmony_ci			  0x82000000 0 0x13000000 0x0 0x13000000 0 0x0d000000   /* non-prefetchable memory (208 MiB) */
3978c2ecf20Sopenharmony_ci			  0xc2000000 0 0x20000000 0x0 0x20000000 0 0x20000000>; /* prefetchable memory (512 MiB) */
3988c2ecf20Sopenharmony_ci
3998c2ecf20Sopenharmony_ci		clocks = <&tegra_car TEGRA124_CLK_PCIE>,
4008c2ecf20Sopenharmony_ci			 <&tegra_car TEGRA124_CLK_AFI>,
4018c2ecf20Sopenharmony_ci			 <&tegra_car TEGRA124_CLK_PLL_E>,
4028c2ecf20Sopenharmony_ci			 <&tegra_car TEGRA124_CLK_CML0>;
4038c2ecf20Sopenharmony_ci		clock-names = "pex", "afi", "pll_e", "cml";
4048c2ecf20Sopenharmony_ci		resets = <&tegra_car 70>,
4058c2ecf20Sopenharmony_ci			 <&tegra_car 72>,
4068c2ecf20Sopenharmony_ci			 <&tegra_car 74>;
4078c2ecf20Sopenharmony_ci		reset-names = "pex", "afi", "pcie_x";
4088c2ecf20Sopenharmony_ci		status = "disabled";
4098c2ecf20Sopenharmony_ci
4108c2ecf20Sopenharmony_ci		pci@1,0 {
4118c2ecf20Sopenharmony_ci			device_type = "pci";
4128c2ecf20Sopenharmony_ci			assigned-addresses = <0x82000800 0 0x01000000 0 0x1000>;
4138c2ecf20Sopenharmony_ci			reg = <0x000800 0 0 0 0>;
4148c2ecf20Sopenharmony_ci			status = "disabled";
4158c2ecf20Sopenharmony_ci
4168c2ecf20Sopenharmony_ci			#address-cells = <3>;
4178c2ecf20Sopenharmony_ci			#size-cells = <2>;
4188c2ecf20Sopenharmony_ci			ranges;
4198c2ecf20Sopenharmony_ci
4208c2ecf20Sopenharmony_ci			nvidia,num-lanes = <2>;
4218c2ecf20Sopenharmony_ci		};
4228c2ecf20Sopenharmony_ci
4238c2ecf20Sopenharmony_ci		pci@2,0 {
4248c2ecf20Sopenharmony_ci			device_type = "pci";
4258c2ecf20Sopenharmony_ci			assigned-addresses = <0x82001000 0 0x01001000 0 0x1000>;
4268c2ecf20Sopenharmony_ci			reg = <0x001000 0 0 0 0>;
4278c2ecf20Sopenharmony_ci			status = "disabled";
4288c2ecf20Sopenharmony_ci
4298c2ecf20Sopenharmony_ci			#address-cells = <3>;
4308c2ecf20Sopenharmony_ci			#size-cells = <2>;
4318c2ecf20Sopenharmony_ci			ranges;
4328c2ecf20Sopenharmony_ci
4338c2ecf20Sopenharmony_ci			nvidia,num-lanes = <1>;
4348c2ecf20Sopenharmony_ci		};
4358c2ecf20Sopenharmony_ci	};
4368c2ecf20Sopenharmony_ci
4378c2ecf20Sopenharmony_ciBoard DTS:
4388c2ecf20Sopenharmony_ci
4398c2ecf20Sopenharmony_ci	pcie-controller@1003000 {
4408c2ecf20Sopenharmony_ci		status = "okay";
4418c2ecf20Sopenharmony_ci
4428c2ecf20Sopenharmony_ci		avddio-pex-supply = <&vdd_1v05_run>;
4438c2ecf20Sopenharmony_ci		dvddio-pex-supply = <&vdd_1v05_run>;
4448c2ecf20Sopenharmony_ci		avdd-pex-pll-supply = <&vdd_1v05_run>;
4458c2ecf20Sopenharmony_ci		hvdd-pex-supply = <&vdd_3v3_lp0>;
4468c2ecf20Sopenharmony_ci		hvdd-pex-pll-e-supply = <&vdd_3v3_lp0>;
4478c2ecf20Sopenharmony_ci		vddio-pex-ctl-supply = <&vdd_3v3_lp0>;
4488c2ecf20Sopenharmony_ci		avdd-pll-erefe-supply = <&avdd_1v05_run>;
4498c2ecf20Sopenharmony_ci
4508c2ecf20Sopenharmony_ci		/* Mini PCIe */
4518c2ecf20Sopenharmony_ci		pci@1,0 {
4528c2ecf20Sopenharmony_ci			phys = <&{/padctl@7009f000/pads/pcie/lanes/pcie-4}>;
4538c2ecf20Sopenharmony_ci			phy-names = "pcie-0";
4548c2ecf20Sopenharmony_ci			status = "okay";
4558c2ecf20Sopenharmony_ci		};
4568c2ecf20Sopenharmony_ci
4578c2ecf20Sopenharmony_ci		/* Gigabit Ethernet */
4588c2ecf20Sopenharmony_ci		pci@2,0 {
4598c2ecf20Sopenharmony_ci			phys = <&{/padctl@7009f000/pads/pcie/lanes/pcie-2}>;
4608c2ecf20Sopenharmony_ci			phy-names = "pcie-0";
4618c2ecf20Sopenharmony_ci			status = "okay";
4628c2ecf20Sopenharmony_ci		};
4638c2ecf20Sopenharmony_ci	};
4648c2ecf20Sopenharmony_ci
4658c2ecf20Sopenharmony_ciTegra210:
4668c2ecf20Sopenharmony_ci---------
4678c2ecf20Sopenharmony_ci
4688c2ecf20Sopenharmony_ciSoC DTSI:
4698c2ecf20Sopenharmony_ci
4708c2ecf20Sopenharmony_ci	pcie-controller@1003000 {
4718c2ecf20Sopenharmony_ci		compatible = "nvidia,tegra210-pcie";
4728c2ecf20Sopenharmony_ci		device_type = "pci";
4738c2ecf20Sopenharmony_ci		reg = <0x0 0x01003000 0x0 0x00000800   /* PADS registers */
4748c2ecf20Sopenharmony_ci		       0x0 0x01003800 0x0 0x00000800   /* AFI registers */
4758c2ecf20Sopenharmony_ci		       0x0 0x02000000 0x0 0x10000000>; /* configuration space */
4768c2ecf20Sopenharmony_ci		reg-names = "pads", "afi", "cs";
4778c2ecf20Sopenharmony_ci		interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>, /* controller interrupt */
4788c2ecf20Sopenharmony_ci			     <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>; /* MSI interrupt */
4798c2ecf20Sopenharmony_ci		interrupt-names = "intr", "msi";
4808c2ecf20Sopenharmony_ci
4818c2ecf20Sopenharmony_ci		#interrupt-cells = <1>;
4828c2ecf20Sopenharmony_ci		interrupt-map-mask = <0 0 0 0>;
4838c2ecf20Sopenharmony_ci		interrupt-map = <0 0 0 0 &gic GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
4848c2ecf20Sopenharmony_ci
4858c2ecf20Sopenharmony_ci		bus-range = <0x00 0xff>;
4868c2ecf20Sopenharmony_ci		#address-cells = <3>;
4878c2ecf20Sopenharmony_ci		#size-cells = <2>;
4888c2ecf20Sopenharmony_ci
4898c2ecf20Sopenharmony_ci		ranges = <0x82000000 0 0x01000000 0x0 0x01000000 0 0x00001000   /* port 0 configuration space */
4908c2ecf20Sopenharmony_ci			  0x82000000 0 0x01001000 0x0 0x01001000 0 0x00001000   /* port 1 configuration space */
4918c2ecf20Sopenharmony_ci			  0x81000000 0 0x0        0x0 0x12000000 0 0x00010000   /* downstream I/O (64 KiB) */
4928c2ecf20Sopenharmony_ci			  0x82000000 0 0x13000000 0x0 0x13000000 0 0x0d000000   /* non-prefetchable memory (208 MiB) */
4938c2ecf20Sopenharmony_ci			  0xc2000000 0 0x20000000 0x0 0x20000000 0 0x20000000>; /* prefetchable memory (512 MiB) */
4948c2ecf20Sopenharmony_ci
4958c2ecf20Sopenharmony_ci		clocks = <&tegra_car TEGRA210_CLK_PCIE>,
4968c2ecf20Sopenharmony_ci			 <&tegra_car TEGRA210_CLK_AFI>,
4978c2ecf20Sopenharmony_ci			 <&tegra_car TEGRA210_CLK_PLL_E>,
4988c2ecf20Sopenharmony_ci			 <&tegra_car TEGRA210_CLK_CML0>;
4998c2ecf20Sopenharmony_ci		clock-names = "pex", "afi", "pll_e", "cml";
5008c2ecf20Sopenharmony_ci		resets = <&tegra_car 70>,
5018c2ecf20Sopenharmony_ci			 <&tegra_car 72>,
5028c2ecf20Sopenharmony_ci			 <&tegra_car 74>;
5038c2ecf20Sopenharmony_ci		reset-names = "pex", "afi", "pcie_x";
5048c2ecf20Sopenharmony_ci		status = "disabled";
5058c2ecf20Sopenharmony_ci
5068c2ecf20Sopenharmony_ci		pci@1,0 {
5078c2ecf20Sopenharmony_ci			device_type = "pci";
5088c2ecf20Sopenharmony_ci			assigned-addresses = <0x82000800 0 0x01000000 0 0x1000>;
5098c2ecf20Sopenharmony_ci			reg = <0x000800 0 0 0 0>;
5108c2ecf20Sopenharmony_ci			status = "disabled";
5118c2ecf20Sopenharmony_ci
5128c2ecf20Sopenharmony_ci			#address-cells = <3>;
5138c2ecf20Sopenharmony_ci			#size-cells = <2>;
5148c2ecf20Sopenharmony_ci			ranges;
5158c2ecf20Sopenharmony_ci
5168c2ecf20Sopenharmony_ci			nvidia,num-lanes = <4>;
5178c2ecf20Sopenharmony_ci		};
5188c2ecf20Sopenharmony_ci
5198c2ecf20Sopenharmony_ci		pci@2,0 {
5208c2ecf20Sopenharmony_ci			device_type = "pci";
5218c2ecf20Sopenharmony_ci			assigned-addresses = <0x82001000 0 0x01001000 0 0x1000>;
5228c2ecf20Sopenharmony_ci			reg = <0x001000 0 0 0 0>;
5238c2ecf20Sopenharmony_ci			status = "disabled";
5248c2ecf20Sopenharmony_ci
5258c2ecf20Sopenharmony_ci			#address-cells = <3>;
5268c2ecf20Sopenharmony_ci			#size-cells = <2>;
5278c2ecf20Sopenharmony_ci			ranges;
5288c2ecf20Sopenharmony_ci
5298c2ecf20Sopenharmony_ci			nvidia,num-lanes = <1>;
5308c2ecf20Sopenharmony_ci		};
5318c2ecf20Sopenharmony_ci	};
5328c2ecf20Sopenharmony_ci
5338c2ecf20Sopenharmony_ciBoard DTS:
5348c2ecf20Sopenharmony_ci
5358c2ecf20Sopenharmony_ci	pcie-controller@1003000 {
5368c2ecf20Sopenharmony_ci		status = "okay";
5378c2ecf20Sopenharmony_ci
5388c2ecf20Sopenharmony_ci		avdd-pll-uerefe-supply = <&avdd_1v05_pll>;
5398c2ecf20Sopenharmony_ci		hvddio-pex-supply = <&vdd_1v8>;
5408c2ecf20Sopenharmony_ci		dvddio-pex-supply = <&vdd_pex_1v05>;
5418c2ecf20Sopenharmony_ci		dvdd-pex-pll-supply = <&vdd_pex_1v05>;
5428c2ecf20Sopenharmony_ci		hvdd-pex-pll-e-supply = <&vdd_1v8>;
5438c2ecf20Sopenharmony_ci		vddio-pex-ctl-supply = <&vdd_1v8>;
5448c2ecf20Sopenharmony_ci
5458c2ecf20Sopenharmony_ci		pci@1,0 {
5468c2ecf20Sopenharmony_ci			phys = <&{/padctl@7009f000/pads/pcie/lanes/pcie-0}>,
5478c2ecf20Sopenharmony_ci			       <&{/padctl@7009f000/pads/pcie/lanes/pcie-1}>,
5488c2ecf20Sopenharmony_ci			       <&{/padctl@7009f000/pads/pcie/lanes/pcie-2}>,
5498c2ecf20Sopenharmony_ci			       <&{/padctl@7009f000/pads/pcie/lanes/pcie-3}>;
5508c2ecf20Sopenharmony_ci			phy-names = "pcie-0", "pcie-1", "pcie-2", "pcie-3";
5518c2ecf20Sopenharmony_ci			status = "okay";
5528c2ecf20Sopenharmony_ci		};
5538c2ecf20Sopenharmony_ci
5548c2ecf20Sopenharmony_ci		pci@2,0 {
5558c2ecf20Sopenharmony_ci			phys = <&{/padctl@7009f000/pads/pcie/lanes/pcie-4}>;
5568c2ecf20Sopenharmony_ci			phy-names = "pcie-0";
5578c2ecf20Sopenharmony_ci			status = "okay";
5588c2ecf20Sopenharmony_ci		};
5598c2ecf20Sopenharmony_ci	};
5608c2ecf20Sopenharmony_ci
5618c2ecf20Sopenharmony_ciTegra186:
5628c2ecf20Sopenharmony_ci---------
5638c2ecf20Sopenharmony_ci
5648c2ecf20Sopenharmony_ciSoC DTSI:
5658c2ecf20Sopenharmony_ci
5668c2ecf20Sopenharmony_ci	pcie@10003000 {
5678c2ecf20Sopenharmony_ci		compatible = "nvidia,tegra186-pcie";
5688c2ecf20Sopenharmony_ci		power-domains = <&bpmp TEGRA186_POWER_DOMAIN_PCX>;
5698c2ecf20Sopenharmony_ci		device_type = "pci";
5708c2ecf20Sopenharmony_ci		reg = <0x0 0x10003000 0x0 0x00000800   /* PADS registers */
5718c2ecf20Sopenharmony_ci		       0x0 0x10003800 0x0 0x00000800   /* AFI registers */
5728c2ecf20Sopenharmony_ci		       0x0 0x40000000 0x0 0x10000000>; /* configuration space */
5738c2ecf20Sopenharmony_ci		reg-names = "pads", "afi", "cs";
5748c2ecf20Sopenharmony_ci
5758c2ecf20Sopenharmony_ci		interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>, /* controller interrupt */
5768c2ecf20Sopenharmony_ci			     <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>; /* MSI interrupt */
5778c2ecf20Sopenharmony_ci		interrupt-names = "intr", "msi";
5788c2ecf20Sopenharmony_ci
5798c2ecf20Sopenharmony_ci		#interrupt-cells = <1>;
5808c2ecf20Sopenharmony_ci		interrupt-map-mask = <0 0 0 0>;
5818c2ecf20Sopenharmony_ci		interrupt-map = <0 0 0 0 &gic GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>;
5828c2ecf20Sopenharmony_ci
5838c2ecf20Sopenharmony_ci		bus-range = <0x00 0xff>;
5848c2ecf20Sopenharmony_ci		#address-cells = <3>;
5858c2ecf20Sopenharmony_ci		#size-cells = <2>;
5868c2ecf20Sopenharmony_ci
5878c2ecf20Sopenharmony_ci		ranges = <0x82000000 0 0x10000000 0x0 0x10000000 0 0x00001000   /* port 0 configuration space */
5888c2ecf20Sopenharmony_ci			  0x82000000 0 0x10001000 0x0 0x10001000 0 0x00001000   /* port 1 configuration space */
5898c2ecf20Sopenharmony_ci			  0x82000000 0 0x10004000 0x0 0x10004000 0 0x00001000   /* port 2 configuration space */
5908c2ecf20Sopenharmony_ci			  0x81000000 0 0x0        0x0 0x50000000 0 0x00010000   /* downstream I/O (64 KiB) */
5918c2ecf20Sopenharmony_ci			  0x82000000 0 0x50100000 0x0 0x50100000 0 0x07F00000   /* non-prefetchable memory (127 MiB) */
5928c2ecf20Sopenharmony_ci			  0xc2000000 0 0x58000000 0x0 0x58000000 0 0x28000000>; /* prefetchable memory (640 MiB) */
5938c2ecf20Sopenharmony_ci
5948c2ecf20Sopenharmony_ci		clocks = <&bpmp TEGRA186_CLK_AFI>,
5958c2ecf20Sopenharmony_ci			 <&bpmp TEGRA186_CLK_PCIE>,
5968c2ecf20Sopenharmony_ci			 <&bpmp TEGRA186_CLK_PLLE>;
5978c2ecf20Sopenharmony_ci		clock-names = "afi", "pex", "pll_e";
5988c2ecf20Sopenharmony_ci
5998c2ecf20Sopenharmony_ci		resets = <&bpmp TEGRA186_RESET_AFI>,
6008c2ecf20Sopenharmony_ci			 <&bpmp TEGRA186_RESET_PCIE>,
6018c2ecf20Sopenharmony_ci			 <&bpmp TEGRA186_RESET_PCIEXCLK>;
6028c2ecf20Sopenharmony_ci		reset-names = "afi", "pex", "pcie_x";
6038c2ecf20Sopenharmony_ci
6048c2ecf20Sopenharmony_ci		status = "disabled";
6058c2ecf20Sopenharmony_ci
6068c2ecf20Sopenharmony_ci		pci@1,0 {
6078c2ecf20Sopenharmony_ci			device_type = "pci";
6088c2ecf20Sopenharmony_ci			assigned-addresses = <0x82000800 0 0x10000000 0 0x1000>;
6098c2ecf20Sopenharmony_ci			reg = <0x000800 0 0 0 0>;
6108c2ecf20Sopenharmony_ci			status = "disabled";
6118c2ecf20Sopenharmony_ci
6128c2ecf20Sopenharmony_ci			#address-cells = <3>;
6138c2ecf20Sopenharmony_ci			#size-cells = <2>;
6148c2ecf20Sopenharmony_ci			ranges;
6158c2ecf20Sopenharmony_ci
6168c2ecf20Sopenharmony_ci			nvidia,num-lanes = <2>;
6178c2ecf20Sopenharmony_ci		};
6188c2ecf20Sopenharmony_ci
6198c2ecf20Sopenharmony_ci		pci@2,0 {
6208c2ecf20Sopenharmony_ci			device_type = "pci";
6218c2ecf20Sopenharmony_ci			assigned-addresses = <0x82001000 0 0x10001000 0 0x1000>;
6228c2ecf20Sopenharmony_ci			reg = <0x001000 0 0 0 0>;
6238c2ecf20Sopenharmony_ci			status = "disabled";
6248c2ecf20Sopenharmony_ci
6258c2ecf20Sopenharmony_ci			#address-cells = <3>;
6268c2ecf20Sopenharmony_ci			#size-cells = <2>;
6278c2ecf20Sopenharmony_ci			ranges;
6288c2ecf20Sopenharmony_ci
6298c2ecf20Sopenharmony_ci			nvidia,num-lanes = <1>;
6308c2ecf20Sopenharmony_ci		};
6318c2ecf20Sopenharmony_ci
6328c2ecf20Sopenharmony_ci		pci@3,0 {
6338c2ecf20Sopenharmony_ci			device_type = "pci";
6348c2ecf20Sopenharmony_ci			assigned-addresses = <0x82001800 0 0x10004000 0 0x1000>;
6358c2ecf20Sopenharmony_ci			reg = <0x001800 0 0 0 0>;
6368c2ecf20Sopenharmony_ci			status = "disabled";
6378c2ecf20Sopenharmony_ci
6388c2ecf20Sopenharmony_ci			#address-cells = <3>;
6398c2ecf20Sopenharmony_ci			#size-cells = <2>;
6408c2ecf20Sopenharmony_ci			ranges;
6418c2ecf20Sopenharmony_ci
6428c2ecf20Sopenharmony_ci			nvidia,num-lanes = <1>;
6438c2ecf20Sopenharmony_ci		};
6448c2ecf20Sopenharmony_ci	};
6458c2ecf20Sopenharmony_ci
6468c2ecf20Sopenharmony_ciBoard DTS:
6478c2ecf20Sopenharmony_ci
6488c2ecf20Sopenharmony_ci	pcie@10003000 {
6498c2ecf20Sopenharmony_ci		status = "okay";
6508c2ecf20Sopenharmony_ci
6518c2ecf20Sopenharmony_ci		dvdd-pex-supply = <&vdd_pex>;
6528c2ecf20Sopenharmony_ci		hvdd-pex-pll-supply = <&vdd_1v8>;
6538c2ecf20Sopenharmony_ci		hvdd-pex-supply = <&vdd_1v8>;
6548c2ecf20Sopenharmony_ci		vddio-pexctl-aud-supply = <&vdd_1v8>;
6558c2ecf20Sopenharmony_ci
6568c2ecf20Sopenharmony_ci		pci@1,0 {
6578c2ecf20Sopenharmony_ci			nvidia,num-lanes = <4>;
6588c2ecf20Sopenharmony_ci			status = "okay";
6598c2ecf20Sopenharmony_ci		};
6608c2ecf20Sopenharmony_ci
6618c2ecf20Sopenharmony_ci		pci@2,0 {
6628c2ecf20Sopenharmony_ci			nvidia,num-lanes = <0>;
6638c2ecf20Sopenharmony_ci			status = "disabled";
6648c2ecf20Sopenharmony_ci		};
6658c2ecf20Sopenharmony_ci
6668c2ecf20Sopenharmony_ci		pci@3,0 {
6678c2ecf20Sopenharmony_ci			nvidia,num-lanes = <1>;
6688c2ecf20Sopenharmony_ci			status = "disabled";
6698c2ecf20Sopenharmony_ci		};
6708c2ecf20Sopenharmony_ci	};
671