blob: f182f6538e902e567602e5e3195d562b572b538f [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>;
24 };
25
Linus Walleij7690fbb2013-04-16 23:44:31 +020026 mtu0: mtu@101e2000 {
Linus Walleijf8635ab2013-01-05 00:29:31 +010027 /* Nomadik system timer */
Linus Walleij7690fbb2013-04-16 23:44:31 +020028 compatible = "st,nomadik-mtu";
Linus Walleijf8635ab2013-01-05 00:29:31 +010029 reg = <0x101e2000 0x1000>;
30 interrupt-parent = <&vica>;
31 interrupts = <4>;
Linus Walleij7690fbb2013-04-16 23:44:31 +020032 clocks = <&timclk>, <&pclk>;
33 clock-names = "timclk", "apb_pclk";
Linus Walleijf8635ab2013-01-05 00:29:31 +010034 };
35
Linus Walleij7690fbb2013-04-16 23:44:31 +020036 mtu1: mtu@101e3000 {
Linus Walleijf8635ab2013-01-05 00:29:31 +010037 /* Secondary timer */
38 reg = <0x101e3000 0x1000>;
39 interrupt-parent = <&vica>;
40 interrupts = <5>;
Linus Walleij7690fbb2013-04-16 23:44:31 +020041 clocks = <&timclk>, <&pclk>;
42 clock-names = "timclk", "apb_pclk";
Linus Walleijf8635ab2013-01-05 00:29:31 +010043 };
44
Linus Walleij6010d402013-01-05 23:10:09 +010045 gpio0: gpio@101e4000 {
46 compatible = "st,nomadik-gpio";
47 reg = <0x101e4000 0x80>;
48 interrupt-parent = <&vica>;
49 interrupts = <6>;
50 interrupt-controller;
51 #interrupt-cells = <2>;
52 gpio-controller;
53 #gpio-cells = <2>;
54 gpio-bank = <0>;
Linus Walleij6e2b07a2013-04-16 21:38:29 +020055 clocks = <&pclk>;
Linus Walleij6010d402013-01-05 23:10:09 +010056 };
57
58 gpio1: gpio@101e5000 {
59 compatible = "st,nomadik-gpio";
60 reg = <0x101e5000 0x80>;
61 interrupt-parent = <&vica>;
62 interrupts = <7>;
63 interrupt-controller;
64 #interrupt-cells = <2>;
65 gpio-controller;
66 #gpio-cells = <2>;
67 gpio-bank = <1>;
Linus Walleij6e2b07a2013-04-16 21:38:29 +020068 clocks = <&pclk>;
Linus Walleij6010d402013-01-05 23:10:09 +010069 };
70
71 gpio2: gpio@101e6000 {
72 compatible = "st,nomadik-gpio";
73 reg = <0x101e6000 0x80>;
74 interrupt-parent = <&vica>;
75 interrupts = <8>;
76 interrupt-controller;
77 #interrupt-cells = <2>;
78 gpio-controller;
79 #gpio-cells = <2>;
80 gpio-bank = <2>;
Linus Walleij6e2b07a2013-04-16 21:38:29 +020081 clocks = <&pclk>;
Linus Walleij6010d402013-01-05 23:10:09 +010082 };
83
84 gpio3: gpio@101e7000 {
85 compatible = "st,nomadik-gpio";
86 reg = <0x101e7000 0x80>;
87 interrupt-parent = <&vica>;
88 interrupts = <9>;
89 interrupt-controller;
90 #interrupt-cells = <2>;
91 gpio-controller;
92 #gpio-cells = <2>;
93 gpio-bank = <3>;
Linus Walleij6e2b07a2013-04-16 21:38:29 +020094 clocks = <&pclk>;
Linus Walleij6010d402013-01-05 23:10:09 +010095 };
96
97 pinctrl {
Lee Jonescdfa9272013-05-22 15:22:56 +010098 compatible = "stericsson,stn8815-pinctrl";
Linus Walleij49932f52013-05-24 21:56:38 +020099 /* Pin configurations */
100 uart0 {
101 uart0_default_mux: uart0_mux {
102 u0_default_mux {
Linus Walleij68d41f22014-09-29 17:21:56 +0200103 function = "u0";
104 groups = "u0_a_1";
Linus Walleij49932f52013-05-24 21:56:38 +0200105 };
106 };
107 };
108 uart1 {
109 uart1_default_mux: uart1_mux {
110 u1_default_mux {
Linus Walleij68d41f22014-09-29 17:21:56 +0200111 function = "u1";
112 groups = "u1_a_1";
Linus Walleij49932f52013-05-24 21:56:38 +0200113 };
114 };
115 };
116 mmcsd {
117 mmcsd_default_mux: mmcsd_mux {
118 mmcsd_default_mux {
Linus Walleij68d41f22014-09-29 17:21:56 +0200119 function = "mmcsd";
Linus Torvaldsc1b30e42014-12-11 10:43:14 -0800120 groups = "mmcsd_a_1", "mmcsd_b_1";
Linus Walleij49932f52013-05-24 21:56:38 +0200121 };
122 };
123 mmcsd_default_mode: mmcsd_default {
124 mmcsd_default_cfg1 {
125 /* MCCLK */
Linus Walleij1637d482014-09-30 12:16:25 +0200126 pins = "GPIO8_B10";
Linus Walleij49932f52013-05-24 21:56:38 +0200127 ste,output = <0>;
128 };
129 mmcsd_default_cfg2 {
Linus Walleij43c40342014-09-27 15:45:02 +0200130 /* MCCMDDIR, MCDAT0DIR, MCDAT31DIR, MCDATDIR2 */
Linus Walleij1637d482014-09-30 12:16:25 +0200131 pins = "GPIO10_C11", "GPIO15_A12",
Linus Walleij43c40342014-09-27 15:45:02 +0200132 "GPIO16_C13", "GPIO23_D15";
Linus Walleij49932f52013-05-24 21:56:38 +0200133 ste,output = <1>;
134 };
135 mmcsd_default_cfg3 {
136 /* MCCMD, MCDAT3-0, MCMSFBCLK */
Linus Walleij1637d482014-09-30 12:16:25 +0200137 pins = "GPIO9_A10", "GPIO11_B11",
Linus Walleij49932f52013-05-24 21:56:38 +0200138 "GPIO12_A11", "GPIO13_C12",
139 "GPIO14_B12", "GPIO24_C15";
140 ste,input = <1>;
141 };
142 };
143 };
144 i2c0 {
Linus Walleij66e0c122013-06-10 00:17:56 +0200145 i2c0_default_mux: i2c0_mux {
146 i2c0_default_mux {
Linus Walleij68d41f22014-09-29 17:21:56 +0200147 function = "i2c0";
148 groups = "i2c0_a_1";
Linus Walleij66e0c122013-06-10 00:17:56 +0200149 };
150 };
Linus Walleij49932f52013-05-24 21:56:38 +0200151 i2c0_default_mode: i2c0_default {
152 i2c0_default_cfg {
Linus Walleij1637d482014-09-30 12:16:25 +0200153 pins = "GPIO62_D3", "GPIO63_D2";
Linus Walleij66e0c122013-06-10 00:17:56 +0200154 ste,input = <0>;
Linus Walleij49932f52013-05-24 21:56:38 +0200155 };
156 };
157 };
158 i2c1 {
Linus Walleij66e0c122013-06-10 00:17:56 +0200159 i2c1_default_mux: i2c1_mux {
160 i2c1_default_mux {
Linus Walleij68d41f22014-09-29 17:21:56 +0200161 function = "i2c1";
162 groups = "i2c1_a_1";
Linus Walleij66e0c122013-06-10 00:17:56 +0200163 };
164 };
Linus Walleij49932f52013-05-24 21:56:38 +0200165 i2c1_default_mode: i2c1_default {
166 i2c1_default_cfg {
Linus Walleij1637d482014-09-30 12:16:25 +0200167 pins = "GPIO53_L4", "GPIO54_L3";
Linus Walleij66e0c122013-06-10 00:17:56 +0200168 ste,input = <0>;
Linus Walleij49932f52013-05-24 21:56:38 +0200169 };
170 };
171 };
Linus Walleij6010d402013-01-05 23:10:09 +0100172 };
173
Linus Walleij6e2b07a2013-04-16 21:38:29 +0200174 src: src@101e0000 {
175 compatible = "stericsson,nomadik-src";
176 reg = <0x101e0000 0x1000>;
Linus Walleijc641d4d2013-06-05 01:18:40 +0200177
178 /*
179 * MXTAL "Main Chrystal" is a chrystal oscillator @19.2 MHz
180 * that is parent of TIMCLK, PLL1 and PLL2
181 */
182 mxtal: mxtal@19.2M {
183 #clock-cells = <0>;
184 compatible = "fixed-clock";
185 clock-frequency = <19200000>;
186 };
187
188 /*
189 * The 2.4 MHz TIMCLK reference clock is active at
190 * boot time, this is actually the MXTALCLK @19.2 MHz
191 * divided by 8. This clock is used by the timers and
192 * watchdog. See page 105 ff.
193 */
194 timclk: timclk@2.4M {
195 #clock-cells = <0>;
196 compatible = "fixed-factor-clock";
197 clock-div = <8>;
198 clock-mult = <1>;
199 clocks = <&mxtal>;
200 };
201
202 /* PLL1 is locked to MXTALI and variable from 20.4 to 334 MHz */
203 pll1: pll1@0 {
204 #clock-cells = <0>;
205 compatible = "st,nomadik-pll-clock";
206 pll-id = <1>;
207 clocks = <&mxtal>;
208 };
209
210 /* HCLK divides the PLL1 with 1,2,3 or 4 */
211 hclk: hclk@0 {
212 #clock-cells = <0>;
213 compatible = "st,nomadik-hclk-clock";
214 clocks = <&pll1>;
215 };
216 /* The PCLK domain uses HCLK right off */
217 pclk: pclk@0 {
218 #clock-cells = <0>;
219 compatible = "fixed-factor-clock";
220 clock-div = <1>;
221 clock-mult = <1>;
222 clocks = <&hclk>;
223 };
224
225 /* PLL2 is usually 864 MHz and divided into a few fixed rates */
226 pll2: pll2@0 {
227 #clock-cells = <0>;
228 compatible = "st,nomadik-pll-clock";
229 pll-id = <2>;
230 clocks = <&mxtal>;
231 };
232 clk216: clk216@216M {
233 #clock-cells = <0>;
234 compatible = "fixed-factor-clock";
235 clock-div = <4>;
236 clock-mult = <1>;
237 clocks = <&pll2>;
238 };
239 clk108: clk108@108M {
240 #clock-cells = <0>;
241 compatible = "fixed-factor-clock";
242 clock-div = <2>;
243 clock-mult = <1>;
244 clocks = <&clk216>;
245 };
246 clk72: clk72@72M {
247 #clock-cells = <0>;
248 compatible = "fixed-factor-clock";
249 /* The data sheet does not say how this is derived */
250 clock-div = <12>;
251 clock-mult = <1>;
252 clocks = <&pll2>;
253 };
254 clk48: clk48@48M {
255 #clock-cells = <0>;
256 compatible = "fixed-factor-clock";
257 /* The data sheet does not say how this is derived */
258 clock-div = <18>;
259 clock-mult = <1>;
260 clocks = <&pll2>;
261 };
262 clk27: clk27@27M {
263 #clock-cells = <0>;
264 compatible = "fixed-factor-clock";
265 clock-div = <4>;
266 clock-mult = <1>;
267 clocks = <&clk108>;
268 };
269
270 /* This apparently exists as well */
271 ulpiclk: ulpiclk@60M {
272 #clock-cells = <0>;
273 compatible = "fixed-clock";
274 clock-frequency = <60000000>;
275 };
276
277 /*
278 * IP AMBA bus clocks, driving the bus side of the
279 * peripheral clocking, clock gates.
280 */
281
282 hclkdma0: hclkdma0@48M {
283 #clock-cells = <0>;
284 compatible = "st,nomadik-src-clock";
285 clock-id = <0>;
286 clocks = <&hclk>;
287 };
288 hclksmc: hclksmc@48M {
289 #clock-cells = <0>;
290 compatible = "st,nomadik-src-clock";
291 clock-id = <1>;
292 clocks = <&hclk>;
293 };
294 hclksdram: hclksdram@48M {
295 #clock-cells = <0>;
296 compatible = "st,nomadik-src-clock";
297 clock-id = <2>;
298 clocks = <&hclk>;
299 };
300 hclkdma1: hclkdma1@48M {
301 #clock-cells = <0>;
302 compatible = "st,nomadik-src-clock";
303 clock-id = <3>;
304 clocks = <&hclk>;
305 };
306 hclkclcd: hclkclcd@48M {
307 #clock-cells = <0>;
308 compatible = "st,nomadik-src-clock";
309 clock-id = <4>;
310 clocks = <&hclk>;
311 };
312 pclkirda: pclkirda@48M {
313 #clock-cells = <0>;
314 compatible = "st,nomadik-src-clock";
315 clock-id = <5>;
316 clocks = <&pclk>;
317 };
318 pclkssp: pclkssp@48M {
319 #clock-cells = <0>;
320 compatible = "st,nomadik-src-clock";
321 clock-id = <6>;
322 clocks = <&pclk>;
323 };
324 pclkuart0: pclkuart0@48M {
325 #clock-cells = <0>;
326 compatible = "st,nomadik-src-clock";
327 clock-id = <7>;
328 clocks = <&pclk>;
329 };
330 pclksdi: pclksdi@48M {
331 #clock-cells = <0>;
332 compatible = "st,nomadik-src-clock";
333 clock-id = <8>;
334 clocks = <&pclk>;
335 };
336 pclki2c0: pclki2c0@48M {
337 #clock-cells = <0>;
338 compatible = "st,nomadik-src-clock";
339 clock-id = <9>;
340 clocks = <&pclk>;
341 };
342 pclki2c1: pclki2c1@48M {
343 #clock-cells = <0>;
344 compatible = "st,nomadik-src-clock";
345 clock-id = <10>;
346 clocks = <&pclk>;
347 };
348 pclkuart1: pclkuart1@48M {
349 #clock-cells = <0>;
350 compatible = "st,nomadik-src-clock";
351 clock-id = <11>;
352 clocks = <&pclk>;
353 };
354 pclkmsp0: pclkmsp0@48M {
355 #clock-cells = <0>;
356 compatible = "st,nomadik-src-clock";
357 clock-id = <12>;
358 clocks = <&pclk>;
359 };
360 hclkusb: hclkusb@48M {
361 #clock-cells = <0>;
362 compatible = "st,nomadik-src-clock";
363 clock-id = <13>;
364 clocks = <&hclk>;
365 };
366 hclkdif: hclkdif@48M {
367 #clock-cells = <0>;
368 compatible = "st,nomadik-src-clock";
369 clock-id = <14>;
370 clocks = <&hclk>;
371 };
372 hclksaa: hclksaa@48M {
373 #clock-cells = <0>;
374 compatible = "st,nomadik-src-clock";
375 clock-id = <15>;
376 clocks = <&hclk>;
377 };
378 hclksva: hclksva@48M {
379 #clock-cells = <0>;
380 compatible = "st,nomadik-src-clock";
381 clock-id = <16>;
382 clocks = <&hclk>;
383 };
384 pclkhsi: pclkhsi@48M {
385 #clock-cells = <0>;
386 compatible = "st,nomadik-src-clock";
387 clock-id = <17>;
388 clocks = <&pclk>;
389 };
390 pclkxti: pclkxti@48M {
391 #clock-cells = <0>;
392 compatible = "st,nomadik-src-clock";
393 clock-id = <18>;
394 clocks = <&pclk>;
395 };
396 pclkuart2: pclkuart2@48M {
397 #clock-cells = <0>;
398 compatible = "st,nomadik-src-clock";
399 clock-id = <19>;
400 clocks = <&pclk>;
401 };
402 pclkmsp1: pclkmsp1@48M {
403 #clock-cells = <0>;
404 compatible = "st,nomadik-src-clock";
405 clock-id = <20>;
406 clocks = <&pclk>;
407 };
408 pclkmsp2: pclkmsp2@48M {
409 #clock-cells = <0>;
410 compatible = "st,nomadik-src-clock";
411 clock-id = <21>;
412 clocks = <&pclk>;
413 };
414 pclkowm: pclkowm@48M {
415 #clock-cells = <0>;
416 compatible = "st,nomadik-src-clock";
417 clock-id = <22>;
418 clocks = <&pclk>;
419 };
420 hclkhpi: hclkhpi@48M {
421 #clock-cells = <0>;
422 compatible = "st,nomadik-src-clock";
423 clock-id = <23>;
424 clocks = <&hclk>;
425 };
426 pclkske: pclkske@48M {
427 #clock-cells = <0>;
428 compatible = "st,nomadik-src-clock";
429 clock-id = <24>;
430 clocks = <&pclk>;
431 };
432 pclkhsem: pclkhsem@48M {
433 #clock-cells = <0>;
434 compatible = "st,nomadik-src-clock";
435 clock-id = <25>;
436 clocks = <&pclk>;
437 };
438 hclk3d: hclk3d@48M {
439 #clock-cells = <0>;
440 compatible = "st,nomadik-src-clock";
441 clock-id = <26>;
442 clocks = <&hclk>;
443 };
444 hclkhash: hclkhash@48M {
445 #clock-cells = <0>;
446 compatible = "st,nomadik-src-clock";
447 clock-id = <27>;
448 clocks = <&hclk>;
449 };
450 hclkcryp: hclkcryp@48M {
451 #clock-cells = <0>;
452 compatible = "st,nomadik-src-clock";
453 clock-id = <28>;
454 clocks = <&hclk>;
455 };
456 pclkmshc: pclkmshc@48M {
457 #clock-cells = <0>;
458 compatible = "st,nomadik-src-clock";
459 clock-id = <29>;
460 clocks = <&pclk>;
461 };
462 hclkusbm: hclkusbm@48M {
463 #clock-cells = <0>;
464 compatible = "st,nomadik-src-clock";
465 clock-id = <30>;
466 clocks = <&hclk>;
467 };
468 hclkrng: hclkrng@48M {
469 #clock-cells = <0>;
470 compatible = "st,nomadik-src-clock";
471 clock-id = <31>;
472 clocks = <&hclk>;
473 };
474
475 /* IP kernel clocks */
476 clcdclk: clcdclk@0 {
477 #clock-cells = <0>;
478 compatible = "st,nomadik-src-clock";
479 clock-id = <36>;
480 clocks = <&clk72 &clk48>;
481 };
482 irdaclk: irdaclk@48M {
483 #clock-cells = <0>;
484 compatible = "st,nomadik-src-clock";
485 clock-id = <37>;
486 clocks = <&clk48>;
487 };
488 sspiclk: sspiclk@48M {
489 #clock-cells = <0>;
490 compatible = "st,nomadik-src-clock";
491 clock-id = <38>;
492 clocks = <&clk48>;
493 };
494 uart0clk: uart0clk@48M {
495 #clock-cells = <0>;
496 compatible = "st,nomadik-src-clock";
497 clock-id = <39>;
498 clocks = <&clk48>;
499 };
500 sdiclk: sdiclk@48M {
501 /* Also called MCCLK in some documents */
502 #clock-cells = <0>;
503 compatible = "st,nomadik-src-clock";
504 clock-id = <40>;
505 clocks = <&clk48>;
506 };
507 i2c0clk: i2c0clk@48M {
508 #clock-cells = <0>;
509 compatible = "st,nomadik-src-clock";
510 clock-id = <41>;
511 clocks = <&clk48>;
512 };
513 i2c1clk: i2c1clk@48M {
514 #clock-cells = <0>;
515 compatible = "st,nomadik-src-clock";
516 clock-id = <42>;
517 clocks = <&clk48>;
518 };
519 uart1clk: uart1clk@48M {
520 #clock-cells = <0>;
521 compatible = "st,nomadik-src-clock";
522 clock-id = <43>;
523 clocks = <&clk48>;
524 };
525 mspclk0: mspclk0@48M {
526 #clock-cells = <0>;
527 compatible = "st,nomadik-src-clock";
528 clock-id = <44>;
529 clocks = <&clk48>;
530 };
531 usbclk: usbclk@48M {
532 #clock-cells = <0>;
533 compatible = "st,nomadik-src-clock";
534 clock-id = <45>;
535 clocks = <&clk48>; /* 48 MHz not ULPI */
536 };
537 difclk: difclk@72M {
538 #clock-cells = <0>;
539 compatible = "st,nomadik-src-clock";
540 clock-id = <46>;
541 clocks = <&clk72>;
542 };
543 ipi2cclk: ipi2cclk@48M {
544 #clock-cells = <0>;
545 compatible = "st,nomadik-src-clock";
546 clock-id = <47>;
547 clocks = <&clk48>; /* Guess */
548 };
549 ipbmcclk: ipbmcclk@48M {
550 #clock-cells = <0>;
551 compatible = "st,nomadik-src-clock";
552 clock-id = <48>;
553 clocks = <&clk48>; /* Guess */
554 };
555 hsiclkrx: hsiclkrx@216M {
556 #clock-cells = <0>;
557 compatible = "st,nomadik-src-clock";
558 clock-id = <49>;
559 clocks = <&clk216>;
560 };
561 hsiclktx: hsiclktx@108M {
562 #clock-cells = <0>;
563 compatible = "st,nomadik-src-clock";
564 clock-id = <50>;
565 clocks = <&clk108>;
566 };
567 uart2clk: uart2clk@48M {
568 #clock-cells = <0>;
569 compatible = "st,nomadik-src-clock";
570 clock-id = <51>;
571 clocks = <&clk48>;
572 };
573 mspclk1: mspclk1@48M {
574 #clock-cells = <0>;
575 compatible = "st,nomadik-src-clock";
576 clock-id = <52>;
577 clocks = <&clk48>;
578 };
579 mspclk2: mspclk2@48M {
580 #clock-cells = <0>;
581 compatible = "st,nomadik-src-clock";
582 clock-id = <53>;
583 clocks = <&clk48>;
584 };
585 owmclk: owmclk@48M {
586 #clock-cells = <0>;
587 compatible = "st,nomadik-src-clock";
588 clock-id = <54>;
589 clocks = <&clk48>; /* Guess */
590 };
591 skeclk: skeclk@48M {
592 #clock-cells = <0>;
593 compatible = "st,nomadik-src-clock";
594 clock-id = <56>;
595 clocks = <&clk48>; /* Guess */
596 };
597 x3dclk: x3dclk@48M {
598 #clock-cells = <0>;
599 compatible = "st,nomadik-src-clock";
600 clock-id = <58>;
601 clocks = <&clk48>; /* Guess */
602 };
603 pclkmsp3: pclkmsp3@48M {
604 #clock-cells = <0>;
605 compatible = "st,nomadik-src-clock";
606 clock-id = <59>;
607 clocks = <&pclk>;
608 };
609 mspclk3: mspclk3@48M {
610 #clock-cells = <0>;
611 compatible = "st,nomadik-src-clock";
612 clock-id = <60>;
613 clocks = <&clk48>;
614 };
615 mshcclk: mshcclk@48M {
616 #clock-cells = <0>;
617 compatible = "st,nomadik-src-clock";
618 clock-id = <61>;
619 clocks = <&clk48>; /* Guess */
620 };
621 usbmclk: usbmclk@48M {
622 #clock-cells = <0>;
623 compatible = "st,nomadik-src-clock";
624 clock-id = <62>;
625 /* Stated as "48 MHz not ULPI clock" */
626 clocks = <&clk48>;
627 };
628 rngcclk: rngcclk@48M {
629 #clock-cells = <0>;
630 compatible = "st,nomadik-src-clock";
631 clock-id = <63>;
632 clocks = <&clk48>; /* Guess */
Linus Walleij6e2b07a2013-04-16 21:38:29 +0200633 };
634 };
635
Linus Walleijba785202013-01-05 22:28:32 +0100636 /* A NAND flash of 128 MiB */
637 fsmc: flash@40000000 {
638 compatible = "stericsson,fsmc-nand";
639 #address-cells = <1>;
640 #size-cells = <1>;
641 reg = <0x10100000 0x1000>, /* FSMC Register*/
642 <0x40000000 0x2000>, /* NAND Base DATA */
643 <0x41000000 0x2000>, /* NAND Base ADDR */
644 <0x40800000 0x2000>; /* NAND Base CMD */
645 reg-names = "fsmc_regs", "nand_data", "nand_addr", "nand_cmd";
Linus Walleijc641d4d2013-06-05 01:18:40 +0200646 clocks = <&hclksmc>;
Linus Walleijba785202013-01-05 22:28:32 +0100647 status = "okay";
Linus Walleij2c5a7422013-09-13 21:15:14 +0200648 timings = /bits/ 8 <0 0 0 0x10 0x0a 0>;
Linus Walleijba785202013-01-05 22:28:32 +0100649
650 partition@0 {
651 label = "X-Loader(NAND)";
652 reg = <0x0 0x40000>;
653 };
654 partition@40000 {
655 label = "MemInit(NAND)";
656 reg = <0x40000 0x40000>;
657 };
658 partition@80000 {
659 label = "BootLoader(NAND)";
660 reg = <0x80000 0x200000>;
661 };
662 partition@280000 {
663 label = "Kernel zImage(NAND)";
664 reg = <0x280000 0x300000>;
665 };
666 partition@580000 {
667 label = "Root Filesystem(NAND)";
668 reg = <0x580000 0x1600000>;
669 };
670 partition@1b80000 {
671 label = "User Filesystem(NAND)";
672 reg = <0x1b80000 0x6480000>;
673 };
674 };
675
Linus Walleij09e02f42013-01-06 02:10:27 +0100676 /* I2C0 connected to the STw4811 power management chip */
677 i2c0 {
Linus Walleij66e0c122013-06-10 00:17:56 +0200678 compatible = "st,nomadik-i2c", "arm,primecell";
679 reg = <0x101f8000 0x1000>;
680 interrupt-parent = <&vica>;
681 interrupts = <20>;
682 clock-frequency = <100000>;
Linus Walleij09e02f42013-01-06 02:10:27 +0100683 #address-cells = <1>;
684 #size-cells = <0>;
Linus Walleij66e0c122013-06-10 00:17:56 +0200685 clocks = <&i2c0clk>, <&pclki2c0>;
686 clock-names = "mclk", "apb_pclk";
Linus Walleij49932f52013-05-24 21:56:38 +0200687 pinctrl-names = "default";
Linus Walleij66e0c122013-06-10 00:17:56 +0200688 pinctrl-0 = <&i2c0_default_mux>, <&i2c0_default_mode>;
Linus Walleij09e02f42013-01-06 02:10:27 +0100689
690 stw4811@2d {
Linus Walleijd9f37d92013-05-28 15:55:56 +0200691 compatible = "st,stw4811";
692 reg = <0x2d>;
693 vmmc_regulator: vmmc {
694 compatible = "st,stw481x-vmmc";
695 regulator-name = "VMMC";
696 regulator-min-microvolt = <1800000>;
697 regulator-max-microvolt = <3300000>;
698 };
Linus Walleij09e02f42013-01-06 02:10:27 +0100699 };
700 };
701
702 /* I2C1 connected to various sensors */
703 i2c1 {
Linus Walleij66e0c122013-06-10 00:17:56 +0200704 compatible = "st,nomadik-i2c", "arm,primecell";
705 reg = <0x101f7000 0x1000>;
706 interrupt-parent = <&vica>;
707 interrupts = <21>;
708 clock-frequency = <100000>;
Linus Walleij09e02f42013-01-06 02:10:27 +0100709 #address-cells = <1>;
710 #size-cells = <0>;
Linus Walleij66e0c122013-06-10 00:17:56 +0200711 clocks = <&i2c1clk>, <&pclki2c1>;
712 clock-names = "mclk", "apb_pclk";
Linus Walleij49932f52013-05-24 21:56:38 +0200713 pinctrl-names = "default";
Linus Walleij66e0c122013-06-10 00:17:56 +0200714 pinctrl-0 = <&i2c1_default_mux>, <&i2c1_default_mode>;
Linus Walleij09e02f42013-01-06 02:10:27 +0100715
716 camera@2d {
717 compatible = "st,camera";
718 reg = <0x10>;
719 };
720 stw5095@1a {
721 compatible = "st,stw5095";
722 reg = <0x1a>;
723 };
724 lis3lv02dl@1d {
725 compatible = "st,lis3lv02dl";
726 reg = <0x1d>;
727 };
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 Walleij49932f52013-05-24 21:56:38 +0200757 pinctrl-names = "default";
758 pinctrl-0 = <&uart0_default_mux>;
Linus Walleijf8635ab2013-01-05 00:29:31 +0100759 };
760
761 uart1: uart@101fb000 {
762 compatible = "arm,pl011", "arm,primecell";
763 reg = <0x101fb000 0x1000>;
764 interrupt-parent = <&vica>;
765 interrupts = <17>;
Linus Walleijc641d4d2013-06-05 01:18:40 +0200766 clocks = <&uart1clk>, <&pclkuart1>;
Linus Walleij6e2b07a2013-04-16 21:38:29 +0200767 clock-names = "uartclk", "apb_pclk";
Linus Walleij49932f52013-05-24 21:56:38 +0200768 pinctrl-names = "default";
769 pinctrl-0 = <&uart1_default_mux>;
Linus Walleijf8635ab2013-01-05 00:29:31 +0100770 };
771
772 uart2: uart@101f2000 {
773 compatible = "arm,pl011", "arm,primecell";
774 reg = <0x101f2000 0x1000>;
775 interrupt-parent = <&vica>;
776 interrupts = <28>;
Linus Walleijc641d4d2013-06-05 01:18:40 +0200777 clocks = <&uart2clk>, <&pclkuart2>;
Linus Walleij6e2b07a2013-04-16 21:38:29 +0200778 clock-names = "uartclk", "apb_pclk";
Linus Walleijf8635ab2013-01-05 00:29:31 +0100779 status = "disabled";
780 };
Linus Walleij27bda032013-01-05 10:38:57 +0100781
782 rng: rng@101b0000 {
783 compatible = "arm,primecell";
784 reg = <0x101b0000 0x1000>;
Linus Walleijc641d4d2013-06-05 01:18:40 +0200785 clocks = <&rngcclk>, <&hclkrng>;
Linus Walleij6e2b07a2013-04-16 21:38:29 +0200786 clock-names = "rng", "apb_pclk";
Linus Walleij27bda032013-01-05 10:38:57 +0100787 };
788
789 rtc: rtc@101e8000 {
790 compatible = "arm,pl031", "arm,primecell";
791 reg = <0x101e8000 0x1000>;
Linus Walleij6e2b07a2013-04-16 21:38:29 +0200792 clocks = <&pclk>;
793 clock-names = "apb_pclk";
Linus Walleij27bda032013-01-05 10:38:57 +0100794 interrupt-parent = <&vica>;
795 interrupts = <10>;
796 };
Linus Walleij4fd243c2013-01-06 01:47:29 +0100797
798 mmcsd: sdi@101f6000 {
799 compatible = "arm,pl18x", "arm,primecell";
800 reg = <0x101f6000 0x1000>;
Linus Walleijc641d4d2013-06-05 01:18:40 +0200801 clocks = <&sdiclk>, <&pclksdi>;
Linus Walleij6e2b07a2013-04-16 21:38:29 +0200802 clock-names = "mclk", "apb_pclk";
Linus Walleij4fd243c2013-01-06 01:47:29 +0100803 interrupt-parent = <&vica>;
804 interrupts = <22>;
805 max-frequency = <48000000>;
806 bus-width = <4>;
Ulf Hanssonc1bc0e82014-03-18 20:36:50 +0100807 cap-mmc-highspeed;
808 cap-sd-highspeed;
Linus Walleij49932f52013-05-24 21:56:38 +0200809 pinctrl-names = "default";
810 pinctrl-0 = <&mmcsd_default_mux>, <&mmcsd_default_mode>;
Linus Walleijd9f37d92013-05-28 15:55:56 +0200811 vmmc-supply = <&vmmc_regulator>;
Linus Walleij4fd243c2013-01-06 01:47:29 +0100812 };
Linus Walleijf8635ab2013-01-05 00:29:31 +0100813 };
814};