blob: cbdfbc4e4a26dabf136406f69228ef1ff923ba51 [file] [log] [blame]
Tony Lindgren78000642015-01-19 11:47:35 -08001/*
2 * This file is licensed under the terms of the GNU General Public License
3 * version 2. This program is licensed "as is" without any warranty of any
4 * kind, whether express or implied.
5 */
6
7#include <dt-bindings/gpio/gpio.h>
8#include <dt-bindings/pinctrl/omap.h>
9
Tony Lindgren78000642015-01-19 11:47:35 -080010/ {
11 compatible = "ti,dm816";
12 interrupt-parent = <&intc>;
Javier Martinez Canillas06bfb9c2016-08-31 12:35:23 +020013 #address-cells = <1>;
14 #size-cells = <1>;
Javier Martinez Canillasab6dc012016-12-19 11:44:40 -030015 chosen { };
Tony Lindgren78000642015-01-19 11:47:35 -080016
17 aliases {
18 i2c0 = &i2c1;
19 i2c1 = &i2c2;
20 serial0 = &uart1;
21 serial1 = &uart2;
22 serial2 = &uart3;
23 ethernet0 = &eth0;
24 ethernet1 = &eth1;
25 };
26
27 cpus {
28 #address-cells = <1>;
29 #size-cells = <0>;
30 cpu@0 {
31 compatible = "arm,cortex-a8";
32 device_type = "cpu";
33 reg = <0>;
34 };
35 };
36
37 pmu {
38 compatible = "arm,cortex-a8-pmu";
39 interrupts = <3>;
40 };
41
42 /*
43 * The soc node represents the soc top level view. It is used for IPs
44 * that are not memory mapped in the MPU view or for the MPU itself.
45 */
46 soc {
47 compatible = "ti,omap-infra";
48 mpu {
49 compatible = "ti,omap3-mpu";
50 ti,hwmods = "mpu";
51 };
52 };
53
Tony Lindgren78000642015-01-19 11:47:35 -080054 /*
55 * XXX: Use a flat representation of the dm816x interconnect.
56 * The real dm816x interconnect network is quite complex. Since
57 * it will not bring real advantage to represent that in DT
58 * for the moment, just use a fake OCP bus entry to represent
59 * the whole bus hierarchy.
60 */
61 ocp {
Tony Lindgren71bed412015-05-29 10:21:52 -070062 compatible = "simple-bus";
Tony Lindgren78000642015-01-19 11:47:35 -080063 reg = <0x44000000 0x10000>;
64 interrupts = <9 10>;
65 #address-cells = <1>;
66 #size-cells = <1>;
67 ranges;
Tony Lindgren78000642015-01-19 11:47:35 -080068
69 prcm: prcm@48180000 {
70 compatible = "ti,dm816-prcm";
71 reg = <0x48180000 0x4000>;
72
73 prcm_clocks: clocks {
74 #address-cells = <1>;
75 #size-cells = <0>;
76 };
77
78 prcm_clockdomains: clockdomains {
79 };
80 };
81
82 scrm: scrm@48140000 {
Tony Lindgren72d03222015-01-21 16:21:52 -080083 compatible = "ti,dm816-scrm", "simple-bus";
Tony Lindgren78000642015-01-19 11:47:35 -080084 reg = <0x48140000 0x21000>;
85 #address-cells = <1>;
86 #size-cells = <1>;
87 ranges = <0 0x48140000 0x21000>;
88
Tony Lindgren72d03222015-01-21 16:21:52 -080089 dm816x_pinmux: pinmux@800 {
90 compatible = "pinctrl-single";
91 reg = <0x800 0x50a>;
92 #address-cells = <1>;
93 #size-cells = <0>;
94 pinctrl-single,register-width = <16>;
95 pinctrl-single,function-mask = <0xf>;
96 };
97
98 /* Device Configuration Registers */
99 scm_conf: syscon@600 {
Tony Lindgrena54879a2015-02-24 08:48:52 -0800100 compatible = "syscon", "simple-bus";
Tony Lindgren72d03222015-01-21 16:21:52 -0800101 reg = <0x600 0x110>;
102 #address-cells = <1>;
103 #size-cells = <1>;
Tony Lindgrena54879a2015-02-24 08:48:52 -0800104 ranges = <0 0x600 0x110>;
105
106 usb_phy0: usb-phy@20 {
107 compatible = "ti,dm8168-usb-phy";
108 reg = <0x20 0x8>;
109 reg-names = "phy";
110 clocks = <&main_fapll 6>;
111 clock-names = "refclk";
112 #phy-cells = <0>;
113 syscon = <&scm_conf>;
114 };
115
116 usb_phy1: usb-phy@28 {
117 compatible = "ti,dm8168-usb-phy";
118 reg = <0x28 0x8>;
119 reg-names = "phy";
120 clocks = <&main_fapll 6>;
121 clock-names = "refclk";
122 #phy-cells = <0>;
123 syscon = <&scm_conf>;
124 };
Tony Lindgren72d03222015-01-21 16:21:52 -0800125 };
126
Tony Lindgren78000642015-01-19 11:47:35 -0800127 scrm_clocks: clocks {
128 #address-cells = <1>;
129 #size-cells = <0>;
130 };
131
132 scrm_clockdomains: clockdomains {
133 };
134 };
135
Tony Lindgren78000642015-01-19 11:47:35 -0800136 edma: edma@49000000 {
137 compatible = "ti,edma3";
138 ti,hwmods = "tpcc", "tptc0", "tptc1", "tptc2", "tptc3";
139 reg = <0x49000000 0x10000>,
140 <0x44e10f90 0x40>;
141 interrupts = <12 13 14>;
142 #dma-cells = <1>;
143 };
144
145 elm: elm@48080000 {
146 compatible = "ti,816-elm";
147 ti,hwmods = "elm";
148 reg = <0x48080000 0x2000>;
149 interrupts = <4>;
150 };
151
152 gpio1: gpio@48032000 {
Tony Lindgren599c3762015-03-18 13:41:34 -0700153 compatible = "ti,omap4-gpio";
Tony Lindgren78000642015-01-19 11:47:35 -0800154 ti,hwmods = "gpio1";
Tony Lindgren599c3762015-03-18 13:41:34 -0700155 ti,gpio-always-on;
Tony Lindgren78000642015-01-19 11:47:35 -0800156 reg = <0x48032000 0x1000>;
Tony Lindgren599c3762015-03-18 13:41:34 -0700157 interrupts = <96>;
158 gpio-controller;
159 #gpio-cells = <2>;
160 interrupt-controller;
161 #interrupt-cells = <2>;
Tony Lindgren78000642015-01-19 11:47:35 -0800162 };
163
164 gpio2: gpio@4804c000 {
Tony Lindgren599c3762015-03-18 13:41:34 -0700165 compatible = "ti,omap4-gpio";
Tony Lindgren78000642015-01-19 11:47:35 -0800166 ti,hwmods = "gpio2";
Tony Lindgren599c3762015-03-18 13:41:34 -0700167 ti,gpio-always-on;
Tony Lindgren78000642015-01-19 11:47:35 -0800168 reg = <0x4804c000 0x1000>;
Tony Lindgren599c3762015-03-18 13:41:34 -0700169 interrupts = <98>;
170 gpio-controller;
171 #gpio-cells = <2>;
172 interrupt-controller;
173 #interrupt-cells = <2>;
Tony Lindgren78000642015-01-19 11:47:35 -0800174 };
175
176 gpmc: gpmc@50000000 {
177 compatible = "ti,am3352-gpmc";
178 ti,hwmods = "gpmc";
179 reg = <0x50000000 0x2000>;
180 #address-cells = <2>;
181 #size-cells = <1>;
182 interrupts = <100>;
Franklin S Cooper Jr201c7e32015-10-15 12:37:27 -0500183 dmas = <&edma 52>;
184 dma-names = "rxtx";
Tony Lindgren78000642015-01-19 11:47:35 -0800185 gpmc,num-cs = <6>;
186 gpmc,num-waitpins = <2>;
Roger Quadros6d840d82016-02-23 18:37:23 +0200187 interrupt-controller;
188 #interrupt-cells = <2>;
Roger Quadros8675afe2016-04-07 13:25:36 +0300189 gpio-controller;
190 #gpio-cells = <2>;
Tony Lindgren78000642015-01-19 11:47:35 -0800191 };
192
193 i2c1: i2c@48028000 {
194 compatible = "ti,omap4-i2c";
195 ti,hwmods = "i2c1";
196 reg = <0x48028000 0x1000>;
197 #address-cells = <1>;
198 #size-cells = <0>;
199 interrupts = <70>;
200 dmas = <&edma 58 &edma 59>;
201 dma-names = "tx", "rx";
202 };
203
204 i2c2: i2c@4802a000 {
205 compatible = "ti,omap4-i2c";
206 ti,hwmods = "i2c2";
207 reg = <0x4802a000 0x1000>;
208 #address-cells = <1>;
209 #size-cells = <0>;
210 interrupts = <71>;
211 dmas = <&edma 60 &edma 61>;
212 dma-names = "tx", "rx";
213 };
214
215 intc: interrupt-controller@48200000 {
216 compatible = "ti,dm816-intc";
217 interrupt-controller;
218 #interrupt-cells = <1>;
219 reg = <0x48200000 0x1000>;
220 };
221
Tony Lindgren5a28f432016-02-26 10:58:16 -0800222 rtc: rtc@480c0000 {
223 compatible = "ti,am3352-rtc", "ti,da830-rtc";
224 reg = <0x480c0000 0x1000>;
225 interrupts = <75 76>;
226 ti,hwmods = "rtc";
227 };
228
Tony Lindgren78000642015-01-19 11:47:35 -0800229 mailbox: mailbox@480c8000 {
230 compatible = "ti,omap4-mailbox";
231 reg = <0x480c8000 0x2000>;
232 interrupts = <77>;
233 ti,hwmods = "mailbox";
Neil Armstrongd3e41a92015-11-12 15:07:30 +0100234 #mbox-cells = <1>;
Tony Lindgren78000642015-01-19 11:47:35 -0800235 ti,mbox-num-users = <4>;
236 ti,mbox-num-fifos = <12>;
237 mbox_dsp: mbox_dsp {
238 ti,mbox-tx = <3 0 0>;
239 ti,mbox-rx = <0 0 0>;
240 };
241 };
242
Neil Armstrong24f09822015-11-12 15:07:49 +0100243 spinbox: spinbox@480ca000 {
244 compatible = "ti,omap4-hwspinlock";
245 reg = <0x480ca000 0x2000>;
246 ti,hwmods = "spinbox";
247 #hwlock-cells = <1>;
248 };
249
Tony Lindgren78000642015-01-19 11:47:35 -0800250 mdio: mdio@4a100800 {
251 compatible = "ti,davinci_mdio";
252 #address-cells = <1>;
253 #size-cells = <0>;
254 reg = <0x4a100800 0x100>;
255 ti,hwmods = "davinci_mdio";
256 bus_freq = <1000000>;
257 phy0: ethernet-phy@0 {
258 reg = <1>;
259 };
260 phy1: ethernet-phy@1 {
261 reg = <2>;
262 };
263 };
264
265 eth0: ethernet@4a100000 {
266 compatible = "ti,dm816-emac";
267 ti,hwmods = "emac0";
268 reg = <0x4a100000 0x800
269 0x4a100900 0x3700>;
270 clocks = <&sysclk24_ck>;
Tony Lindgren72d03222015-01-21 16:21:52 -0800271 syscon = <&scm_conf>;
Tony Lindgren78000642015-01-19 11:47:35 -0800272 ti,davinci-ctrl-reg-offset = <0>;
273 ti,davinci-ctrl-mod-reg-offset = <0x900>;
274 ti,davinci-ctrl-ram-offset = <0x2000>;
275 ti,davinci-ctrl-ram-size = <0x2000>;
276 interrupts = <40 41 42 43>;
277 phy-handle = <&phy0>;
278 };
279
280 eth1: ethernet@4a120000 {
281 compatible = "ti,dm816-emac";
282 ti,hwmods = "emac1";
283 reg = <0x4a120000 0x4000>;
284 clocks = <&sysclk24_ck>;
Tony Lindgren72d03222015-01-21 16:21:52 -0800285 syscon = <&scm_conf>;
Tony Lindgren78000642015-01-19 11:47:35 -0800286 ti,davinci-ctrl-reg-offset = <0>;
287 ti,davinci-ctrl-mod-reg-offset = <0x900>;
288 ti,davinci-ctrl-ram-offset = <0x2000>;
289 ti,davinci-ctrl-ram-size = <0x2000>;
290 interrupts = <44 45 46 47>;
291 phy-handle = <&phy1>;
292 };
293
294 mcspi1: spi@48030000 {
295 compatible = "ti,omap4-mcspi";
296 reg = <0x48030000 0x1000>;
297 #address-cells = <1>;
298 #size-cells = <0>;
299 interrupts = <65>;
300 ti,spi-num-cs = <4>;
301 ti,hwmods = "mcspi1";
302 dmas = <&edma 16 &edma 17
Neil Armstrongf1b2e7c2015-11-12 15:07:35 +0100303 &edma 18 &edma 19
304 &edma 20 &edma 21
305 &edma 22 &edma 23>;
306 dma-names = "tx0", "rx0", "tx1", "rx1",
307 "tx2", "rx2", "tx3", "rx3";
Tony Lindgren78000642015-01-19 11:47:35 -0800308 };
309
310 mmc1: mmc@48060000 {
311 compatible = "ti,omap4-hsmmc";
312 reg = <0x48060000 0x11000>;
313 ti,hwmods = "mmc1";
314 interrupts = <64>;
315 dmas = <&edma 24 &edma 25>;
316 dma-names = "tx", "rx";
317 };
318
319 timer1: timer@4802e000 {
320 compatible = "ti,dm816-timer";
321 reg = <0x4802e000 0x2000>;
322 interrupts = <67>;
323 ti,hwmods = "timer1";
324 ti,timer-alwon;
325 };
326
327 timer2: timer@48040000 {
328 compatible = "ti,dm816-timer";
329 reg = <0x48040000 0x2000>;
330 interrupts = <68>;
331 ti,hwmods = "timer2";
332 };
333
334 timer3: timer@48042000 {
335 compatible = "ti,dm816-timer";
336 reg = <0x48042000 0x2000>;
337 interrupts = <69>;
338 ti,hwmods = "timer3";
339 };
340
341 timer4: timer@48044000 {
342 compatible = "ti,dm816-timer";
343 reg = <0x48044000 0x2000>;
344 interrupts = <92>;
345 ti,hwmods = "timer4";
Neil Armstrong8ca31db2015-11-12 15:07:40 +0100346 ti,timer-pwm;
Tony Lindgren78000642015-01-19 11:47:35 -0800347 };
348
349 timer5: timer@48046000 {
350 compatible = "ti,dm816-timer";
351 reg = <0x48046000 0x2000>;
352 interrupts = <93>;
353 ti,hwmods = "timer5";
Neil Armstrong8ca31db2015-11-12 15:07:40 +0100354 ti,timer-pwm;
Tony Lindgren78000642015-01-19 11:47:35 -0800355 };
356
357 timer6: timer@48048000 {
358 compatible = "ti,dm816-timer";
359 reg = <0x48048000 0x2000>;
360 interrupts = <94>;
361 ti,hwmods = "timer6";
Neil Armstrong8ca31db2015-11-12 15:07:40 +0100362 ti,timer-pwm;
Tony Lindgren78000642015-01-19 11:47:35 -0800363 };
364
365 timer7: timer@4804a000 {
366 compatible = "ti,dm816-timer";
367 reg = <0x4804a000 0x2000>;
368 interrupts = <95>;
369 ti,hwmods = "timer7";
Neil Armstrong8ca31db2015-11-12 15:07:40 +0100370 ti,timer-pwm;
Tony Lindgren78000642015-01-19 11:47:35 -0800371 };
372
373 uart1: uart@48020000 {
374 compatible = "ti,omap3-uart";
375 ti,hwmods = "uart1";
376 reg = <0x48020000 0x2000>;
377 clock-frequency = <48000000>;
378 interrupts = <72>;
379 dmas = <&edma 26 &edma 27>;
380 dma-names = "tx", "rx";
381 };
382
383 uart2: uart@48022000 {
384 compatible = "ti,omap3-uart";
385 ti,hwmods = "uart2";
386 reg = <0x48022000 0x2000>;
387 clock-frequency = <48000000>;
388 interrupts = <73>;
389 dmas = <&edma 28 &edma 29>;
390 dma-names = "tx", "rx";
391 };
392
393 uart3: uart@48024000 {
394 compatible = "ti,omap3-uart";
395 ti,hwmods = "uart3";
396 reg = <0x48024000 0x2000>;
397 clock-frequency = <48000000>;
398 interrupts = <74>;
399 dmas = <&edma 30 &edma 31>;
400 dma-names = "tx", "rx";
401 };
402
403 /* NOTE: USB needs a transceiver driver for phys to work */
404 usb: usb_otg_hs@47401000 {
405 compatible = "ti,am33xx-usb";
406 reg = <0x47401000 0x400000>;
407 ranges;
408 #address-cells = <1>;
409 #size-cells = <1>;
410 ti,hwmods = "usb_otg_hs";
411
412 usb0: usb@47401000 {
Tony Lindgren1b205c52015-05-29 09:59:42 -0700413 compatible = "ti,musb-dm816";
Tony Lindgren78000642015-01-19 11:47:35 -0800414 reg = <0x47401400 0x400
415 0x47401000 0x200>;
416 reg-names = "mc", "control";
417 interrupts = <18>;
418 interrupt-names = "mc";
Tony Lindgrena54879a2015-02-24 08:48:52 -0800419 dr_mode = "host";
420 interface-type = <0>;
421 phys = <&usb_phy0>;
422 phy-names = "usb2-phy";
Tony Lindgren78000642015-01-19 11:47:35 -0800423 mentor,multipoint = <1>;
424 mentor,num-eps = <16>;
425 mentor,ram-bits = <12>;
426 mentor,power = <500>;
Tony Lindgrende1a1222015-03-19 09:14:36 -0700427
428 dmas = <&cppi41dma 0 0 &cppi41dma 1 0
429 &cppi41dma 2 0 &cppi41dma 3 0
430 &cppi41dma 4 0 &cppi41dma 5 0
431 &cppi41dma 6 0 &cppi41dma 7 0
432 &cppi41dma 8 0 &cppi41dma 9 0
433 &cppi41dma 10 0 &cppi41dma 11 0
434 &cppi41dma 12 0 &cppi41dma 13 0
435 &cppi41dma 14 0 &cppi41dma 0 1
436 &cppi41dma 1 1 &cppi41dma 2 1
437 &cppi41dma 3 1 &cppi41dma 4 1
438 &cppi41dma 5 1 &cppi41dma 6 1
439 &cppi41dma 7 1 &cppi41dma 8 1
440 &cppi41dma 9 1 &cppi41dma 10 1
441 &cppi41dma 11 1 &cppi41dma 12 1
442 &cppi41dma 13 1 &cppi41dma 14 1>;
443 dma-names =
444 "rx1", "rx2", "rx3", "rx4", "rx5", "rx6", "rx7",
445 "rx8", "rx9", "rx10", "rx11", "rx12", "rx13",
446 "rx14", "rx15",
447 "tx1", "tx2", "tx3", "tx4", "tx5", "tx6", "tx7",
448 "tx8", "tx9", "tx10", "tx11", "tx12", "tx13",
449 "tx14", "tx15";
Tony Lindgren78000642015-01-19 11:47:35 -0800450 };
451
452 usb1: usb@47401800 {
Tony Lindgren1b205c52015-05-29 09:59:42 -0700453 compatible = "ti,musb-dm816";
Tony Lindgren78000642015-01-19 11:47:35 -0800454 reg = <0x47401c00 0x400
455 0x47401800 0x200>;
456 reg-names = "mc", "control";
457 interrupts = <19>;
458 interrupt-names = "mc";
Tony Lindgrena54879a2015-02-24 08:48:52 -0800459 dr_mode = "host";
460 interface-type = <0>;
461 phys = <&usb_phy1>;
462 phy-names = "usb2-phy";
Tony Lindgren78000642015-01-19 11:47:35 -0800463 mentor,multipoint = <1>;
464 mentor,num-eps = <16>;
465 mentor,ram-bits = <12>;
466 mentor,power = <500>;
Tony Lindgrende1a1222015-03-19 09:14:36 -0700467
468 dmas = <&cppi41dma 15 0 &cppi41dma 16 0
469 &cppi41dma 17 0 &cppi41dma 18 0
470 &cppi41dma 19 0 &cppi41dma 20 0
471 &cppi41dma 21 0 &cppi41dma 22 0
472 &cppi41dma 23 0 &cppi41dma 24 0
473 &cppi41dma 25 0 &cppi41dma 26 0
474 &cppi41dma 27 0 &cppi41dma 28 0
475 &cppi41dma 29 0 &cppi41dma 15 1
476 &cppi41dma 16 1 &cppi41dma 17 1
477 &cppi41dma 18 1 &cppi41dma 19 1
478 &cppi41dma 20 1 &cppi41dma 21 1
479 &cppi41dma 22 1 &cppi41dma 23 1
480 &cppi41dma 24 1 &cppi41dma 25 1
481 &cppi41dma 26 1 &cppi41dma 27 1
482 &cppi41dma 28 1 &cppi41dma 29 1>;
483 dma-names =
484 "rx1", "rx2", "rx3", "rx4", "rx5", "rx6", "rx7",
485 "rx8", "rx9", "rx10", "rx11", "rx12", "rx13",
486 "rx14", "rx15",
487 "tx1", "tx2", "tx3", "tx4", "tx5", "tx6", "tx7",
488 "tx8", "tx9", "tx10", "tx11", "tx12", "tx13",
489 "tx14", "tx15";
490 };
491
492 cppi41dma: dma-controller@47402000 {
493 compatible = "ti,am3359-cppi41";
494 reg = <0x47400000 0x1000
495 0x47402000 0x1000
496 0x47403000 0x1000
497 0x47404000 0x4000>;
498 reg-names = "glue", "controller", "scheduler", "queuemgr";
499 interrupts = <17>;
500 interrupt-names = "glue";
501 #dma-cells = <2>;
502 #dma-channels = <30>;
503 #dma-requests = <256>;
Tony Lindgren78000642015-01-19 11:47:35 -0800504 };
505 };
506
507 wd_timer2: wd_timer@480c2000 {
508 compatible = "ti,omap3-wdt";
509 ti,hwmods = "wd_timer";
510 reg = <0x480c2000 0x1000>;
511 interrupts = <0>;
512 };
513 };
514};
515
Tony Lindgren7383ca92015-01-19 11:47:35 -0800516#include "dm816x-clocks.dtsi"