blob: 621c211a436cf96136e5279df6d2195b7dd46d52 [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>;
Tony Lindgren78000642015-01-19 11:47:35 -080015
16 aliases {
17 i2c0 = &i2c1;
18 i2c1 = &i2c2;
19 serial0 = &uart1;
20 serial1 = &uart2;
21 serial2 = &uart3;
22 ethernet0 = &eth0;
23 ethernet1 = &eth1;
24 };
25
26 cpus {
27 #address-cells = <1>;
28 #size-cells = <0>;
29 cpu@0 {
30 compatible = "arm,cortex-a8";
31 device_type = "cpu";
32 reg = <0>;
33 };
34 };
35
36 pmu {
37 compatible = "arm,cortex-a8-pmu";
38 interrupts = <3>;
39 };
40
41 /*
42 * The soc node represents the soc top level view. It is used for IPs
43 * that are not memory mapped in the MPU view or for the MPU itself.
44 */
45 soc {
46 compatible = "ti,omap-infra";
47 mpu {
48 compatible = "ti,omap3-mpu";
49 ti,hwmods = "mpu";
50 };
51 };
52
Tony Lindgren78000642015-01-19 11:47:35 -080053 /*
54 * XXX: Use a flat representation of the dm816x interconnect.
55 * The real dm816x interconnect network is quite complex. Since
56 * it will not bring real advantage to represent that in DT
57 * for the moment, just use a fake OCP bus entry to represent
58 * the whole bus hierarchy.
59 */
60 ocp {
Tony Lindgren71bed412015-05-29 10:21:52 -070061 compatible = "simple-bus";
Tony Lindgren78000642015-01-19 11:47:35 -080062 reg = <0x44000000 0x10000>;
63 interrupts = <9 10>;
64 #address-cells = <1>;
65 #size-cells = <1>;
66 ranges;
Tony Lindgren78000642015-01-19 11:47:35 -080067
68 prcm: prcm@48180000 {
69 compatible = "ti,dm816-prcm";
70 reg = <0x48180000 0x4000>;
71
72 prcm_clocks: clocks {
73 #address-cells = <1>;
74 #size-cells = <0>;
75 };
76
77 prcm_clockdomains: clockdomains {
78 };
79 };
80
81 scrm: scrm@48140000 {
Tony Lindgren72d03222015-01-21 16:21:52 -080082 compatible = "ti,dm816-scrm", "simple-bus";
Tony Lindgren78000642015-01-19 11:47:35 -080083 reg = <0x48140000 0x21000>;
84 #address-cells = <1>;
85 #size-cells = <1>;
Tony Lindgrenbe76fd32016-11-07 08:27:49 -070086 #pinctrl-cells = <1>;
Tony Lindgren78000642015-01-19 11:47:35 -080087 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>;
Tony Lindgrenbe76fd32016-11-07 08:27:49 -070094 #pinctrl-cells = <1>;
Tony Lindgren72d03222015-01-21 16:21:52 -080095 pinctrl-single,register-width = <16>;
96 pinctrl-single,function-mask = <0xf>;
97 };
98
99 /* Device Configuration Registers */
100 scm_conf: syscon@600 {
Tony Lindgrena54879a2015-02-24 08:48:52 -0800101 compatible = "syscon", "simple-bus";
Tony Lindgren72d03222015-01-21 16:21:52 -0800102 reg = <0x600 0x110>;
103 #address-cells = <1>;
104 #size-cells = <1>;
Tony Lindgrena54879a2015-02-24 08:48:52 -0800105 ranges = <0 0x600 0x110>;
106
107 usb_phy0: usb-phy@20 {
108 compatible = "ti,dm8168-usb-phy";
109 reg = <0x20 0x8>;
110 reg-names = "phy";
111 clocks = <&main_fapll 6>;
112 clock-names = "refclk";
113 #phy-cells = <0>;
114 syscon = <&scm_conf>;
115 };
116
117 usb_phy1: usb-phy@28 {
118 compatible = "ti,dm8168-usb-phy";
119 reg = <0x28 0x8>;
120 reg-names = "phy";
121 clocks = <&main_fapll 6>;
122 clock-names = "refclk";
123 #phy-cells = <0>;
124 syscon = <&scm_conf>;
125 };
Tony Lindgren72d03222015-01-21 16:21:52 -0800126 };
127
Tony Lindgren78000642015-01-19 11:47:35 -0800128 scrm_clocks: clocks {
129 #address-cells = <1>;
130 #size-cells = <0>;
131 };
132
133 scrm_clockdomains: clockdomains {
134 };
135 };
136
Tony Lindgren78000642015-01-19 11:47:35 -0800137 edma: edma@49000000 {
138 compatible = "ti,edma3";
139 ti,hwmods = "tpcc", "tptc0", "tptc1", "tptc2", "tptc3";
140 reg = <0x49000000 0x10000>,
141 <0x44e10f90 0x40>;
142 interrupts = <12 13 14>;
143 #dma-cells = <1>;
144 };
145
146 elm: elm@48080000 {
147 compatible = "ti,816-elm";
148 ti,hwmods = "elm";
149 reg = <0x48080000 0x2000>;
150 interrupts = <4>;
151 };
152
153 gpio1: gpio@48032000 {
Tony Lindgren599c3762015-03-18 13:41:34 -0700154 compatible = "ti,omap4-gpio";
Tony Lindgren78000642015-01-19 11:47:35 -0800155 ti,hwmods = "gpio1";
Tony Lindgren599c3762015-03-18 13:41:34 -0700156 ti,gpio-always-on;
Tony Lindgren78000642015-01-19 11:47:35 -0800157 reg = <0x48032000 0x1000>;
Tony Lindgren599c3762015-03-18 13:41:34 -0700158 interrupts = <96>;
159 gpio-controller;
160 #gpio-cells = <2>;
161 interrupt-controller;
162 #interrupt-cells = <2>;
Tony Lindgren78000642015-01-19 11:47:35 -0800163 };
164
165 gpio2: gpio@4804c000 {
Tony Lindgren599c3762015-03-18 13:41:34 -0700166 compatible = "ti,omap4-gpio";
Tony Lindgren78000642015-01-19 11:47:35 -0800167 ti,hwmods = "gpio2";
Tony Lindgren599c3762015-03-18 13:41:34 -0700168 ti,gpio-always-on;
Tony Lindgren78000642015-01-19 11:47:35 -0800169 reg = <0x4804c000 0x1000>;
Tony Lindgren599c3762015-03-18 13:41:34 -0700170 interrupts = <98>;
171 gpio-controller;
172 #gpio-cells = <2>;
173 interrupt-controller;
174 #interrupt-cells = <2>;
Tony Lindgren78000642015-01-19 11:47:35 -0800175 };
176
177 gpmc: gpmc@50000000 {
178 compatible = "ti,am3352-gpmc";
179 ti,hwmods = "gpmc";
180 reg = <0x50000000 0x2000>;
181 #address-cells = <2>;
182 #size-cells = <1>;
183 interrupts = <100>;
Franklin S Cooper Jr201c7e32015-10-15 12:37:27 -0500184 dmas = <&edma 52>;
185 dma-names = "rxtx";
Tony Lindgren78000642015-01-19 11:47:35 -0800186 gpmc,num-cs = <6>;
187 gpmc,num-waitpins = <2>;
Roger Quadros6d840d82016-02-23 18:37:23 +0200188 interrupt-controller;
189 #interrupt-cells = <2>;
Roger Quadros8675afe2016-04-07 13:25:36 +0300190 gpio-controller;
191 #gpio-cells = <2>;
Tony Lindgren78000642015-01-19 11:47:35 -0800192 };
193
194 i2c1: i2c@48028000 {
195 compatible = "ti,omap4-i2c";
196 ti,hwmods = "i2c1";
197 reg = <0x48028000 0x1000>;
198 #address-cells = <1>;
199 #size-cells = <0>;
200 interrupts = <70>;
201 dmas = <&edma 58 &edma 59>;
202 dma-names = "tx", "rx";
203 };
204
205 i2c2: i2c@4802a000 {
206 compatible = "ti,omap4-i2c";
207 ti,hwmods = "i2c2";
208 reg = <0x4802a000 0x1000>;
209 #address-cells = <1>;
210 #size-cells = <0>;
211 interrupts = <71>;
212 dmas = <&edma 60 &edma 61>;
213 dma-names = "tx", "rx";
214 };
215
216 intc: interrupt-controller@48200000 {
217 compatible = "ti,dm816-intc";
218 interrupt-controller;
219 #interrupt-cells = <1>;
220 reg = <0x48200000 0x1000>;
221 };
222
Tony Lindgren5a28f432016-02-26 10:58:16 -0800223 rtc: rtc@480c0000 {
224 compatible = "ti,am3352-rtc", "ti,da830-rtc";
225 reg = <0x480c0000 0x1000>;
226 interrupts = <75 76>;
227 ti,hwmods = "rtc";
228 };
229
Tony Lindgren78000642015-01-19 11:47:35 -0800230 mailbox: mailbox@480c8000 {
231 compatible = "ti,omap4-mailbox";
232 reg = <0x480c8000 0x2000>;
233 interrupts = <77>;
234 ti,hwmods = "mailbox";
Neil Armstrongd3e41a92015-11-12 15:07:30 +0100235 #mbox-cells = <1>;
Tony Lindgren78000642015-01-19 11:47:35 -0800236 ti,mbox-num-users = <4>;
237 ti,mbox-num-fifos = <12>;
238 mbox_dsp: mbox_dsp {
239 ti,mbox-tx = <3 0 0>;
240 ti,mbox-rx = <0 0 0>;
241 };
242 };
243
Neil Armstrong24f09822015-11-12 15:07:49 +0100244 spinbox: spinbox@480ca000 {
245 compatible = "ti,omap4-hwspinlock";
246 reg = <0x480ca000 0x2000>;
247 ti,hwmods = "spinbox";
248 #hwlock-cells = <1>;
249 };
250
Tony Lindgren78000642015-01-19 11:47:35 -0800251 mdio: mdio@4a100800 {
252 compatible = "ti,davinci_mdio";
253 #address-cells = <1>;
254 #size-cells = <0>;
255 reg = <0x4a100800 0x100>;
256 ti,hwmods = "davinci_mdio";
257 bus_freq = <1000000>;
258 phy0: ethernet-phy@0 {
259 reg = <1>;
260 };
261 phy1: ethernet-phy@1 {
262 reg = <2>;
263 };
264 };
265
266 eth0: ethernet@4a100000 {
267 compatible = "ti,dm816-emac";
268 ti,hwmods = "emac0";
269 reg = <0x4a100000 0x800
270 0x4a100900 0x3700>;
271 clocks = <&sysclk24_ck>;
Tony Lindgren72d03222015-01-21 16:21:52 -0800272 syscon = <&scm_conf>;
Tony Lindgren78000642015-01-19 11:47:35 -0800273 ti,davinci-ctrl-reg-offset = <0>;
274 ti,davinci-ctrl-mod-reg-offset = <0x900>;
275 ti,davinci-ctrl-ram-offset = <0x2000>;
276 ti,davinci-ctrl-ram-size = <0x2000>;
277 interrupts = <40 41 42 43>;
278 phy-handle = <&phy0>;
279 };
280
281 eth1: ethernet@4a120000 {
282 compatible = "ti,dm816-emac";
283 ti,hwmods = "emac1";
284 reg = <0x4a120000 0x4000>;
285 clocks = <&sysclk24_ck>;
Tony Lindgren72d03222015-01-21 16:21:52 -0800286 syscon = <&scm_conf>;
Tony Lindgren78000642015-01-19 11:47:35 -0800287 ti,davinci-ctrl-reg-offset = <0>;
288 ti,davinci-ctrl-mod-reg-offset = <0x900>;
289 ti,davinci-ctrl-ram-offset = <0x2000>;
290 ti,davinci-ctrl-ram-size = <0x2000>;
291 interrupts = <44 45 46 47>;
292 phy-handle = <&phy1>;
293 };
294
295 mcspi1: spi@48030000 {
296 compatible = "ti,omap4-mcspi";
297 reg = <0x48030000 0x1000>;
298 #address-cells = <1>;
299 #size-cells = <0>;
300 interrupts = <65>;
301 ti,spi-num-cs = <4>;
302 ti,hwmods = "mcspi1";
303 dmas = <&edma 16 &edma 17
Neil Armstrongf1b2e7c2015-11-12 15:07:35 +0100304 &edma 18 &edma 19
305 &edma 20 &edma 21
306 &edma 22 &edma 23>;
307 dma-names = "tx0", "rx0", "tx1", "rx1",
308 "tx2", "rx2", "tx3", "rx3";
Tony Lindgren78000642015-01-19 11:47:35 -0800309 };
310
311 mmc1: mmc@48060000 {
312 compatible = "ti,omap4-hsmmc";
313 reg = <0x48060000 0x11000>;
314 ti,hwmods = "mmc1";
315 interrupts = <64>;
316 dmas = <&edma 24 &edma 25>;
317 dma-names = "tx", "rx";
318 };
319
320 timer1: timer@4802e000 {
321 compatible = "ti,dm816-timer";
322 reg = <0x4802e000 0x2000>;
323 interrupts = <67>;
324 ti,hwmods = "timer1";
325 ti,timer-alwon;
326 };
327
328 timer2: timer@48040000 {
329 compatible = "ti,dm816-timer";
330 reg = <0x48040000 0x2000>;
331 interrupts = <68>;
332 ti,hwmods = "timer2";
333 };
334
335 timer3: timer@48042000 {
336 compatible = "ti,dm816-timer";
337 reg = <0x48042000 0x2000>;
338 interrupts = <69>;
339 ti,hwmods = "timer3";
340 };
341
342 timer4: timer@48044000 {
343 compatible = "ti,dm816-timer";
344 reg = <0x48044000 0x2000>;
345 interrupts = <92>;
346 ti,hwmods = "timer4";
Neil Armstrong8ca31db2015-11-12 15:07:40 +0100347 ti,timer-pwm;
Tony Lindgren78000642015-01-19 11:47:35 -0800348 };
349
350 timer5: timer@48046000 {
351 compatible = "ti,dm816-timer";
352 reg = <0x48046000 0x2000>;
353 interrupts = <93>;
354 ti,hwmods = "timer5";
Neil Armstrong8ca31db2015-11-12 15:07:40 +0100355 ti,timer-pwm;
Tony Lindgren78000642015-01-19 11:47:35 -0800356 };
357
358 timer6: timer@48048000 {
359 compatible = "ti,dm816-timer";
360 reg = <0x48048000 0x2000>;
361 interrupts = <94>;
362 ti,hwmods = "timer6";
Neil Armstrong8ca31db2015-11-12 15:07:40 +0100363 ti,timer-pwm;
Tony Lindgren78000642015-01-19 11:47:35 -0800364 };
365
366 timer7: timer@4804a000 {
367 compatible = "ti,dm816-timer";
368 reg = <0x4804a000 0x2000>;
369 interrupts = <95>;
370 ti,hwmods = "timer7";
Neil Armstrong8ca31db2015-11-12 15:07:40 +0100371 ti,timer-pwm;
Tony Lindgren78000642015-01-19 11:47:35 -0800372 };
373
374 uart1: uart@48020000 {
Tony Lindgrenf62280e2017-01-05 11:17:30 -0800375 compatible = "ti,am3352-uart", "ti,omap3-uart";
Tony Lindgren78000642015-01-19 11:47:35 -0800376 ti,hwmods = "uart1";
377 reg = <0x48020000 0x2000>;
378 clock-frequency = <48000000>;
379 interrupts = <72>;
380 dmas = <&edma 26 &edma 27>;
381 dma-names = "tx", "rx";
382 };
383
384 uart2: uart@48022000 {
Tony Lindgrenf62280e2017-01-05 11:17:30 -0800385 compatible = "ti,am3352-uart", "ti,omap3-uart";
Tony Lindgren78000642015-01-19 11:47:35 -0800386 ti,hwmods = "uart2";
387 reg = <0x48022000 0x2000>;
388 clock-frequency = <48000000>;
389 interrupts = <73>;
390 dmas = <&edma 28 &edma 29>;
391 dma-names = "tx", "rx";
392 };
393
394 uart3: uart@48024000 {
Tony Lindgrenf62280e2017-01-05 11:17:30 -0800395 compatible = "ti,am3352-uart", "ti,omap3-uart";
Tony Lindgren78000642015-01-19 11:47:35 -0800396 ti,hwmods = "uart3";
397 reg = <0x48024000 0x2000>;
398 clock-frequency = <48000000>;
399 interrupts = <74>;
400 dmas = <&edma 30 &edma 31>;
401 dma-names = "tx", "rx";
402 };
403
404 /* NOTE: USB needs a transceiver driver for phys to work */
405 usb: usb_otg_hs@47401000 {
406 compatible = "ti,am33xx-usb";
407 reg = <0x47401000 0x400000>;
408 ranges;
409 #address-cells = <1>;
410 #size-cells = <1>;
411 ti,hwmods = "usb_otg_hs";
412
413 usb0: usb@47401000 {
Tony Lindgren1b205c52015-05-29 09:59:42 -0700414 compatible = "ti,musb-dm816";
Tony Lindgren78000642015-01-19 11:47:35 -0800415 reg = <0x47401400 0x400
416 0x47401000 0x200>;
417 reg-names = "mc", "control";
418 interrupts = <18>;
419 interrupt-names = "mc";
Tony Lindgrena54879a2015-02-24 08:48:52 -0800420 dr_mode = "host";
421 interface-type = <0>;
422 phys = <&usb_phy0>;
423 phy-names = "usb2-phy";
Tony Lindgren78000642015-01-19 11:47:35 -0800424 mentor,multipoint = <1>;
425 mentor,num-eps = <16>;
426 mentor,ram-bits = <12>;
427 mentor,power = <500>;
Tony Lindgrende1a1222015-03-19 09:14:36 -0700428
429 dmas = <&cppi41dma 0 0 &cppi41dma 1 0
430 &cppi41dma 2 0 &cppi41dma 3 0
431 &cppi41dma 4 0 &cppi41dma 5 0
432 &cppi41dma 6 0 &cppi41dma 7 0
433 &cppi41dma 8 0 &cppi41dma 9 0
434 &cppi41dma 10 0 &cppi41dma 11 0
435 &cppi41dma 12 0 &cppi41dma 13 0
436 &cppi41dma 14 0 &cppi41dma 0 1
437 &cppi41dma 1 1 &cppi41dma 2 1
438 &cppi41dma 3 1 &cppi41dma 4 1
439 &cppi41dma 5 1 &cppi41dma 6 1
440 &cppi41dma 7 1 &cppi41dma 8 1
441 &cppi41dma 9 1 &cppi41dma 10 1
442 &cppi41dma 11 1 &cppi41dma 12 1
443 &cppi41dma 13 1 &cppi41dma 14 1>;
444 dma-names =
445 "rx1", "rx2", "rx3", "rx4", "rx5", "rx6", "rx7",
446 "rx8", "rx9", "rx10", "rx11", "rx12", "rx13",
447 "rx14", "rx15",
448 "tx1", "tx2", "tx3", "tx4", "tx5", "tx6", "tx7",
449 "tx8", "tx9", "tx10", "tx11", "tx12", "tx13",
450 "tx14", "tx15";
Tony Lindgren78000642015-01-19 11:47:35 -0800451 };
452
453 usb1: usb@47401800 {
Tony Lindgren1b205c52015-05-29 09:59:42 -0700454 compatible = "ti,musb-dm816";
Tony Lindgren78000642015-01-19 11:47:35 -0800455 reg = <0x47401c00 0x400
456 0x47401800 0x200>;
457 reg-names = "mc", "control";
458 interrupts = <19>;
459 interrupt-names = "mc";
Tony Lindgrena54879a2015-02-24 08:48:52 -0800460 dr_mode = "host";
461 interface-type = <0>;
462 phys = <&usb_phy1>;
463 phy-names = "usb2-phy";
Tony Lindgren78000642015-01-19 11:47:35 -0800464 mentor,multipoint = <1>;
465 mentor,num-eps = <16>;
466 mentor,ram-bits = <12>;
467 mentor,power = <500>;
Tony Lindgrende1a1222015-03-19 09:14:36 -0700468
469 dmas = <&cppi41dma 15 0 &cppi41dma 16 0
470 &cppi41dma 17 0 &cppi41dma 18 0
471 &cppi41dma 19 0 &cppi41dma 20 0
472 &cppi41dma 21 0 &cppi41dma 22 0
473 &cppi41dma 23 0 &cppi41dma 24 0
474 &cppi41dma 25 0 &cppi41dma 26 0
475 &cppi41dma 27 0 &cppi41dma 28 0
476 &cppi41dma 29 0 &cppi41dma 15 1
477 &cppi41dma 16 1 &cppi41dma 17 1
478 &cppi41dma 18 1 &cppi41dma 19 1
479 &cppi41dma 20 1 &cppi41dma 21 1
480 &cppi41dma 22 1 &cppi41dma 23 1
481 &cppi41dma 24 1 &cppi41dma 25 1
482 &cppi41dma 26 1 &cppi41dma 27 1
483 &cppi41dma 28 1 &cppi41dma 29 1>;
484 dma-names =
485 "rx1", "rx2", "rx3", "rx4", "rx5", "rx6", "rx7",
486 "rx8", "rx9", "rx10", "rx11", "rx12", "rx13",
487 "rx14", "rx15",
488 "tx1", "tx2", "tx3", "tx4", "tx5", "tx6", "tx7",
489 "tx8", "tx9", "tx10", "tx11", "tx12", "tx13",
490 "tx14", "tx15";
491 };
492
493 cppi41dma: dma-controller@47402000 {
494 compatible = "ti,am3359-cppi41";
495 reg = <0x47400000 0x1000
496 0x47402000 0x1000
497 0x47403000 0x1000
498 0x47404000 0x4000>;
499 reg-names = "glue", "controller", "scheduler", "queuemgr";
500 interrupts = <17>;
501 interrupt-names = "glue";
502 #dma-cells = <2>;
503 #dma-channels = <30>;
504 #dma-requests = <256>;
Tony Lindgren78000642015-01-19 11:47:35 -0800505 };
506 };
507
508 wd_timer2: wd_timer@480c2000 {
509 compatible = "ti,omap3-wdt";
510 ti,hwmods = "wd_timer";
511 reg = <0x480c2000 0x1000>;
512 interrupts = <0>;
513 };
514 };
515};
516
Tony Lindgren7383ca92015-01-19 11:47:35 -0800517#include "dm816x-clocks.dtsi"