blob: a7a34e47dadc6059447bc6fefada6bba33d14505 [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
10#include "skeleton.dtsi"
11
12/ {
13 compatible = "ti,dm816";
14 interrupt-parent = <&intc>;
15
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;
67 ti,hwmods = "l3_main";
68
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>;
183 gpmc,num-cs = <6>;
184 gpmc,num-waitpins = <2>;
185 };
186
187 i2c1: i2c@48028000 {
188 compatible = "ti,omap4-i2c";
189 ti,hwmods = "i2c1";
190 reg = <0x48028000 0x1000>;
191 #address-cells = <1>;
192 #size-cells = <0>;
193 interrupts = <70>;
194 dmas = <&edma 58 &edma 59>;
195 dma-names = "tx", "rx";
196 };
197
198 i2c2: i2c@4802a000 {
199 compatible = "ti,omap4-i2c";
200 ti,hwmods = "i2c2";
201 reg = <0x4802a000 0x1000>;
202 #address-cells = <1>;
203 #size-cells = <0>;
204 interrupts = <71>;
205 dmas = <&edma 60 &edma 61>;
206 dma-names = "tx", "rx";
207 };
208
209 intc: interrupt-controller@48200000 {
210 compatible = "ti,dm816-intc";
211 interrupt-controller;
212 #interrupt-cells = <1>;
213 reg = <0x48200000 0x1000>;
214 };
215
216 mailbox: mailbox@480c8000 {
217 compatible = "ti,omap4-mailbox";
218 reg = <0x480c8000 0x2000>;
219 interrupts = <77>;
220 ti,hwmods = "mailbox";
Neil Armstrongd3e41a92015-11-12 15:07:30 +0100221 #mbox-cells = <1>;
Tony Lindgren78000642015-01-19 11:47:35 -0800222 ti,mbox-num-users = <4>;
223 ti,mbox-num-fifos = <12>;
224 mbox_dsp: mbox_dsp {
225 ti,mbox-tx = <3 0 0>;
226 ti,mbox-rx = <0 0 0>;
227 };
228 };
229
230 mdio: mdio@4a100800 {
231 compatible = "ti,davinci_mdio";
232 #address-cells = <1>;
233 #size-cells = <0>;
234 reg = <0x4a100800 0x100>;
235 ti,hwmods = "davinci_mdio";
236 bus_freq = <1000000>;
237 phy0: ethernet-phy@0 {
238 reg = <1>;
239 };
240 phy1: ethernet-phy@1 {
241 reg = <2>;
242 };
243 };
244
245 eth0: ethernet@4a100000 {
246 compatible = "ti,dm816-emac";
247 ti,hwmods = "emac0";
248 reg = <0x4a100000 0x800
249 0x4a100900 0x3700>;
250 clocks = <&sysclk24_ck>;
Tony Lindgren72d03222015-01-21 16:21:52 -0800251 syscon = <&scm_conf>;
Tony Lindgren78000642015-01-19 11:47:35 -0800252 ti,davinci-ctrl-reg-offset = <0>;
253 ti,davinci-ctrl-mod-reg-offset = <0x900>;
254 ti,davinci-ctrl-ram-offset = <0x2000>;
255 ti,davinci-ctrl-ram-size = <0x2000>;
256 interrupts = <40 41 42 43>;
257 phy-handle = <&phy0>;
258 };
259
260 eth1: ethernet@4a120000 {
261 compatible = "ti,dm816-emac";
262 ti,hwmods = "emac1";
263 reg = <0x4a120000 0x4000>;
264 clocks = <&sysclk24_ck>;
Tony Lindgren72d03222015-01-21 16:21:52 -0800265 syscon = <&scm_conf>;
Tony Lindgren78000642015-01-19 11:47:35 -0800266 ti,davinci-ctrl-reg-offset = <0>;
267 ti,davinci-ctrl-mod-reg-offset = <0x900>;
268 ti,davinci-ctrl-ram-offset = <0x2000>;
269 ti,davinci-ctrl-ram-size = <0x2000>;
270 interrupts = <44 45 46 47>;
271 phy-handle = <&phy1>;
272 };
273
274 mcspi1: spi@48030000 {
275 compatible = "ti,omap4-mcspi";
276 reg = <0x48030000 0x1000>;
277 #address-cells = <1>;
278 #size-cells = <0>;
279 interrupts = <65>;
280 ti,spi-num-cs = <4>;
281 ti,hwmods = "mcspi1";
282 dmas = <&edma 16 &edma 17
283 &edma 18 &edma 19>;
284 dma-names = "tx0", "rx0", "tx1", "rx1";
285 };
286
287 mmc1: mmc@48060000 {
288 compatible = "ti,omap4-hsmmc";
289 reg = <0x48060000 0x11000>;
290 ti,hwmods = "mmc1";
291 interrupts = <64>;
292 dmas = <&edma 24 &edma 25>;
293 dma-names = "tx", "rx";
294 };
295
296 timer1: timer@4802e000 {
297 compatible = "ti,dm816-timer";
298 reg = <0x4802e000 0x2000>;
299 interrupts = <67>;
300 ti,hwmods = "timer1";
301 ti,timer-alwon;
302 };
303
304 timer2: timer@48040000 {
305 compatible = "ti,dm816-timer";
306 reg = <0x48040000 0x2000>;
307 interrupts = <68>;
308 ti,hwmods = "timer2";
309 };
310
311 timer3: timer@48042000 {
312 compatible = "ti,dm816-timer";
313 reg = <0x48042000 0x2000>;
314 interrupts = <69>;
315 ti,hwmods = "timer3";
316 };
317
318 timer4: timer@48044000 {
319 compatible = "ti,dm816-timer";
320 reg = <0x48044000 0x2000>;
321 interrupts = <92>;
322 ti,hwmods = "timer4";
323 };
324
325 timer5: timer@48046000 {
326 compatible = "ti,dm816-timer";
327 reg = <0x48046000 0x2000>;
328 interrupts = <93>;
329 ti,hwmods = "timer5";
330 };
331
332 timer6: timer@48048000 {
333 compatible = "ti,dm816-timer";
334 reg = <0x48048000 0x2000>;
335 interrupts = <94>;
336 ti,hwmods = "timer6";
337 };
338
339 timer7: timer@4804a000 {
340 compatible = "ti,dm816-timer";
341 reg = <0x4804a000 0x2000>;
342 interrupts = <95>;
343 ti,hwmods = "timer7";
344 };
345
346 uart1: uart@48020000 {
347 compatible = "ti,omap3-uart";
348 ti,hwmods = "uart1";
349 reg = <0x48020000 0x2000>;
350 clock-frequency = <48000000>;
351 interrupts = <72>;
352 dmas = <&edma 26 &edma 27>;
353 dma-names = "tx", "rx";
354 };
355
356 uart2: uart@48022000 {
357 compatible = "ti,omap3-uart";
358 ti,hwmods = "uart2";
359 reg = <0x48022000 0x2000>;
360 clock-frequency = <48000000>;
361 interrupts = <73>;
362 dmas = <&edma 28 &edma 29>;
363 dma-names = "tx", "rx";
364 };
365
366 uart3: uart@48024000 {
367 compatible = "ti,omap3-uart";
368 ti,hwmods = "uart3";
369 reg = <0x48024000 0x2000>;
370 clock-frequency = <48000000>;
371 interrupts = <74>;
372 dmas = <&edma 30 &edma 31>;
373 dma-names = "tx", "rx";
374 };
375
376 /* NOTE: USB needs a transceiver driver for phys to work */
377 usb: usb_otg_hs@47401000 {
378 compatible = "ti,am33xx-usb";
379 reg = <0x47401000 0x400000>;
380 ranges;
381 #address-cells = <1>;
382 #size-cells = <1>;
383 ti,hwmods = "usb_otg_hs";
384
385 usb0: usb@47401000 {
Tony Lindgren1b205c52015-05-29 09:59:42 -0700386 compatible = "ti,musb-dm816";
Tony Lindgren78000642015-01-19 11:47:35 -0800387 reg = <0x47401400 0x400
388 0x47401000 0x200>;
389 reg-names = "mc", "control";
390 interrupts = <18>;
391 interrupt-names = "mc";
Tony Lindgrena54879a2015-02-24 08:48:52 -0800392 dr_mode = "host";
393 interface-type = <0>;
394 phys = <&usb_phy0>;
395 phy-names = "usb2-phy";
Tony Lindgren78000642015-01-19 11:47:35 -0800396 mentor,multipoint = <1>;
397 mentor,num-eps = <16>;
398 mentor,ram-bits = <12>;
399 mentor,power = <500>;
Tony Lindgrende1a1222015-03-19 09:14:36 -0700400
401 dmas = <&cppi41dma 0 0 &cppi41dma 1 0
402 &cppi41dma 2 0 &cppi41dma 3 0
403 &cppi41dma 4 0 &cppi41dma 5 0
404 &cppi41dma 6 0 &cppi41dma 7 0
405 &cppi41dma 8 0 &cppi41dma 9 0
406 &cppi41dma 10 0 &cppi41dma 11 0
407 &cppi41dma 12 0 &cppi41dma 13 0
408 &cppi41dma 14 0 &cppi41dma 0 1
409 &cppi41dma 1 1 &cppi41dma 2 1
410 &cppi41dma 3 1 &cppi41dma 4 1
411 &cppi41dma 5 1 &cppi41dma 6 1
412 &cppi41dma 7 1 &cppi41dma 8 1
413 &cppi41dma 9 1 &cppi41dma 10 1
414 &cppi41dma 11 1 &cppi41dma 12 1
415 &cppi41dma 13 1 &cppi41dma 14 1>;
416 dma-names =
417 "rx1", "rx2", "rx3", "rx4", "rx5", "rx6", "rx7",
418 "rx8", "rx9", "rx10", "rx11", "rx12", "rx13",
419 "rx14", "rx15",
420 "tx1", "tx2", "tx3", "tx4", "tx5", "tx6", "tx7",
421 "tx8", "tx9", "tx10", "tx11", "tx12", "tx13",
422 "tx14", "tx15";
Tony Lindgren78000642015-01-19 11:47:35 -0800423 };
424
425 usb1: usb@47401800 {
Tony Lindgren1b205c52015-05-29 09:59:42 -0700426 compatible = "ti,musb-dm816";
Tony Lindgren78000642015-01-19 11:47:35 -0800427 reg = <0x47401c00 0x400
428 0x47401800 0x200>;
429 reg-names = "mc", "control";
430 interrupts = <19>;
431 interrupt-names = "mc";
Tony Lindgrena54879a2015-02-24 08:48:52 -0800432 dr_mode = "host";
433 interface-type = <0>;
434 phys = <&usb_phy1>;
435 phy-names = "usb2-phy";
Tony Lindgren78000642015-01-19 11:47:35 -0800436 mentor,multipoint = <1>;
437 mentor,num-eps = <16>;
438 mentor,ram-bits = <12>;
439 mentor,power = <500>;
Tony Lindgrende1a1222015-03-19 09:14:36 -0700440
441 dmas = <&cppi41dma 15 0 &cppi41dma 16 0
442 &cppi41dma 17 0 &cppi41dma 18 0
443 &cppi41dma 19 0 &cppi41dma 20 0
444 &cppi41dma 21 0 &cppi41dma 22 0
445 &cppi41dma 23 0 &cppi41dma 24 0
446 &cppi41dma 25 0 &cppi41dma 26 0
447 &cppi41dma 27 0 &cppi41dma 28 0
448 &cppi41dma 29 0 &cppi41dma 15 1
449 &cppi41dma 16 1 &cppi41dma 17 1
450 &cppi41dma 18 1 &cppi41dma 19 1
451 &cppi41dma 20 1 &cppi41dma 21 1
452 &cppi41dma 22 1 &cppi41dma 23 1
453 &cppi41dma 24 1 &cppi41dma 25 1
454 &cppi41dma 26 1 &cppi41dma 27 1
455 &cppi41dma 28 1 &cppi41dma 29 1>;
456 dma-names =
457 "rx1", "rx2", "rx3", "rx4", "rx5", "rx6", "rx7",
458 "rx8", "rx9", "rx10", "rx11", "rx12", "rx13",
459 "rx14", "rx15",
460 "tx1", "tx2", "tx3", "tx4", "tx5", "tx6", "tx7",
461 "tx8", "tx9", "tx10", "tx11", "tx12", "tx13",
462 "tx14", "tx15";
463 };
464
465 cppi41dma: dma-controller@47402000 {
466 compatible = "ti,am3359-cppi41";
467 reg = <0x47400000 0x1000
468 0x47402000 0x1000
469 0x47403000 0x1000
470 0x47404000 0x4000>;
471 reg-names = "glue", "controller", "scheduler", "queuemgr";
472 interrupts = <17>;
473 interrupt-names = "glue";
474 #dma-cells = <2>;
475 #dma-channels = <30>;
476 #dma-requests = <256>;
Tony Lindgren78000642015-01-19 11:47:35 -0800477 };
478 };
479
480 wd_timer2: wd_timer@480c2000 {
481 compatible = "ti,omap3-wdt";
482 ti,hwmods = "wd_timer";
483 reg = <0x480c2000 0x1000>;
484 interrupts = <0>;
485 };
486 };
487};
488
Tony Lindgren7383ca92015-01-19 11:47:35 -0800489#include "dm816x-clocks.dtsi"