blob: f9286c3bdedc1bb801fed29f6cf7317b3c0ca7f1 [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;
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>;
86 ranges = <0 0x48140000 0x21000>;
87
Tony Lindgren72d03222015-01-21 16:21:52 -080088 dm816x_pinmux: pinmux@800 {
89 compatible = "pinctrl-single";
90 reg = <0x800 0x50a>;
91 #address-cells = <1>;
92 #size-cells = <0>;
93 pinctrl-single,register-width = <16>;
94 pinctrl-single,function-mask = <0xf>;
95 };
96
97 /* Device Configuration Registers */
98 scm_conf: syscon@600 {
Tony Lindgrena54879a2015-02-24 08:48:52 -080099 compatible = "syscon", "simple-bus";
Tony Lindgren72d03222015-01-21 16:21:52 -0800100 reg = <0x600 0x110>;
101 #address-cells = <1>;
102 #size-cells = <1>;
Tony Lindgrena54879a2015-02-24 08:48:52 -0800103 ranges = <0 0x600 0x110>;
104
105 usb_phy0: usb-phy@20 {
106 compatible = "ti,dm8168-usb-phy";
107 reg = <0x20 0x8>;
108 reg-names = "phy";
109 clocks = <&main_fapll 6>;
110 clock-names = "refclk";
111 #phy-cells = <0>;
112 syscon = <&scm_conf>;
113 };
114
115 usb_phy1: usb-phy@28 {
116 compatible = "ti,dm8168-usb-phy";
117 reg = <0x28 0x8>;
118 reg-names = "phy";
119 clocks = <&main_fapll 6>;
120 clock-names = "refclk";
121 #phy-cells = <0>;
122 syscon = <&scm_conf>;
123 };
Tony Lindgren72d03222015-01-21 16:21:52 -0800124 };
125
Tony Lindgren78000642015-01-19 11:47:35 -0800126 scrm_clocks: clocks {
127 #address-cells = <1>;
128 #size-cells = <0>;
129 };
130
131 scrm_clockdomains: clockdomains {
132 };
133 };
134
Tony Lindgren78000642015-01-19 11:47:35 -0800135 edma: edma@49000000 {
136 compatible = "ti,edma3";
137 ti,hwmods = "tpcc", "tptc0", "tptc1", "tptc2", "tptc3";
138 reg = <0x49000000 0x10000>,
139 <0x44e10f90 0x40>;
140 interrupts = <12 13 14>;
141 #dma-cells = <1>;
142 };
143
144 elm: elm@48080000 {
145 compatible = "ti,816-elm";
146 ti,hwmods = "elm";
147 reg = <0x48080000 0x2000>;
148 interrupts = <4>;
149 };
150
151 gpio1: gpio@48032000 {
Tony Lindgren599c3762015-03-18 13:41:34 -0700152 compatible = "ti,omap4-gpio";
Tony Lindgren78000642015-01-19 11:47:35 -0800153 ti,hwmods = "gpio1";
Tony Lindgren599c3762015-03-18 13:41:34 -0700154 ti,gpio-always-on;
Tony Lindgren78000642015-01-19 11:47:35 -0800155 reg = <0x48032000 0x1000>;
Tony Lindgren599c3762015-03-18 13:41:34 -0700156 interrupts = <96>;
157 gpio-controller;
158 #gpio-cells = <2>;
159 interrupt-controller;
160 #interrupt-cells = <2>;
Tony Lindgren78000642015-01-19 11:47:35 -0800161 };
162
163 gpio2: gpio@4804c000 {
Tony Lindgren599c3762015-03-18 13:41:34 -0700164 compatible = "ti,omap4-gpio";
Tony Lindgren78000642015-01-19 11:47:35 -0800165 ti,hwmods = "gpio2";
Tony Lindgren599c3762015-03-18 13:41:34 -0700166 ti,gpio-always-on;
Tony Lindgren78000642015-01-19 11:47:35 -0800167 reg = <0x4804c000 0x1000>;
Tony Lindgren599c3762015-03-18 13:41:34 -0700168 interrupts = <98>;
169 gpio-controller;
170 #gpio-cells = <2>;
171 interrupt-controller;
172 #interrupt-cells = <2>;
Tony Lindgren78000642015-01-19 11:47:35 -0800173 };
174
175 gpmc: gpmc@50000000 {
176 compatible = "ti,am3352-gpmc";
177 ti,hwmods = "gpmc";
178 reg = <0x50000000 0x2000>;
179 #address-cells = <2>;
180 #size-cells = <1>;
181 interrupts = <100>;
182 gpmc,num-cs = <6>;
183 gpmc,num-waitpins = <2>;
184 };
185
186 i2c1: i2c@48028000 {
187 compatible = "ti,omap4-i2c";
188 ti,hwmods = "i2c1";
189 reg = <0x48028000 0x1000>;
190 #address-cells = <1>;
191 #size-cells = <0>;
192 interrupts = <70>;
193 dmas = <&edma 58 &edma 59>;
194 dma-names = "tx", "rx";
195 };
196
197 i2c2: i2c@4802a000 {
198 compatible = "ti,omap4-i2c";
199 ti,hwmods = "i2c2";
200 reg = <0x4802a000 0x1000>;
201 #address-cells = <1>;
202 #size-cells = <0>;
203 interrupts = <71>;
204 dmas = <&edma 60 &edma 61>;
205 dma-names = "tx", "rx";
206 };
207
208 intc: interrupt-controller@48200000 {
209 compatible = "ti,dm816-intc";
210 interrupt-controller;
211 #interrupt-cells = <1>;
212 reg = <0x48200000 0x1000>;
213 };
214
215 mailbox: mailbox@480c8000 {
216 compatible = "ti,omap4-mailbox";
217 reg = <0x480c8000 0x2000>;
218 interrupts = <77>;
219 ti,hwmods = "mailbox";
220 ti,mbox-num-users = <4>;
221 ti,mbox-num-fifos = <12>;
222 mbox_dsp: mbox_dsp {
223 ti,mbox-tx = <3 0 0>;
224 ti,mbox-rx = <0 0 0>;
225 };
226 };
227
Neil Armstrong24f09822015-11-12 15:07:49 +0100228 spinbox: spinbox@480ca000 {
229 compatible = "ti,omap4-hwspinlock";
230 reg = <0x480ca000 0x2000>;
231 ti,hwmods = "spinbox";
232 #hwlock-cells = <1>;
233 };
234
Tony Lindgren78000642015-01-19 11:47:35 -0800235 mdio: mdio@4a100800 {
236 compatible = "ti,davinci_mdio";
237 #address-cells = <1>;
238 #size-cells = <0>;
239 reg = <0x4a100800 0x100>;
240 ti,hwmods = "davinci_mdio";
241 bus_freq = <1000000>;
242 phy0: ethernet-phy@0 {
243 reg = <1>;
244 };
245 phy1: ethernet-phy@1 {
246 reg = <2>;
247 };
248 };
249
250 eth0: ethernet@4a100000 {
251 compatible = "ti,dm816-emac";
252 ti,hwmods = "emac0";
253 reg = <0x4a100000 0x800
254 0x4a100900 0x3700>;
255 clocks = <&sysclk24_ck>;
Tony Lindgren72d03222015-01-21 16:21:52 -0800256 syscon = <&scm_conf>;
Tony Lindgren78000642015-01-19 11:47:35 -0800257 ti,davinci-ctrl-reg-offset = <0>;
258 ti,davinci-ctrl-mod-reg-offset = <0x900>;
259 ti,davinci-ctrl-ram-offset = <0x2000>;
260 ti,davinci-ctrl-ram-size = <0x2000>;
261 interrupts = <40 41 42 43>;
262 phy-handle = <&phy0>;
263 };
264
265 eth1: ethernet@4a120000 {
266 compatible = "ti,dm816-emac";
267 ti,hwmods = "emac1";
268 reg = <0x4a120000 0x4000>;
269 clocks = <&sysclk24_ck>;
Tony Lindgren72d03222015-01-21 16:21:52 -0800270 syscon = <&scm_conf>;
Tony Lindgren78000642015-01-19 11:47:35 -0800271 ti,davinci-ctrl-reg-offset = <0>;
272 ti,davinci-ctrl-mod-reg-offset = <0x900>;
273 ti,davinci-ctrl-ram-offset = <0x2000>;
274 ti,davinci-ctrl-ram-size = <0x2000>;
275 interrupts = <44 45 46 47>;
276 phy-handle = <&phy1>;
277 };
278
279 mcspi1: spi@48030000 {
280 compatible = "ti,omap4-mcspi";
281 reg = <0x48030000 0x1000>;
282 #address-cells = <1>;
283 #size-cells = <0>;
284 interrupts = <65>;
285 ti,spi-num-cs = <4>;
286 ti,hwmods = "mcspi1";
287 dmas = <&edma 16 &edma 17
288 &edma 18 &edma 19>;
289 dma-names = "tx0", "rx0", "tx1", "rx1";
290 };
291
292 mmc1: mmc@48060000 {
293 compatible = "ti,omap4-hsmmc";
294 reg = <0x48060000 0x11000>;
295 ti,hwmods = "mmc1";
296 interrupts = <64>;
297 dmas = <&edma 24 &edma 25>;
298 dma-names = "tx", "rx";
299 };
300
301 timer1: timer@4802e000 {
302 compatible = "ti,dm816-timer";
303 reg = <0x4802e000 0x2000>;
304 interrupts = <67>;
305 ti,hwmods = "timer1";
306 ti,timer-alwon;
307 };
308
309 timer2: timer@48040000 {
310 compatible = "ti,dm816-timer";
311 reg = <0x48040000 0x2000>;
312 interrupts = <68>;
313 ti,hwmods = "timer2";
314 };
315
316 timer3: timer@48042000 {
317 compatible = "ti,dm816-timer";
318 reg = <0x48042000 0x2000>;
319 interrupts = <69>;
320 ti,hwmods = "timer3";
321 };
322
323 timer4: timer@48044000 {
324 compatible = "ti,dm816-timer";
325 reg = <0x48044000 0x2000>;
326 interrupts = <92>;
327 ti,hwmods = "timer4";
Neil Armstrong8ca31db2015-11-12 15:07:40 +0100328 ti,timer-pwm;
Tony Lindgren78000642015-01-19 11:47:35 -0800329 };
330
331 timer5: timer@48046000 {
332 compatible = "ti,dm816-timer";
333 reg = <0x48046000 0x2000>;
334 interrupts = <93>;
335 ti,hwmods = "timer5";
Neil Armstrong8ca31db2015-11-12 15:07:40 +0100336 ti,timer-pwm;
Tony Lindgren78000642015-01-19 11:47:35 -0800337 };
338
339 timer6: timer@48048000 {
340 compatible = "ti,dm816-timer";
341 reg = <0x48048000 0x2000>;
342 interrupts = <94>;
343 ti,hwmods = "timer6";
Neil Armstrong8ca31db2015-11-12 15:07:40 +0100344 ti,timer-pwm;
Tony Lindgren78000642015-01-19 11:47:35 -0800345 };
346
347 timer7: timer@4804a000 {
348 compatible = "ti,dm816-timer";
349 reg = <0x4804a000 0x2000>;
350 interrupts = <95>;
351 ti,hwmods = "timer7";
Neil Armstrong8ca31db2015-11-12 15:07:40 +0100352 ti,timer-pwm;
Tony Lindgren78000642015-01-19 11:47:35 -0800353 };
354
355 uart1: uart@48020000 {
356 compatible = "ti,omap3-uart";
357 ti,hwmods = "uart1";
358 reg = <0x48020000 0x2000>;
359 clock-frequency = <48000000>;
360 interrupts = <72>;
361 dmas = <&edma 26 &edma 27>;
362 dma-names = "tx", "rx";
363 };
364
365 uart2: uart@48022000 {
366 compatible = "ti,omap3-uart";
367 ti,hwmods = "uart2";
368 reg = <0x48022000 0x2000>;
369 clock-frequency = <48000000>;
370 interrupts = <73>;
371 dmas = <&edma 28 &edma 29>;
372 dma-names = "tx", "rx";
373 };
374
375 uart3: uart@48024000 {
376 compatible = "ti,omap3-uart";
377 ti,hwmods = "uart3";
378 reg = <0x48024000 0x2000>;
379 clock-frequency = <48000000>;
380 interrupts = <74>;
381 dmas = <&edma 30 &edma 31>;
382 dma-names = "tx", "rx";
383 };
384
385 /* NOTE: USB needs a transceiver driver for phys to work */
386 usb: usb_otg_hs@47401000 {
387 compatible = "ti,am33xx-usb";
388 reg = <0x47401000 0x400000>;
389 ranges;
390 #address-cells = <1>;
391 #size-cells = <1>;
392 ti,hwmods = "usb_otg_hs";
393
394 usb0: usb@47401000 {
Tony Lindgren1b205c52015-05-29 09:59:42 -0700395 compatible = "ti,musb-dm816";
Tony Lindgren78000642015-01-19 11:47:35 -0800396 reg = <0x47401400 0x400
397 0x47401000 0x200>;
398 reg-names = "mc", "control";
399 interrupts = <18>;
400 interrupt-names = "mc";
Tony Lindgrena54879a2015-02-24 08:48:52 -0800401 dr_mode = "host";
402 interface-type = <0>;
403 phys = <&usb_phy0>;
404 phy-names = "usb2-phy";
Tony Lindgren78000642015-01-19 11:47:35 -0800405 mentor,multipoint = <1>;
406 mentor,num-eps = <16>;
407 mentor,ram-bits = <12>;
408 mentor,power = <500>;
Tony Lindgrende1a1222015-03-19 09:14:36 -0700409
410 dmas = <&cppi41dma 0 0 &cppi41dma 1 0
411 &cppi41dma 2 0 &cppi41dma 3 0
412 &cppi41dma 4 0 &cppi41dma 5 0
413 &cppi41dma 6 0 &cppi41dma 7 0
414 &cppi41dma 8 0 &cppi41dma 9 0
415 &cppi41dma 10 0 &cppi41dma 11 0
416 &cppi41dma 12 0 &cppi41dma 13 0
417 &cppi41dma 14 0 &cppi41dma 0 1
418 &cppi41dma 1 1 &cppi41dma 2 1
419 &cppi41dma 3 1 &cppi41dma 4 1
420 &cppi41dma 5 1 &cppi41dma 6 1
421 &cppi41dma 7 1 &cppi41dma 8 1
422 &cppi41dma 9 1 &cppi41dma 10 1
423 &cppi41dma 11 1 &cppi41dma 12 1
424 &cppi41dma 13 1 &cppi41dma 14 1>;
425 dma-names =
426 "rx1", "rx2", "rx3", "rx4", "rx5", "rx6", "rx7",
427 "rx8", "rx9", "rx10", "rx11", "rx12", "rx13",
428 "rx14", "rx15",
429 "tx1", "tx2", "tx3", "tx4", "tx5", "tx6", "tx7",
430 "tx8", "tx9", "tx10", "tx11", "tx12", "tx13",
431 "tx14", "tx15";
Tony Lindgren78000642015-01-19 11:47:35 -0800432 };
433
434 usb1: usb@47401800 {
Tony Lindgren1b205c52015-05-29 09:59:42 -0700435 compatible = "ti,musb-dm816";
Tony Lindgren78000642015-01-19 11:47:35 -0800436 reg = <0x47401c00 0x400
437 0x47401800 0x200>;
438 reg-names = "mc", "control";
439 interrupts = <19>;
440 interrupt-names = "mc";
Tony Lindgrena54879a2015-02-24 08:48:52 -0800441 dr_mode = "host";
442 interface-type = <0>;
443 phys = <&usb_phy1>;
444 phy-names = "usb2-phy";
Tony Lindgren78000642015-01-19 11:47:35 -0800445 mentor,multipoint = <1>;
446 mentor,num-eps = <16>;
447 mentor,ram-bits = <12>;
448 mentor,power = <500>;
Tony Lindgrende1a1222015-03-19 09:14:36 -0700449
450 dmas = <&cppi41dma 15 0 &cppi41dma 16 0
451 &cppi41dma 17 0 &cppi41dma 18 0
452 &cppi41dma 19 0 &cppi41dma 20 0
453 &cppi41dma 21 0 &cppi41dma 22 0
454 &cppi41dma 23 0 &cppi41dma 24 0
455 &cppi41dma 25 0 &cppi41dma 26 0
456 &cppi41dma 27 0 &cppi41dma 28 0
457 &cppi41dma 29 0 &cppi41dma 15 1
458 &cppi41dma 16 1 &cppi41dma 17 1
459 &cppi41dma 18 1 &cppi41dma 19 1
460 &cppi41dma 20 1 &cppi41dma 21 1
461 &cppi41dma 22 1 &cppi41dma 23 1
462 &cppi41dma 24 1 &cppi41dma 25 1
463 &cppi41dma 26 1 &cppi41dma 27 1
464 &cppi41dma 28 1 &cppi41dma 29 1>;
465 dma-names =
466 "rx1", "rx2", "rx3", "rx4", "rx5", "rx6", "rx7",
467 "rx8", "rx9", "rx10", "rx11", "rx12", "rx13",
468 "rx14", "rx15",
469 "tx1", "tx2", "tx3", "tx4", "tx5", "tx6", "tx7",
470 "tx8", "tx9", "tx10", "tx11", "tx12", "tx13",
471 "tx14", "tx15";
472 };
473
474 cppi41dma: dma-controller@47402000 {
475 compatible = "ti,am3359-cppi41";
476 reg = <0x47400000 0x1000
477 0x47402000 0x1000
478 0x47403000 0x1000
479 0x47404000 0x4000>;
480 reg-names = "glue", "controller", "scheduler", "queuemgr";
481 interrupts = <17>;
482 interrupt-names = "glue";
483 #dma-cells = <2>;
484 #dma-channels = <30>;
485 #dma-requests = <256>;
Tony Lindgren78000642015-01-19 11:47:35 -0800486 };
487 };
488
489 wd_timer2: wd_timer@480c2000 {
490 compatible = "ti,omap3-wdt";
491 ti,hwmods = "wd_timer";
492 reg = <0x480c2000 0x1000>;
493 interrupts = <0>;
494 };
495 };
496};
497
Tony Lindgren7383ca92015-01-19 11:47:35 -0800498#include "dm816x-clocks.dtsi"