blob: e68d7be4785f34cc2d642d84a90c6ee8cb9d11e8 [file] [log] [blame]
Simon Glass0c24f372014-09-04 16:27:35 -06001#include <dt-bindings/clock/tegra20-car.h>
Simon Glass9d3eefd2014-06-11 23:29:52 -06002#include <dt-bindings/gpio/tegra-gpio.h>
3#include <dt-bindings/interrupt-controller/arm-gic.h>
4
Tom Warrenf6236152013-02-21 12:31:27 +00005#include "skeleton.dtsi"
Simon Glass83aaec82012-02-27 10:52:38 +00006
7/ {
8 compatible = "nvidia,tegra20";
9 interrupt-parent = <&intc>;
10
Allen Martin0398dcb2013-01-16 13:12:24 +000011 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 };
Simon Glass84a64472012-02-27 10:52:43 +0000107 };
108
Simon Glass83aaec82012-02-27 10:52:38 +0000109 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
Allen Martin0398dcb2013-01-16 13:12:24 +0000117 tegra_car: clock@60006000 {
118 compatible = "nvidia,tegra20-car";
119 reg = <0x60006000 0x1000>;
120 #clock-cells = <1>;
Simon Glass83aaec82012-02-27 10:52:38 +0000121 };
122
Allen Martin3eded042013-01-11 23:07:04 +0000123 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
Allen Martin0398dcb2013-01-16 13:12:24 +0000144 gpio: gpio@6000d000 {
145 compatible = "nvidia,tegra20-gpio";
Simon Glass9d3eefd2014-06-11 23:29:52 -0600146 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>;
Allen Martin0398dcb2013-01-16 13:12:24 +0000154 #gpio-cells = <2>;
155 gpio-controller;
Simon Glass9d3eefd2014-06-11 23:29:52 -0600156 #interrupt-cells = <2>;
157 interrupt-controller;
Simon Glass83aaec82012-02-27 10:52:38 +0000158 };
159
Allen Martin0398dcb2013-01-16 13:12:24 +0000160 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 */
Simon Glass83aaec82012-02-27 10:52:38 +0000166 };
167
Allen Martin0398dcb2013-01-16 13:12:24 +0000168 das@70000c00 {
Simon Glass83aaec82012-02-27 10:52:38 +0000169 #address-cells = <1>;
170 #size-cells = <0>;
Allen Martin0398dcb2013-01-16 13:12:24 +0000171 compatible = "nvidia,tegra20-das";
172 reg = <0x70000c00 0x80>;
Simon Glass83aaec82012-02-27 10:52:38 +0000173 };
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
Simon Glass0c24f372014-09-04 16:27:35 -0600193 uarta: serial@70006000 {
Simon Glass83aaec82012-02-27 10:52:38 +0000194 compatible = "nvidia,tegra20-uart";
195 reg = <0x70006000 0x40>;
196 reg-shift = <2>;
Simon Glass0c24f372014-09-04 16:27:35 -0600197 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";
Simon Glass83aaec82012-02-27 10:52:38 +0000204 };
205
Simon Glass0c24f372014-09-04 16:27:35 -0600206 uartb: serial@70006040 {
Simon Glass83aaec82012-02-27 10:52:38 +0000207 compatible = "nvidia,tegra20-uart";
208 reg = <0x70006040 0x40>;
209 reg-shift = <2>;
Simon Glass0c24f372014-09-04 16:27:35 -0600210 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";
Simon Glass83aaec82012-02-27 10:52:38 +0000217 };
218
Simon Glass0c24f372014-09-04 16:27:35 -0600219 uartc: serial@70006200 {
Simon Glass83aaec82012-02-27 10:52:38 +0000220 compatible = "nvidia,tegra20-uart";
221 reg = <0x70006200 0x100>;
222 reg-shift = <2>;
Simon Glass0c24f372014-09-04 16:27:35 -0600223 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";
Simon Glass83aaec82012-02-27 10:52:38 +0000230 };
231
Simon Glass0c24f372014-09-04 16:27:35 -0600232 uartd: serial@70006300 {
Simon Glass83aaec82012-02-27 10:52:38 +0000233 compatible = "nvidia,tegra20-uart";
234 reg = <0x70006300 0x100>;
235 reg-shift = <2>;
Simon Glass0c24f372014-09-04 16:27:35 -0600236 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";
Simon Glass83aaec82012-02-27 10:52:38 +0000243 };
244
Simon Glass0c24f372014-09-04 16:27:35 -0600245 uarte: serial@70006400 {
Simon Glass83aaec82012-02-27 10:52:38 +0000246 compatible = "nvidia,tegra20-uart";
247 reg = <0x70006400 0x100>;
248 reg-shift = <2>;
Simon Glass0c24f372014-09-04 16:27:35 -0600249 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";
Simon Glass83aaec82012-02-27 10:52:38 +0000256 };
257
Allen Martin0398dcb2013-01-16 13:12:24 +0000258 nand: nand-controller@70008000 {
259 #address-cells = <1>;
260 #size-cells = <0>;
261 compatible = "nvidia,tegra20-nand";
262 reg = <0x70008000 0x100>;
Simon Glass83aaec82012-02-27 10:52:38 +0000263 };
264
Allen Martin0398dcb2013-01-16 13:12:24 +0000265 pwm: pwm@7000a000 {
266 compatible = "nvidia,tegra20-pwm";
267 reg = <0x7000a000 0x100>;
268 #pwm-cells = <2>;
Simon Glass83aaec82012-02-27 10:52:38 +0000269 };
270
Allen Martin0398dcb2013-01-16 13:12:24 +0000271 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>;
Simon Glass83aaec82012-02-27 10:52:38 +0000279 };
280
Allen Martin523e4d62013-01-29 13:51:23 +0000281 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
Allen Martin0398dcb2013-01-16 13:12:24 +0000293 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
Mirza Krak06339652015-08-19 13:50:50 +0200323 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
Allen Martin0398dcb2013-01-16 13:12:24 +0000380 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>;
Simon Glass83aaec82012-02-27 10:52:38 +0000390 };
391
Thierry Reding9cf711e2014-12-09 22:25:13 -0700392 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
Simon Glass83aaec82012-02-27 10:52:38 +0000451 usb@c5000000 {
452 compatible = "nvidia,tegra20-ehci", "usb-ehci";
453 reg = <0xc5000000 0x4000>;
454 interrupts = < 52 >;
455 phy_type = "utmi";
Simon Glass188cbca2012-02-27 10:52:45 +0000456 clocks = <&tegra_car 22>; /* PERIPH_ID_USBD */
457 nvidia,has-legacy-mode;
Simon Glass83aaec82012-02-27 10:52:38 +0000458 };
459
460 usb@c5004000 {
461 compatible = "nvidia,tegra20-ehci", "usb-ehci";
462 reg = <0xc5004000 0x4000>;
463 interrupts = < 53 >;
464 phy_type = "ulpi";
Simon Glass188cbca2012-02-27 10:52:45 +0000465 clocks = <&tegra_car 58>; /* PERIPH_ID_USB2 */
Simon Glass83aaec82012-02-27 10:52:38 +0000466 };
467
468 usb@c5008000 {
469 compatible = "nvidia,tegra20-ehci", "usb-ehci";
470 reg = <0xc5008000 0x4000>;
471 interrupts = < 129 >;
472 phy_type = "utmi";
Simon Glass188cbca2012-02-27 10:52:45 +0000473 clocks = <&tegra_car 59>; /* PERIPH_ID_USB3 */
Simon Glass83aaec82012-02-27 10:52:38 +0000474 };
475
Allen Martin0398dcb2013-01-16 13:12:24 +0000476 sdhci@c8000000 {
477 compatible = "nvidia,tegra20-sdhci";
478 reg = <0xc8000000 0x200>;
Tom Warrened955272013-02-21 12:31:29 +0000479 interrupts = <0 14 0x04>;
480 clocks = <&tegra_car 14>;
481 status = "disabled";
Anton Staffd9784872012-04-17 09:01:33 +0000482 };
Simon Glass949e53f2012-07-29 20:53:27 +0000483
Allen Martin0398dcb2013-01-16 13:12:24 +0000484 sdhci@c8000200 {
485 compatible = "nvidia,tegra20-sdhci";
486 reg = <0xc8000200 0x200>;
Tom Warrened955272013-02-21 12:31:29 +0000487 interrupts = <0 15 0x04>;
488 clocks = <&tegra_car 9>;
489 status = "disabled";
Simon Glass949e53f2012-07-29 20:53:27 +0000490 };
Simon Glass8b626dc2012-10-17 13:24:47 +0000491
Allen Martin0398dcb2013-01-16 13:12:24 +0000492 sdhci@c8000400 {
493 compatible = "nvidia,tegra20-sdhci";
494 reg = <0xc8000400 0x200>;
Tom Warrened955272013-02-21 12:31:29 +0000495 interrupts = <0 19 0x04>;
496 clocks = <&tegra_car 69>;
497 status = "disabled";
Simon Glass8b626dc2012-10-17 13:24:47 +0000498 };
499
Allen Martin0398dcb2013-01-16 13:12:24 +0000500 sdhci@c8000600 {
501 compatible = "nvidia,tegra20-sdhci";
502 reg = <0xc8000600 0x200>;
Tom Warrened955272013-02-21 12:31:29 +0000503 interrupts = <0 31 0x04>;
504 clocks = <&tegra_car 15>;
505 status = "disabled";
Simon Glass3a331e62012-10-17 13:24:48 +0000506 };
Simon Glass83aaec82012-02-27 10:52:38 +0000507};