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