blob: ce8936bebe5e7a24e5c83e4d060d0d8dc5142dd3 [file] [log] [blame]
Linus Walleijf8635ab2013-01-05 00:29:31 +01001/*
2 * Device Tree for the ST-Ericsson Nomadik 8815 STn8815 SoC
3 */
Linus Walleij31817882014-07-25 12:18:42 +02004
5#include <dt-bindings/gpio/gpio.h>
6#include "skeleton.dtsi"
Linus Walleijf8635ab2013-01-05 00:29:31 +01007
8/ {
9 #address-cells = <1>;
10 #size-cells = <1>;
11
12 memory {
13 reg = <0x00000000 0x04000000>,
14 <0x08000000 0x04000000>;
15 };
16
17 L2: l2-cache {
18 compatible = "arm,l210-cache";
19 reg = <0x10210000 0x1000>;
20 interrupt-parent = <&vica>;
21 interrupts = <30>;
22 cache-unified;
23 cache-level = <2>;
Linus Walleij98badfd2015-07-27 22:40:53 +020024 cache-size = <131072>;
25 cache-sets = <512>;
26 cache-line-size = <32>;
27 /* At full speed latency must be >=2 */
28 arm,tag-latency = <2>;
29 arm,data-latency = <2 2>;
30 arm,dirty-latency = <2>;
Linus Walleijf8635ab2013-01-05 00:29:31 +010031 };
32
Linus Walleij7690fbb2013-04-16 23:44:31 +020033 mtu0: mtu@101e2000 {
Linus Walleijf8635ab2013-01-05 00:29:31 +010034 /* Nomadik system timer */
Linus Walleij7690fbb2013-04-16 23:44:31 +020035 compatible = "st,nomadik-mtu";
Linus Walleijf8635ab2013-01-05 00:29:31 +010036 reg = <0x101e2000 0x1000>;
37 interrupt-parent = <&vica>;
38 interrupts = <4>;
Linus Walleij7690fbb2013-04-16 23:44:31 +020039 clocks = <&timclk>, <&pclk>;
40 clock-names = "timclk", "apb_pclk";
Linus Walleijf8635ab2013-01-05 00:29:31 +010041 };
42
Linus Walleij7690fbb2013-04-16 23:44:31 +020043 mtu1: mtu@101e3000 {
Linus Walleijf8635ab2013-01-05 00:29:31 +010044 /* Secondary timer */
45 reg = <0x101e3000 0x1000>;
46 interrupt-parent = <&vica>;
47 interrupts = <5>;
Linus Walleij7690fbb2013-04-16 23:44:31 +020048 clocks = <&timclk>, <&pclk>;
49 clock-names = "timclk", "apb_pclk";
Linus Walleijf8635ab2013-01-05 00:29:31 +010050 };
51
Linus Walleij6010d402013-01-05 23:10:09 +010052 gpio0: gpio@101e4000 {
53 compatible = "st,nomadik-gpio";
54 reg = <0x101e4000 0x80>;
55 interrupt-parent = <&vica>;
56 interrupts = <6>;
57 interrupt-controller;
58 #interrupt-cells = <2>;
59 gpio-controller;
60 #gpio-cells = <2>;
61 gpio-bank = <0>;
Linus Walleij6e2b07a2013-04-16 21:38:29 +020062 clocks = <&pclk>;
Linus Walleij6010d402013-01-05 23:10:09 +010063 };
64
65 gpio1: gpio@101e5000 {
66 compatible = "st,nomadik-gpio";
67 reg = <0x101e5000 0x80>;
68 interrupt-parent = <&vica>;
69 interrupts = <7>;
70 interrupt-controller;
71 #interrupt-cells = <2>;
72 gpio-controller;
73 #gpio-cells = <2>;
74 gpio-bank = <1>;
Linus Walleij6e2b07a2013-04-16 21:38:29 +020075 clocks = <&pclk>;
Linus Walleij6010d402013-01-05 23:10:09 +010076 };
77
78 gpio2: gpio@101e6000 {
79 compatible = "st,nomadik-gpio";
80 reg = <0x101e6000 0x80>;
81 interrupt-parent = <&vica>;
82 interrupts = <8>;
83 interrupt-controller;
84 #interrupt-cells = <2>;
85 gpio-controller;
86 #gpio-cells = <2>;
87 gpio-bank = <2>;
Linus Walleij6e2b07a2013-04-16 21:38:29 +020088 clocks = <&pclk>;
Linus Walleij6010d402013-01-05 23:10:09 +010089 };
90
91 gpio3: gpio@101e7000 {
92 compatible = "st,nomadik-gpio";
93 reg = <0x101e7000 0x80>;
94 interrupt-parent = <&vica>;
95 interrupts = <9>;
96 interrupt-controller;
97 #interrupt-cells = <2>;
98 gpio-controller;
99 #gpio-cells = <2>;
100 gpio-bank = <3>;
Linus Walleij6e2b07a2013-04-16 21:38:29 +0200101 clocks = <&pclk>;
Linus Walleij6010d402013-01-05 23:10:09 +0100102 };
103
104 pinctrl {
Lee Jonescdfa9272013-05-22 15:22:56 +0100105 compatible = "stericsson,stn8815-pinctrl";
Linus Walleij49932f52013-05-24 21:56:38 +0200106 /* Pin configurations */
Linus Walleij49932f52013-05-24 21:56:38 +0200107 uart1 {
108 uart1_default_mux: uart1_mux {
109 u1_default_mux {
Linus Walleij68d41f22014-09-29 17:21:56 +0200110 function = "u1";
111 groups = "u1_a_1";
Linus Walleij49932f52013-05-24 21:56:38 +0200112 };
113 };
114 };
115 mmcsd {
116 mmcsd_default_mux: mmcsd_mux {
117 mmcsd_default_mux {
Linus Walleij68d41f22014-09-29 17:21:56 +0200118 function = "mmcsd";
Linus Torvaldsc1b30e42014-12-11 10:43:14 -0800119 groups = "mmcsd_a_1", "mmcsd_b_1";
Linus Walleij49932f52013-05-24 21:56:38 +0200120 };
121 };
122 mmcsd_default_mode: mmcsd_default {
123 mmcsd_default_cfg1 {
124 /* MCCLK */
Linus Walleij1637d482014-09-30 12:16:25 +0200125 pins = "GPIO8_B10";
Linus Walleij49932f52013-05-24 21:56:38 +0200126 ste,output = <0>;
127 };
128 mmcsd_default_cfg2 {
Linus Walleij43c40342014-09-27 15:45:02 +0200129 /* MCCMDDIR, MCDAT0DIR, MCDAT31DIR, MCDATDIR2 */
Linus Walleij1637d482014-09-30 12:16:25 +0200130 pins = "GPIO10_C11", "GPIO15_A12",
Linus Walleij43c40342014-09-27 15:45:02 +0200131 "GPIO16_C13", "GPIO23_D15";
Linus Walleij49932f52013-05-24 21:56:38 +0200132 ste,output = <1>;
133 };
134 mmcsd_default_cfg3 {
135 /* MCCMD, MCDAT3-0, MCMSFBCLK */
Linus Walleij1637d482014-09-30 12:16:25 +0200136 pins = "GPIO9_A10", "GPIO11_B11",
Linus Walleij49932f52013-05-24 21:56:38 +0200137 "GPIO12_A11", "GPIO13_C12",
138 "GPIO14_B12", "GPIO24_C15";
139 ste,input = <1>;
140 };
141 };
142 };
143 i2c0 {
Linus Walleij66e0c122013-06-10 00:17:56 +0200144 i2c0_default_mux: i2c0_mux {
145 i2c0_default_mux {
Linus Walleij68d41f22014-09-29 17:21:56 +0200146 function = "i2c0";
147 groups = "i2c0_a_1";
Linus Walleij66e0c122013-06-10 00:17:56 +0200148 };
149 };
Linus Walleij49932f52013-05-24 21:56:38 +0200150 i2c0_default_mode: i2c0_default {
151 i2c0_default_cfg {
Linus Walleij1637d482014-09-30 12:16:25 +0200152 pins = "GPIO62_D3", "GPIO63_D2";
Linus Walleij66e0c122013-06-10 00:17:56 +0200153 ste,input = <0>;
Linus Walleij49932f52013-05-24 21:56:38 +0200154 };
155 };
156 };
157 i2c1 {
Linus Walleij66e0c122013-06-10 00:17:56 +0200158 i2c1_default_mux: i2c1_mux {
159 i2c1_default_mux {
Linus Walleij68d41f22014-09-29 17:21:56 +0200160 function = "i2c1";
161 groups = "i2c1_a_1";
Linus Walleij66e0c122013-06-10 00:17:56 +0200162 };
163 };
Linus Walleij49932f52013-05-24 21:56:38 +0200164 i2c1_default_mode: i2c1_default {
165 i2c1_default_cfg {
Linus Walleij1637d482014-09-30 12:16:25 +0200166 pins = "GPIO53_L4", "GPIO54_L3";
Linus Walleij66e0c122013-06-10 00:17:56 +0200167 ste,input = <0>;
Linus Walleij49932f52013-05-24 21:56:38 +0200168 };
169 };
170 };
Linus Walleij6010d402013-01-05 23:10:09 +0100171 };
172
Linus Walleij6e2b07a2013-04-16 21:38:29 +0200173 src: src@101e0000 {
174 compatible = "stericsson,nomadik-src";
175 reg = <0x101e0000 0x1000>;
Linus Walleijc641d4d2013-06-05 01:18:40 +0200176
177 /*
178 * MXTAL "Main Chrystal" is a chrystal oscillator @19.2 MHz
179 * that is parent of TIMCLK, PLL1 and PLL2
180 */
181 mxtal: mxtal@19.2M {
182 #clock-cells = <0>;
183 compatible = "fixed-clock";
184 clock-frequency = <19200000>;
185 };
186
187 /*
188 * The 2.4 MHz TIMCLK reference clock is active at
189 * boot time, this is actually the MXTALCLK @19.2 MHz
190 * divided by 8. This clock is used by the timers and
191 * watchdog. See page 105 ff.
192 */
193 timclk: timclk@2.4M {
194 #clock-cells = <0>;
195 compatible = "fixed-factor-clock";
196 clock-div = <8>;
197 clock-mult = <1>;
198 clocks = <&mxtal>;
199 };
200
201 /* PLL1 is locked to MXTALI and variable from 20.4 to 334 MHz */
202 pll1: pll1@0 {
203 #clock-cells = <0>;
204 compatible = "st,nomadik-pll-clock";
205 pll-id = <1>;
206 clocks = <&mxtal>;
207 };
208
209 /* HCLK divides the PLL1 with 1,2,3 or 4 */
210 hclk: hclk@0 {
211 #clock-cells = <0>;
212 compatible = "st,nomadik-hclk-clock";
213 clocks = <&pll1>;
214 };
215 /* The PCLK domain uses HCLK right off */
216 pclk: pclk@0 {
217 #clock-cells = <0>;
218 compatible = "fixed-factor-clock";
219 clock-div = <1>;
220 clock-mult = <1>;
221 clocks = <&hclk>;
222 };
223
224 /* PLL2 is usually 864 MHz and divided into a few fixed rates */
225 pll2: pll2@0 {
226 #clock-cells = <0>;
227 compatible = "st,nomadik-pll-clock";
228 pll-id = <2>;
229 clocks = <&mxtal>;
230 };
231 clk216: clk216@216M {
232 #clock-cells = <0>;
233 compatible = "fixed-factor-clock";
234 clock-div = <4>;
235 clock-mult = <1>;
236 clocks = <&pll2>;
237 };
238 clk108: clk108@108M {
239 #clock-cells = <0>;
240 compatible = "fixed-factor-clock";
241 clock-div = <2>;
242 clock-mult = <1>;
243 clocks = <&clk216>;
244 };
245 clk72: clk72@72M {
246 #clock-cells = <0>;
247 compatible = "fixed-factor-clock";
248 /* The data sheet does not say how this is derived */
249 clock-div = <12>;
250 clock-mult = <1>;
251 clocks = <&pll2>;
252 };
253 clk48: clk48@48M {
254 #clock-cells = <0>;
255 compatible = "fixed-factor-clock";
256 /* The data sheet does not say how this is derived */
257 clock-div = <18>;
258 clock-mult = <1>;
259 clocks = <&pll2>;
260 };
261 clk27: clk27@27M {
262 #clock-cells = <0>;
263 compatible = "fixed-factor-clock";
264 clock-div = <4>;
265 clock-mult = <1>;
266 clocks = <&clk108>;
267 };
268
269 /* This apparently exists as well */
270 ulpiclk: ulpiclk@60M {
271 #clock-cells = <0>;
272 compatible = "fixed-clock";
273 clock-frequency = <60000000>;
274 };
275
276 /*
277 * IP AMBA bus clocks, driving the bus side of the
278 * peripheral clocking, clock gates.
279 */
280
281 hclkdma0: hclkdma0@48M {
282 #clock-cells = <0>;
283 compatible = "st,nomadik-src-clock";
284 clock-id = <0>;
285 clocks = <&hclk>;
286 };
287 hclksmc: hclksmc@48M {
288 #clock-cells = <0>;
289 compatible = "st,nomadik-src-clock";
290 clock-id = <1>;
291 clocks = <&hclk>;
292 };
293 hclksdram: hclksdram@48M {
294 #clock-cells = <0>;
295 compatible = "st,nomadik-src-clock";
296 clock-id = <2>;
297 clocks = <&hclk>;
298 };
299 hclkdma1: hclkdma1@48M {
300 #clock-cells = <0>;
301 compatible = "st,nomadik-src-clock";
302 clock-id = <3>;
303 clocks = <&hclk>;
304 };
305 hclkclcd: hclkclcd@48M {
306 #clock-cells = <0>;
307 compatible = "st,nomadik-src-clock";
308 clock-id = <4>;
309 clocks = <&hclk>;
310 };
311 pclkirda: pclkirda@48M {
312 #clock-cells = <0>;
313 compatible = "st,nomadik-src-clock";
314 clock-id = <5>;
315 clocks = <&pclk>;
316 };
317 pclkssp: pclkssp@48M {
318 #clock-cells = <0>;
319 compatible = "st,nomadik-src-clock";
320 clock-id = <6>;
321 clocks = <&pclk>;
322 };
323 pclkuart0: pclkuart0@48M {
324 #clock-cells = <0>;
325 compatible = "st,nomadik-src-clock";
326 clock-id = <7>;
327 clocks = <&pclk>;
328 };
329 pclksdi: pclksdi@48M {
330 #clock-cells = <0>;
331 compatible = "st,nomadik-src-clock";
332 clock-id = <8>;
333 clocks = <&pclk>;
334 };
335 pclki2c0: pclki2c0@48M {
336 #clock-cells = <0>;
337 compatible = "st,nomadik-src-clock";
338 clock-id = <9>;
339 clocks = <&pclk>;
340 };
341 pclki2c1: pclki2c1@48M {
342 #clock-cells = <0>;
343 compatible = "st,nomadik-src-clock";
344 clock-id = <10>;
345 clocks = <&pclk>;
346 };
347 pclkuart1: pclkuart1@48M {
348 #clock-cells = <0>;
349 compatible = "st,nomadik-src-clock";
350 clock-id = <11>;
351 clocks = <&pclk>;
352 };
353 pclkmsp0: pclkmsp0@48M {
354 #clock-cells = <0>;
355 compatible = "st,nomadik-src-clock";
356 clock-id = <12>;
357 clocks = <&pclk>;
358 };
359 hclkusb: hclkusb@48M {
360 #clock-cells = <0>;
361 compatible = "st,nomadik-src-clock";
362 clock-id = <13>;
363 clocks = <&hclk>;
364 };
365 hclkdif: hclkdif@48M {
366 #clock-cells = <0>;
367 compatible = "st,nomadik-src-clock";
368 clock-id = <14>;
369 clocks = <&hclk>;
370 };
371 hclksaa: hclksaa@48M {
372 #clock-cells = <0>;
373 compatible = "st,nomadik-src-clock";
374 clock-id = <15>;
375 clocks = <&hclk>;
376 };
377 hclksva: hclksva@48M {
378 #clock-cells = <0>;
379 compatible = "st,nomadik-src-clock";
380 clock-id = <16>;
381 clocks = <&hclk>;
382 };
383 pclkhsi: pclkhsi@48M {
384 #clock-cells = <0>;
385 compatible = "st,nomadik-src-clock";
386 clock-id = <17>;
387 clocks = <&pclk>;
388 };
389 pclkxti: pclkxti@48M {
390 #clock-cells = <0>;
391 compatible = "st,nomadik-src-clock";
392 clock-id = <18>;
393 clocks = <&pclk>;
394 };
395 pclkuart2: pclkuart2@48M {
396 #clock-cells = <0>;
397 compatible = "st,nomadik-src-clock";
398 clock-id = <19>;
399 clocks = <&pclk>;
400 };
401 pclkmsp1: pclkmsp1@48M {
402 #clock-cells = <0>;
403 compatible = "st,nomadik-src-clock";
404 clock-id = <20>;
405 clocks = <&pclk>;
406 };
407 pclkmsp2: pclkmsp2@48M {
408 #clock-cells = <0>;
409 compatible = "st,nomadik-src-clock";
410 clock-id = <21>;
411 clocks = <&pclk>;
412 };
413 pclkowm: pclkowm@48M {
414 #clock-cells = <0>;
415 compatible = "st,nomadik-src-clock";
416 clock-id = <22>;
417 clocks = <&pclk>;
418 };
419 hclkhpi: hclkhpi@48M {
420 #clock-cells = <0>;
421 compatible = "st,nomadik-src-clock";
422 clock-id = <23>;
423 clocks = <&hclk>;
424 };
425 pclkske: pclkske@48M {
426 #clock-cells = <0>;
427 compatible = "st,nomadik-src-clock";
428 clock-id = <24>;
429 clocks = <&pclk>;
430 };
431 pclkhsem: pclkhsem@48M {
432 #clock-cells = <0>;
433 compatible = "st,nomadik-src-clock";
434 clock-id = <25>;
435 clocks = <&pclk>;
436 };
437 hclk3d: hclk3d@48M {
438 #clock-cells = <0>;
439 compatible = "st,nomadik-src-clock";
440 clock-id = <26>;
441 clocks = <&hclk>;
442 };
443 hclkhash: hclkhash@48M {
444 #clock-cells = <0>;
445 compatible = "st,nomadik-src-clock";
446 clock-id = <27>;
447 clocks = <&hclk>;
448 };
449 hclkcryp: hclkcryp@48M {
450 #clock-cells = <0>;
451 compatible = "st,nomadik-src-clock";
452 clock-id = <28>;
453 clocks = <&hclk>;
454 };
455 pclkmshc: pclkmshc@48M {
456 #clock-cells = <0>;
457 compatible = "st,nomadik-src-clock";
458 clock-id = <29>;
459 clocks = <&pclk>;
460 };
461 hclkusbm: hclkusbm@48M {
462 #clock-cells = <0>;
463 compatible = "st,nomadik-src-clock";
464 clock-id = <30>;
465 clocks = <&hclk>;
466 };
467 hclkrng: hclkrng@48M {
468 #clock-cells = <0>;
469 compatible = "st,nomadik-src-clock";
470 clock-id = <31>;
471 clocks = <&hclk>;
472 };
473
474 /* IP kernel clocks */
475 clcdclk: clcdclk@0 {
476 #clock-cells = <0>;
477 compatible = "st,nomadik-src-clock";
478 clock-id = <36>;
479 clocks = <&clk72 &clk48>;
480 };
481 irdaclk: irdaclk@48M {
482 #clock-cells = <0>;
483 compatible = "st,nomadik-src-clock";
484 clock-id = <37>;
485 clocks = <&clk48>;
486 };
487 sspiclk: sspiclk@48M {
488 #clock-cells = <0>;
489 compatible = "st,nomadik-src-clock";
490 clock-id = <38>;
491 clocks = <&clk48>;
492 };
493 uart0clk: uart0clk@48M {
494 #clock-cells = <0>;
495 compatible = "st,nomadik-src-clock";
496 clock-id = <39>;
497 clocks = <&clk48>;
498 };
499 sdiclk: sdiclk@48M {
500 /* Also called MCCLK in some documents */
501 #clock-cells = <0>;
502 compatible = "st,nomadik-src-clock";
503 clock-id = <40>;
504 clocks = <&clk48>;
505 };
506 i2c0clk: i2c0clk@48M {
507 #clock-cells = <0>;
508 compatible = "st,nomadik-src-clock";
509 clock-id = <41>;
510 clocks = <&clk48>;
511 };
512 i2c1clk: i2c1clk@48M {
513 #clock-cells = <0>;
514 compatible = "st,nomadik-src-clock";
515 clock-id = <42>;
516 clocks = <&clk48>;
517 };
518 uart1clk: uart1clk@48M {
519 #clock-cells = <0>;
520 compatible = "st,nomadik-src-clock";
521 clock-id = <43>;
522 clocks = <&clk48>;
523 };
524 mspclk0: mspclk0@48M {
525 #clock-cells = <0>;
526 compatible = "st,nomadik-src-clock";
527 clock-id = <44>;
528 clocks = <&clk48>;
529 };
530 usbclk: usbclk@48M {
531 #clock-cells = <0>;
532 compatible = "st,nomadik-src-clock";
533 clock-id = <45>;
534 clocks = <&clk48>; /* 48 MHz not ULPI */
535 };
536 difclk: difclk@72M {
537 #clock-cells = <0>;
538 compatible = "st,nomadik-src-clock";
539 clock-id = <46>;
540 clocks = <&clk72>;
541 };
542 ipi2cclk: ipi2cclk@48M {
543 #clock-cells = <0>;
544 compatible = "st,nomadik-src-clock";
545 clock-id = <47>;
546 clocks = <&clk48>; /* Guess */
547 };
548 ipbmcclk: ipbmcclk@48M {
549 #clock-cells = <0>;
550 compatible = "st,nomadik-src-clock";
551 clock-id = <48>;
552 clocks = <&clk48>; /* Guess */
553 };
554 hsiclkrx: hsiclkrx@216M {
555 #clock-cells = <0>;
556 compatible = "st,nomadik-src-clock";
557 clock-id = <49>;
558 clocks = <&clk216>;
559 };
560 hsiclktx: hsiclktx@108M {
561 #clock-cells = <0>;
562 compatible = "st,nomadik-src-clock";
563 clock-id = <50>;
564 clocks = <&clk108>;
565 };
566 uart2clk: uart2clk@48M {
567 #clock-cells = <0>;
568 compatible = "st,nomadik-src-clock";
569 clock-id = <51>;
570 clocks = <&clk48>;
571 };
572 mspclk1: mspclk1@48M {
573 #clock-cells = <0>;
574 compatible = "st,nomadik-src-clock";
575 clock-id = <52>;
576 clocks = <&clk48>;
577 };
578 mspclk2: mspclk2@48M {
579 #clock-cells = <0>;
580 compatible = "st,nomadik-src-clock";
581 clock-id = <53>;
582 clocks = <&clk48>;
583 };
584 owmclk: owmclk@48M {
585 #clock-cells = <0>;
586 compatible = "st,nomadik-src-clock";
587 clock-id = <54>;
588 clocks = <&clk48>; /* Guess */
589 };
590 skeclk: skeclk@48M {
591 #clock-cells = <0>;
592 compatible = "st,nomadik-src-clock";
593 clock-id = <56>;
594 clocks = <&clk48>; /* Guess */
595 };
596 x3dclk: x3dclk@48M {
597 #clock-cells = <0>;
598 compatible = "st,nomadik-src-clock";
599 clock-id = <58>;
600 clocks = <&clk48>; /* Guess */
601 };
602 pclkmsp3: pclkmsp3@48M {
603 #clock-cells = <0>;
604 compatible = "st,nomadik-src-clock";
605 clock-id = <59>;
606 clocks = <&pclk>;
607 };
608 mspclk3: mspclk3@48M {
609 #clock-cells = <0>;
610 compatible = "st,nomadik-src-clock";
611 clock-id = <60>;
612 clocks = <&clk48>;
613 };
614 mshcclk: mshcclk@48M {
615 #clock-cells = <0>;
616 compatible = "st,nomadik-src-clock";
617 clock-id = <61>;
618 clocks = <&clk48>; /* Guess */
619 };
620 usbmclk: usbmclk@48M {
621 #clock-cells = <0>;
622 compatible = "st,nomadik-src-clock";
623 clock-id = <62>;
624 /* Stated as "48 MHz not ULPI clock" */
625 clocks = <&clk48>;
626 };
627 rngcclk: rngcclk@48M {
628 #clock-cells = <0>;
629 compatible = "st,nomadik-src-clock";
630 clock-id = <63>;
631 clocks = <&clk48>; /* Guess */
Linus Walleij6e2b07a2013-04-16 21:38:29 +0200632 };
633 };
634
Linus Walleijba785202013-01-05 22:28:32 +0100635 /* A NAND flash of 128 MiB */
636 fsmc: flash@40000000 {
637 compatible = "stericsson,fsmc-nand";
638 #address-cells = <1>;
639 #size-cells = <1>;
640 reg = <0x10100000 0x1000>, /* FSMC Register*/
641 <0x40000000 0x2000>, /* NAND Base DATA */
642 <0x41000000 0x2000>, /* NAND Base ADDR */
643 <0x40800000 0x2000>; /* NAND Base CMD */
644 reg-names = "fsmc_regs", "nand_data", "nand_addr", "nand_cmd";
Linus Walleijc641d4d2013-06-05 01:18:40 +0200645 clocks = <&hclksmc>;
Linus Walleijba785202013-01-05 22:28:32 +0100646 status = "okay";
Linus Walleij2c5a7422013-09-13 21:15:14 +0200647 timings = /bits/ 8 <0 0 0 0x10 0x0a 0>;
Linus Walleijba785202013-01-05 22:28:32 +0100648
649 partition@0 {
650 label = "X-Loader(NAND)";
651 reg = <0x0 0x40000>;
652 };
653 partition@40000 {
654 label = "MemInit(NAND)";
655 reg = <0x40000 0x40000>;
656 };
657 partition@80000 {
658 label = "BootLoader(NAND)";
659 reg = <0x80000 0x200000>;
660 };
661 partition@280000 {
662 label = "Kernel zImage(NAND)";
663 reg = <0x280000 0x300000>;
664 };
665 partition@580000 {
666 label = "Root Filesystem(NAND)";
667 reg = <0x580000 0x1600000>;
668 };
669 partition@1b80000 {
670 label = "User Filesystem(NAND)";
671 reg = <0x1b80000 0x6480000>;
672 };
673 };
674
Linus Walleij09e02f42013-01-06 02:10:27 +0100675 /* I2C0 connected to the STw4811 power management chip */
676 i2c0 {
Linus Walleij66e0c122013-06-10 00:17:56 +0200677 compatible = "st,nomadik-i2c", "arm,primecell";
678 reg = <0x101f8000 0x1000>;
679 interrupt-parent = <&vica>;
680 interrupts = <20>;
681 clock-frequency = <100000>;
Linus Walleij09e02f42013-01-06 02:10:27 +0100682 #address-cells = <1>;
683 #size-cells = <0>;
Linus Walleij66e0c122013-06-10 00:17:56 +0200684 clocks = <&i2c0clk>, <&pclki2c0>;
685 clock-names = "mclk", "apb_pclk";
Linus Walleij49932f52013-05-24 21:56:38 +0200686 pinctrl-names = "default";
Linus Walleij66e0c122013-06-10 00:17:56 +0200687 pinctrl-0 = <&i2c0_default_mux>, <&i2c0_default_mode>;
Linus Walleij09e02f42013-01-06 02:10:27 +0100688
689 stw4811@2d {
Linus Walleijd9f37d92013-05-28 15:55:56 +0200690 compatible = "st,stw4811";
691 reg = <0x2d>;
692 vmmc_regulator: vmmc {
693 compatible = "st,stw481x-vmmc";
694 regulator-name = "VMMC";
695 regulator-min-microvolt = <1800000>;
696 regulator-max-microvolt = <3300000>;
697 };
Linus Walleij09e02f42013-01-06 02:10:27 +0100698 };
699 };
700
701 /* I2C1 connected to various sensors */
702 i2c1 {
Linus Walleij66e0c122013-06-10 00:17:56 +0200703 compatible = "st,nomadik-i2c", "arm,primecell";
704 reg = <0x101f7000 0x1000>;
705 interrupt-parent = <&vica>;
706 interrupts = <21>;
707 clock-frequency = <100000>;
Linus Walleij09e02f42013-01-06 02:10:27 +0100708 #address-cells = <1>;
709 #size-cells = <0>;
Linus Walleij66e0c122013-06-10 00:17:56 +0200710 clocks = <&i2c1clk>, <&pclki2c1>;
711 clock-names = "mclk", "apb_pclk";
Linus Walleij49932f52013-05-24 21:56:38 +0200712 pinctrl-names = "default";
Linus Walleij66e0c122013-06-10 00:17:56 +0200713 pinctrl-0 = <&i2c1_default_mux>, <&i2c1_default_mode>;
Linus Walleij09e02f42013-01-06 02:10:27 +0100714
715 camera@2d {
716 compatible = "st,camera";
717 reg = <0x10>;
718 };
719 stw5095@1a {
720 compatible = "st,stw5095";
721 reg = <0x1a>;
722 };
723 lis3lv02dl@1d {
Linus Walleij386f56b2015-06-05 09:42:25 +0200724 /* Accelerometer */
725 compatible = "st,lis3lv02dl-accel";
726 reg = <0x1d>;
Linus Walleij09e02f42013-01-06 02:10:27 +0100727 };
728 };
729
Linus Walleijf8635ab2013-01-05 00:29:31 +0100730 amba {
731 compatible = "arm,amba-bus";
732 #address-cells = <1>;
733 #size-cells = <1>;
734 ranges;
735
Lee Jones30e34002013-07-22 11:52:21 +0100736 vica: intc@10140000 {
Linus Walleijf8635ab2013-01-05 00:29:31 +0100737 compatible = "arm,versatile-vic";
738 interrupt-controller;
739 #interrupt-cells = <1>;
740 reg = <0x10140000 0x20>;
741 };
742
Lee Jones30e34002013-07-22 11:52:21 +0100743 vicb: intc@10140020 {
Linus Walleijf8635ab2013-01-05 00:29:31 +0100744 compatible = "arm,versatile-vic";
745 interrupt-controller;
746 #interrupt-cells = <1>;
747 reg = <0x10140020 0x20>;
748 };
749
750 uart0: uart@101fd000 {
751 compatible = "arm,pl011", "arm,primecell";
752 reg = <0x101fd000 0x1000>;
753 interrupt-parent = <&vica>;
754 interrupts = <12>;
Linus Walleijc641d4d2013-06-05 01:18:40 +0200755 clocks = <&uart0clk>, <&pclkuart0>;
Linus Walleij6e2b07a2013-04-16 21:38:29 +0200756 clock-names = "uartclk", "apb_pclk";
Linus Walleija1537902015-07-25 11:22:03 +0200757 status = "disabled";
Linus Walleijf8635ab2013-01-05 00:29:31 +0100758 };
759
760 uart1: uart@101fb000 {
761 compatible = "arm,pl011", "arm,primecell";
762 reg = <0x101fb000 0x1000>;
763 interrupt-parent = <&vica>;
764 interrupts = <17>;
Linus Walleijc641d4d2013-06-05 01:18:40 +0200765 clocks = <&uart1clk>, <&pclkuart1>;
Linus Walleij6e2b07a2013-04-16 21:38:29 +0200766 clock-names = "uartclk", "apb_pclk";
Linus Walleij49932f52013-05-24 21:56:38 +0200767 pinctrl-names = "default";
768 pinctrl-0 = <&uart1_default_mux>;
Linus Walleijf8635ab2013-01-05 00:29:31 +0100769 };
770
771 uart2: uart@101f2000 {
772 compatible = "arm,pl011", "arm,primecell";
773 reg = <0x101f2000 0x1000>;
774 interrupt-parent = <&vica>;
775 interrupts = <28>;
Linus Walleijc641d4d2013-06-05 01:18:40 +0200776 clocks = <&uart2clk>, <&pclkuart2>;
Linus Walleij6e2b07a2013-04-16 21:38:29 +0200777 clock-names = "uartclk", "apb_pclk";
Linus Walleijf8635ab2013-01-05 00:29:31 +0100778 status = "disabled";
779 };
Linus Walleij27bda032013-01-05 10:38:57 +0100780
781 rng: rng@101b0000 {
782 compatible = "arm,primecell";
783 reg = <0x101b0000 0x1000>;
Linus Walleijc641d4d2013-06-05 01:18:40 +0200784 clocks = <&rngcclk>, <&hclkrng>;
Linus Walleij6e2b07a2013-04-16 21:38:29 +0200785 clock-names = "rng", "apb_pclk";
Linus Walleij27bda032013-01-05 10:38:57 +0100786 };
787
788 rtc: rtc@101e8000 {
789 compatible = "arm,pl031", "arm,primecell";
790 reg = <0x101e8000 0x1000>;
Linus Walleij6e2b07a2013-04-16 21:38:29 +0200791 clocks = <&pclk>;
792 clock-names = "apb_pclk";
Linus Walleij27bda032013-01-05 10:38:57 +0100793 interrupt-parent = <&vica>;
794 interrupts = <10>;
795 };
Linus Walleij4fd243c2013-01-06 01:47:29 +0100796
797 mmcsd: sdi@101f6000 {
798 compatible = "arm,pl18x", "arm,primecell";
799 reg = <0x101f6000 0x1000>;
Linus Walleijc641d4d2013-06-05 01:18:40 +0200800 clocks = <&sdiclk>, <&pclksdi>;
Linus Walleij6e2b07a2013-04-16 21:38:29 +0200801 clock-names = "mclk", "apb_pclk";
Linus Walleij4fd243c2013-01-06 01:47:29 +0100802 interrupt-parent = <&vica>;
803 interrupts = <22>;
804 max-frequency = <48000000>;
805 bus-width = <4>;
Ulf Hanssonc1bc0e82014-03-18 20:36:50 +0100806 cap-mmc-highspeed;
807 cap-sd-highspeed;
Linus Walleij49932f52013-05-24 21:56:38 +0200808 pinctrl-names = "default";
809 pinctrl-0 = <&mmcsd_default_mux>, <&mmcsd_default_mode>;
Linus Walleijd9f37d92013-05-28 15:55:56 +0200810 vmmc-supply = <&vmmc_regulator>;
Linus Walleij4fd243c2013-01-06 01:47:29 +0100811 };
Linus Walleijf8635ab2013-01-05 00:29:31 +0100812 };
813};