xref: /openbmc/u-boot/arch/arm/dts/tegra20.dtsi (revision c5f18a0b)
1#include <dt-bindings/clock/tegra20-car.h>
2#include <dt-bindings/gpio/tegra-gpio.h>
3#include <dt-bindings/interrupt-controller/arm-gic.h>
4
5#include "skeleton.dtsi"
6
7/ {
8	compatible = "nvidia,tegra20";
9	interrupt-parent = <&intc>;
10
11	host1x {
12		compatible = "nvidia,tegra20-host1x", "simple-bus";
13		reg = <0x50000000 0x00024000>;
14		interrupts = <0 65 0x04   /* mpcore syncpt */
15			      0 67 0x04>; /* mpcore general */
16		status = "disabled";
17
18		#address-cells = <1>;
19		#size-cells = <1>;
20
21		ranges = <0x54000000 0x54000000 0x04000000>;
22
23		/* video-encoding/decoding */
24		mpe {
25			reg = <0x54040000 0x00040000>;
26			interrupts = <0 68 0x04>;
27			status = "disabled";
28		};
29
30		/* video input */
31		vi {
32			reg = <0x54080000 0x00040000>;
33			interrupts = <0 69 0x04>;
34			status = "disabled";
35		};
36
37		/* EPP */
38		epp {
39			reg = <0x540c0000 0x00040000>;
40			interrupts = <0 70 0x04>;
41			status = "disabled";
42		};
43
44		/* ISP */
45		isp {
46			reg = <0x54100000 0x00040000>;
47			interrupts = <0 71 0x04>;
48			status = "disabled";
49		};
50
51		/* 2D engine */
52		gr2d {
53			reg = <0x54140000 0x00040000>;
54			interrupts = <0 72 0x04>;
55			status = "disabled";
56		};
57
58		/* 3D engine */
59		gr3d {
60			reg = <0x54180000 0x00040000>;
61			status = "disabled";
62		};
63
64		/* display controllers */
65		dc@54200000 {
66			compatible = "nvidia,tegra20-dc";
67			reg = <0x54200000 0x00040000>;
68			interrupts = <0 73 0x04>;
69			status = "disabled";
70
71			rgb {
72				status = "disabled";
73			};
74		};
75
76		dc@54240000 {
77			compatible = "nvidia,tegra20-dc";
78			reg = <0x54240000 0x00040000>;
79			interrupts = <0 74 0x04>;
80			status = "disabled";
81
82			rgb {
83				status = "disabled";
84			};
85		};
86
87		/* outputs */
88		hdmi {
89			compatible = "nvidia,tegra20-hdmi";
90			reg = <0x54280000 0x00040000>;
91			interrupts = <0 75 0x04>;
92			status = "disabled";
93		};
94
95		tvo {
96			compatible = "nvidia,tegra20-tvo";
97			reg = <0x542c0000 0x00040000>;
98			interrupts = <0 76 0x04>;
99			status = "disabled";
100		};
101
102		dsi {
103			compatible = "nvidia,tegra20-dsi";
104			reg = <0x54300000 0x00040000>;
105			status = "disabled";
106		};
107	};
108
109	intc: interrupt-controller@50041000 {
110		compatible = "nvidia,tegra20-gic";
111		interrupt-controller;
112		#interrupt-cells = <1>;
113		reg = < 0x50041000 0x1000 >,
114		      < 0x50040100 0x0100 >;
115	};
116
117	tegra_car: clock@60006000 {
118		compatible = "nvidia,tegra20-car";
119		reg = <0x60006000 0x1000>;
120		#clock-cells = <1>;
121	};
122
123	apbdma: dma {
124		compatible = "nvidia,tegra20-apbdma";
125		reg = <0x6000a000 0x1200>;
126		interrupts = <0 104 0x04
127			      0 105 0x04
128			      0 106 0x04
129			      0 107 0x04
130			      0 108 0x04
131			      0 109 0x04
132			      0 110 0x04
133			      0 111 0x04
134			      0 112 0x04
135			      0 113 0x04
136			      0 114 0x04
137			      0 115 0x04
138			      0 116 0x04
139			      0 117 0x04
140			      0 118 0x04
141			      0 119 0x04>;
142	};
143
144	gpio: gpio@6000d000 {
145		compatible = "nvidia,tegra20-gpio";
146		reg = <0x6000d000 0x1000>;
147		interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>,
148			     <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>,
149			     <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>,
150			     <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>,
151			     <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>,
152			     <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>,
153			     <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>;
154		#gpio-cells = <2>;
155		gpio-controller;
156		#interrupt-cells = <2>;
157		interrupt-controller;
158	};
159
160	pinmux: pinmux@70000000 {
161		compatible = "nvidia,tegra20-pinmux";
162		reg = < 0x70000014 0x10    /* Tri-state registers */
163			0x70000080 0x20    /* Mux registers */
164			0x700000a0 0x14    /* Pull-up/down registers */
165			0x70000868 0xa8 >; /* Pad control registers */
166	};
167
168	das@70000c00 {
169		#address-cells = <1>;
170		#size-cells = <0>;
171		compatible = "nvidia,tegra20-das";
172		reg = <0x70000c00 0x80>;
173	};
174
175	i2s@70002800 {
176		#address-cells = <1>;
177		#size-cells = <0>;
178		compatible = "nvidia,tegra20-i2s";
179		reg = <0x70002800 0x200>;
180		interrupts = < 45 >;
181		dma-channel = < 2 >;
182	};
183
184	i2s@70002a00 {
185		#address-cells = <1>;
186		#size-cells = <0>;
187		compatible = "nvidia,tegra20-i2s";
188		reg = <0x70002a00 0x200>;
189		interrupts = < 35 >;
190		dma-channel = < 1 >;
191	};
192
193	uarta: serial@70006000 {
194		compatible = "nvidia,tegra20-uart";
195		reg = <0x70006000 0x40>;
196		reg-shift = <2>;
197		interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
198		clocks = <&tegra_car TEGRA20_CLK_UARTA>;
199		resets = <&tegra_car 6>;
200		reset-names = "serial";
201		dmas = <&apbdma 8>, <&apbdma 8>;
202		dma-names = "rx", "tx";
203		status = "disabled";
204	};
205
206	uartb: serial@70006040 {
207		compatible = "nvidia,tegra20-uart";
208		reg = <0x70006040 0x40>;
209		reg-shift = <2>;
210		interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
211		clocks = <&tegra_car TEGRA20_CLK_UARTB>;
212		resets = <&tegra_car 7>;
213		reset-names = "serial";
214		dmas = <&apbdma 9>, <&apbdma 9>;
215		dma-names = "rx", "tx";
216		status = "disabled";
217	};
218
219	uartc: serial@70006200 {
220		compatible = "nvidia,tegra20-uart";
221		reg = <0x70006200 0x100>;
222		reg-shift = <2>;
223		interrupts = <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>;
224		clocks = <&tegra_car TEGRA20_CLK_UARTC>;
225		resets = <&tegra_car 55>;
226		reset-names = "serial";
227		dmas = <&apbdma 10>, <&apbdma 10>;
228		dma-names = "rx", "tx";
229		status = "disabled";
230	};
231
232	uartd: serial@70006300 {
233		compatible = "nvidia,tegra20-uart";
234		reg = <0x70006300 0x100>;
235		reg-shift = <2>;
236		interrupts = <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>;
237		clocks = <&tegra_car TEGRA20_CLK_UARTD>;
238		resets = <&tegra_car 65>;
239		reset-names = "serial";
240		dmas = <&apbdma 19>, <&apbdma 19>;
241		dma-names = "rx", "tx";
242		status = "disabled";
243	};
244
245	uarte: serial@70006400 {
246		compatible = "nvidia,tegra20-uart";
247		reg = <0x70006400 0x100>;
248		reg-shift = <2>;
249		interrupts = <GIC_SPI 91 IRQ_TYPE_LEVEL_HIGH>;
250		clocks = <&tegra_car TEGRA20_CLK_UARTE>;
251		resets = <&tegra_car 66>;
252		reset-names = "serial";
253		dmas = <&apbdma 20>, <&apbdma 20>;
254		dma-names = "rx", "tx";
255		status = "disabled";
256	};
257
258	nand: nand-controller@70008000 {
259		#address-cells = <1>;
260		#size-cells = <0>;
261		compatible = "nvidia,tegra20-nand";
262		reg = <0x70008000 0x100>;
263	};
264
265	pwm: pwm@7000a000 {
266		compatible = "nvidia,tegra20-pwm";
267		reg = <0x7000a000 0x100>;
268		#pwm-cells = <2>;
269	};
270
271	i2c@7000c000 {
272		#address-cells = <1>;
273		#size-cells = <0>;
274		compatible = "nvidia,tegra20-i2c";
275		reg = <0x7000C000 0x100>;
276		interrupts = < 70 >;
277		/* PERIPH_ID_I2C1, PLL_P_OUT3 */
278		clocks = <&tegra_car 12>, <&tegra_car 124>;
279	};
280
281	spi@7000c380 {
282		compatible = "nvidia,tegra20-sflash";
283		reg = <0x7000c380 0x80>;
284		interrupts = <0 39 0x04>;
285		nvidia,dma-request-selector = <&apbdma 11>;
286		#address-cells = <1>;
287		#size-cells = <0>;
288		status = "disabled";
289		/* PERIPH_ID_SPI1, PLLP_OUT0 */
290		clocks = <&tegra_car 43>;
291	};
292
293	i2c@7000c400 {
294		#address-cells = <1>;
295		#size-cells = <0>;
296		compatible = "nvidia,tegra20-i2c";
297		reg = <0x7000C400 0x100>;
298		interrupts = < 116 >;
299		/* PERIPH_ID_I2C2, PLL_P_OUT3 */
300		clocks = <&tegra_car 54>, <&tegra_car 124>;
301	};
302
303	i2c@7000c500 {
304		#address-cells = <1>;
305		#size-cells = <0>;
306		compatible = "nvidia,tegra20-i2c";
307		reg = <0x7000C500 0x100>;
308		interrupts = < 124 >;
309		/* PERIPH_ID_I2C3, PLL_P_OUT3 */
310		clocks = <&tegra_car 67>, <&tegra_car 124>;
311	};
312
313	i2c@7000d000 {
314		#address-cells = <1>;
315		#size-cells = <0>;
316		compatible = "nvidia,tegra20-i2c-dvc";
317		reg = <0x7000D000 0x200>;
318		interrupts = < 85 >;
319		/* PERIPH_ID_DVC_I2C, PLL_P_OUT3 */
320		clocks = <&tegra_car 47>, <&tegra_car 124>;
321	};
322
323	spi@7000d400 {
324		compatible = "nvidia,tegra20-slink";
325		reg = <0x7000d400 0x200>;
326		interrupts = <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>;
327		#address-cells = <1>;
328		#size-cells = <0>;
329		clocks = <&tegra_car TEGRA20_CLK_SBC1>;
330		resets = <&tegra_car 41>;
331		reset-names = "spi";
332		dmas = <&apbdma 15>, <&apbdma 15>;
333		dma-names = "rx", "tx";
334		status = "disabled";
335	};
336
337	spi@7000d600 {
338		compatible = "nvidia,tegra20-slink";
339		reg = <0x7000d600 0x200>;
340		interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>;
341		#address-cells = <1>;
342		#size-cells = <0>;
343		clocks = <&tegra_car TEGRA20_CLK_SBC2>;
344		resets = <&tegra_car 44>;
345		reset-names = "spi";
346		dmas = <&apbdma 16>, <&apbdma 16>;
347		dma-names = "rx", "tx";
348		status = "disabled";
349	};
350
351	spi@7000d800 {
352		compatible = "nvidia,tegra20-slink";
353		reg = <0x7000d800 0x200>;
354		interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>;
355		#address-cells = <1>;
356		#size-cells = <0>;
357		clocks = <&tegra_car TEGRA20_CLK_SBC3>;
358		resets = <&tegra_car 46>;
359		reset-names = "spi";
360		dmas = <&apbdma 17>, <&apbdma 17>;
361		dma-names = "rx", "tx";
362		status = "disabled";
363	};
364
365	spi@7000da00 {
366		compatible = "nvidia,tegra20-slink";
367		reg = <0x7000da00 0x200>;
368		interrupts = <GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH>;
369		#address-cells = <1>;
370		#size-cells = <0>;
371		clocks = <&tegra_car TEGRA20_CLK_SBC4>;
372		resets = <&tegra_car 68>;
373		reset-names = "spi";
374		dmas = <&apbdma 18>, <&apbdma 18>;
375		dma-names = "rx", "tx";
376		status = "disabled";
377	};
378
379
380	kbc@7000e200 {
381		compatible = "nvidia,tegra20-kbc";
382		reg = <0x7000e200 0x0078>;
383	};
384
385	emc@7000f400 {
386		#address-cells = < 1 >;
387		#size-cells = < 0 >;
388		compatible = "nvidia,tegra20-emc";
389		reg = <0x7000f400 0x200>;
390	};
391
392	pcie-controller@80003000 {
393		compatible = "nvidia,tegra20-pcie";
394		device_type = "pci";
395		reg = <0x80003000 0x00000800   /* PADS registers */
396		       0x80003800 0x00000200   /* AFI registers */
397		       0x90000000 0x10000000>; /* configuration space */
398		reg-names = "pads", "afi", "cs";
399		interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH   /* controller interrupt */
400			      GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>; /* MSI interrupt */
401		interrupt-names = "intr", "msi";
402
403		#interrupt-cells = <1>;
404		interrupt-map-mask = <0 0 0 0>;
405		interrupt-map = <0 0 0 0 &intc GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
406
407		bus-range = <0x00 0xff>;
408		#address-cells = <3>;
409		#size-cells = <2>;
410
411		ranges = <0x82000000 0 0x80000000 0x80000000 0 0x00001000   /* port 0 registers */
412			  0x82000000 0 0x80001000 0x80001000 0 0x00001000   /* port 1 registers */
413			  0x81000000 0 0          0x82000000 0 0x00010000   /* downstream I/O */
414			  0x82000000 0 0xa0000000 0xa0000000 0 0x08000000   /* non-prefetchable memory */
415			  0xc2000000 0 0xa8000000 0xa8000000 0 0x18000000>; /* prefetchable memory */
416
417		clocks = <&tegra_car TEGRA20_CLK_PEX>,
418			 <&tegra_car TEGRA20_CLK_AFI>,
419			 <&tegra_car TEGRA20_CLK_PCIE_XCLK>,
420			 <&tegra_car TEGRA20_CLK_PLL_E>;
421		clock-names = "pex", "afi", "pcie_xclk", "pll_e";
422		status = "disabled";
423
424		pci@1,0 {
425			device_type = "pci";
426			assigned-addresses = <0x82000800 0 0x80000000 0 0x1000>;
427			reg = <0x000800 0 0 0 0>;
428			status = "disabled";
429
430			#address-cells = <3>;
431			#size-cells = <2>;
432			ranges;
433
434			nvidia,num-lanes = <2>;
435		};
436
437		pci@2,0 {
438			device_type = "pci";
439			assigned-addresses = <0x82001000 0 0x80001000 0 0x1000>;
440			reg = <0x001000 0 0 0 0>;
441			status = "disabled";
442
443			#address-cells = <3>;
444			#size-cells = <2>;
445			ranges;
446
447			nvidia,num-lanes = <2>;
448		};
449	};
450
451	usb@c5000000 {
452		compatible = "nvidia,tegra20-ehci", "usb-ehci";
453		reg = <0xc5000000 0x4000>;
454		interrupts = < 52 >;
455		phy_type = "utmi";
456		clocks = <&tegra_car 22>;	/* PERIPH_ID_USBD */
457		nvidia,has-legacy-mode;
458	};
459
460	usb@c5004000 {
461		compatible = "nvidia,tegra20-ehci", "usb-ehci";
462		reg = <0xc5004000 0x4000>;
463		interrupts = < 53 >;
464		phy_type = "ulpi";
465		clocks = <&tegra_car 58>;	/* PERIPH_ID_USB2 */
466	};
467
468	usb@c5008000 {
469		compatible = "nvidia,tegra20-ehci", "usb-ehci";
470		reg = <0xc5008000 0x4000>;
471		interrupts = < 129 >;
472		phy_type = "utmi";
473		clocks = <&tegra_car 59>;	/* PERIPH_ID_USB3 */
474	};
475
476	sdhci@c8000000 {
477		compatible = "nvidia,tegra20-sdhci";
478		reg = <0xc8000000 0x200>;
479		interrupts = <0 14 0x04>;
480		clocks = <&tegra_car 14>;
481		status = "disabled";
482	};
483
484	sdhci@c8000200 {
485		compatible = "nvidia,tegra20-sdhci";
486		reg = <0xc8000200 0x200>;
487		interrupts = <0 15 0x04>;
488		clocks = <&tegra_car 9>;
489		status = "disabled";
490	};
491
492	sdhci@c8000400 {
493		compatible = "nvidia,tegra20-sdhci";
494		reg = <0xc8000400 0x200>;
495		interrupts = <0 19 0x04>;
496		clocks = <&tegra_car 69>;
497		status = "disabled";
498	};
499
500	sdhci@c8000600 {
501		compatible = "nvidia,tegra20-sdhci";
502		reg = <0xc8000600 0x200>;
503		interrupts = <0 31 0x04>;
504		clocks = <&tegra_car 15>;
505		status = "disabled";
506	};
507};
508