ARM: dts: add PMU to the NHK15 device tree
[cascardo/linux.git] / arch / arm / boot / dts / ste-nomadik-stn8815.dtsi
1 /*
2  * Device Tree for the ST-Ericsson Nomadik 8815 STn8815 SoC
3  */
4
5 #include <dt-bindings/gpio/gpio.h>
6 #include "skeleton.dtsi"
7
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                 cache-size = <131072>;
25                 cache-sets = <512>;
26                 cache-line-size = <32>;
27                 /* At full speed latency must be >=2 */
28                 arm,tag-latency = <8>;
29                 arm,data-latency = <8 8>;
30                 arm,dirty-latency = <8>;
31         };
32
33         mtu0: mtu@101e2000 {
34                 /* Nomadik system timer */
35                 compatible = "st,nomadik-mtu";
36                 reg = <0x101e2000 0x1000>;
37                 interrupt-parent = <&vica>;
38                 interrupts = <4>;
39                 clocks = <&timclk>, <&pclk>;
40                 clock-names = "timclk", "apb_pclk";
41         };
42
43         mtu1: mtu@101e3000 {
44                 /* Secondary timer */
45                 reg = <0x101e3000 0x1000>;
46                 interrupt-parent = <&vica>;
47                 interrupts = <5>;
48                 clocks = <&timclk>, <&pclk>;
49                 clock-names = "timclk", "apb_pclk";
50         };
51
52         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>;
62                 gpio-ranges = <&pinctrl 0 0 32>;
63                 clocks = <&pclk>;
64         };
65
66         gpio1: gpio@101e5000 {
67                 compatible = "st,nomadik-gpio";
68                 reg =  <0x101e5000 0x80>;
69                 interrupt-parent = <&vica>;
70                 interrupts = <7>;
71                 interrupt-controller;
72                 #interrupt-cells = <2>;
73                 gpio-controller;
74                 #gpio-cells = <2>;
75                 gpio-bank = <1>;
76                 gpio-ranges = <&pinctrl 0 32 32>;
77                 clocks = <&pclk>;
78         };
79
80         gpio2: gpio@101e6000 {
81                 compatible = "st,nomadik-gpio";
82                 reg =  <0x101e6000 0x80>;
83                 interrupt-parent = <&vica>;
84                 interrupts = <8>;
85                 interrupt-controller;
86                 #interrupt-cells = <2>;
87                 gpio-controller;
88                 #gpio-cells = <2>;
89                 gpio-bank = <2>;
90                 gpio-ranges = <&pinctrl 0 64 32>;
91                 clocks = <&pclk>;
92         };
93
94         gpio3: gpio@101e7000 {
95                 compatible = "st,nomadik-gpio";
96                 reg =  <0x101e7000 0x80>;
97                 ngpio = <28>;
98                 interrupt-parent = <&vica>;
99                 interrupts = <9>;
100                 interrupt-controller;
101                 #interrupt-cells = <2>;
102                 gpio-controller;
103                 #gpio-cells = <2>;
104                 gpio-bank = <3>;
105                 gpio-ranges = <&pinctrl 0 96 28>;
106                 clocks = <&pclk>;
107         };
108
109         pinctrl: pinctrl {
110                 compatible = "stericsson,stn8815-pinctrl";
111                 nomadik-gpio-chips = <&gpio0>, <&gpio1>, <&gpio2>, <&gpio3>;
112                 /* Pin configurations */
113                 uart1 {
114                         uart1_default_mux: uart1_mux {
115                                 u1_default_mux {
116                                         function = "u1";
117                                         groups = "u1_a_1";
118                                 };
119                         };
120                 };
121                 mmcsd {
122                         mmcsd_default_mux: mmcsd_mux {
123                                 mmcsd_default_mux {
124                                         function = "mmcsd";
125                                         groups = "mmcsd_a_1", "mmcsd_b_1";
126                                 };
127                         };
128                         mmcsd_default_mode: mmcsd_default {
129                                 mmcsd_default_cfg1 {
130                                         /*
131                                          * MCCLK, MCCMDDIR, MCDAT0DIR, MCDAT31DIR, MCDATDIR2
132                                          * MCCMD, MCDAT3-0, MCMSFBCLK
133                                          */
134                                         pins = "GPIO8_B10", "GPIO9_A10", "GPIO10_C11", "GPIO11_B11",
135                                                "GPIO12_A11", "GPIO13_C12", "GPIO14_B12", "GPIO15_A12",
136                                                "GPIO16_C13", "GPIO23_D15", "GPIO24_C15";
137                                         ste,output = <2>;
138                                 };
139                         };
140                 };
141                 i2c0 {
142                         i2c0_default_mux: i2c0_mux {
143                                 i2c0_default_mux {
144                                         function = "i2c0";
145                                         groups = "i2c0_a_1";
146                                 };
147                         };
148                         i2c0_default_mode: i2c0_default {
149                                 i2c0_default_cfg {
150                                         pins = "GPIO62_D3", "GPIO63_D2";
151                                         ste,input = <0>;
152                                 };
153                         };
154                 };
155                 i2c1 {
156                         i2c1_default_mux: i2c1_mux {
157                                 i2c1_default_mux {
158                                         function = "i2c1";
159                                         groups = "i2c1_a_1";
160                                 };
161                         };
162                         i2c1_default_mode: i2c1_default {
163                                 i2c1_default_cfg {
164                                         pins = "GPIO53_L4", "GPIO54_L3";
165                                         ste,input = <0>;
166                                 };
167                         };
168                 };
169         };
170
171         /* Power Management Unit */
172         pmu: pmu@101e9000 {
173                 compatible = "stericsson,nomadik-pmu", "syscon";
174                 reg = <0x101e0000 0x1000>;
175         };
176
177         src: src@101e0000 {
178                 compatible = "stericsson,nomadik-src";
179                 reg = <0x101e0000 0x1000>;
180
181                 /*
182                  * MXTAL "Main Chrystal" is a chrystal oscillator @19.2 MHz
183                  * that is parent of TIMCLK, PLL1 and PLL2
184                  */
185                 mxtal: mxtal@19.2M {
186                         #clock-cells = <0>;
187                         compatible = "fixed-clock";
188                         clock-frequency = <19200000>;
189                 };
190
191                 /*
192                  * The 2.4 MHz TIMCLK reference clock is active at
193                  * boot time, this is actually the MXTALCLK @19.2 MHz
194                  * divided by 8. This clock is used by the timers and
195                  * watchdog. See page 105 ff.
196                  */
197                 timclk: timclk@2.4M {
198                         #clock-cells = <0>;
199                         compatible = "fixed-factor-clock";
200                         clock-div = <8>;
201                         clock-mult = <1>;
202                         clocks = <&mxtal>;
203                 };
204
205                 /* PLL1 is locked to MXTALI and variable from 20.4 to 334 MHz */
206                 pll1: pll1@0 {
207                         #clock-cells = <0>;
208                         compatible = "st,nomadik-pll-clock";
209                         pll-id = <1>;
210                         clocks = <&mxtal>;
211                 };
212
213                 /* HCLK divides the PLL1 with 1,2,3 or 4 */
214                 hclk: hclk@0 {
215                         #clock-cells = <0>;
216                         compatible = "st,nomadik-hclk-clock";
217                         clocks = <&pll1>;
218                 };
219                 /* The PCLK domain uses HCLK right off */
220                 pclk: pclk@0 {
221                         #clock-cells = <0>;
222                         compatible = "fixed-factor-clock";
223                         clock-div = <1>;
224                         clock-mult = <1>;
225                         clocks = <&hclk>;
226                 };
227
228                 /* PLL2 is usually 864 MHz and divided into a few fixed rates */
229                 pll2: pll2@0 {
230                         #clock-cells = <0>;
231                         compatible = "st,nomadik-pll-clock";
232                         pll-id = <2>;
233                         clocks = <&mxtal>;
234                 };
235                 clk216: clk216@216M {
236                         #clock-cells = <0>;
237                         compatible = "fixed-factor-clock";
238                         clock-div = <4>;
239                         clock-mult = <1>;
240                         clocks = <&pll2>;
241                 };
242                 clk108: clk108@108M {
243                         #clock-cells = <0>;
244                         compatible = "fixed-factor-clock";
245                         clock-div = <2>;
246                         clock-mult = <1>;
247                         clocks = <&clk216>;
248                 };
249                 clk72: clk72@72M {
250                         #clock-cells = <0>;
251                         compatible = "fixed-factor-clock";
252                         /* The data sheet does not say how this is derived */
253                         clock-div = <12>;
254                         clock-mult = <1>;
255                         clocks = <&pll2>;
256                 };
257                 clk48: clk48@48M {
258                         #clock-cells = <0>;
259                         compatible = "fixed-factor-clock";
260                         /* The data sheet does not say how this is derived */
261                         clock-div = <18>;
262                         clock-mult = <1>;
263                         clocks = <&pll2>;
264                 };
265                 clk27: clk27@27M {
266                         #clock-cells = <0>;
267                         compatible = "fixed-factor-clock";
268                         clock-div = <4>;
269                         clock-mult = <1>;
270                         clocks = <&clk108>;
271                 };
272
273                 /* This apparently exists as well */
274                 ulpiclk: ulpiclk@60M {
275                         #clock-cells = <0>;
276                         compatible = "fixed-clock";
277                         clock-frequency = <60000000>;
278                 };
279
280                 /*
281                  * IP AMBA bus clocks, driving the bus side of the
282                  * peripheral clocking, clock gates.
283                  */
284
285                 hclkdma0: hclkdma0@48M {
286                         #clock-cells = <0>;
287                         compatible = "st,nomadik-src-clock";
288                         clock-id = <0>;
289                         clocks = <&hclk>;
290                 };
291                 hclksmc: hclksmc@48M {
292                         #clock-cells = <0>;
293                         compatible = "st,nomadik-src-clock";
294                         clock-id = <1>;
295                         clocks = <&hclk>;
296                 };
297                 hclksdram: hclksdram@48M {
298                         #clock-cells = <0>;
299                         compatible = "st,nomadik-src-clock";
300                         clock-id = <2>;
301                         clocks = <&hclk>;
302                 };
303                 hclkdma1: hclkdma1@48M {
304                         #clock-cells = <0>;
305                         compatible = "st,nomadik-src-clock";
306                         clock-id = <3>;
307                         clocks = <&hclk>;
308                 };
309                 hclkclcd: hclkclcd@48M {
310                         #clock-cells = <0>;
311                         compatible = "st,nomadik-src-clock";
312                         clock-id = <4>;
313                         clocks = <&hclk>;
314                 };
315                 pclkirda: pclkirda@48M {
316                         #clock-cells = <0>;
317                         compatible = "st,nomadik-src-clock";
318                         clock-id = <5>;
319                         clocks = <&pclk>;
320                 };
321                 pclkssp: pclkssp@48M {
322                         #clock-cells = <0>;
323                         compatible = "st,nomadik-src-clock";
324                         clock-id = <6>;
325                         clocks = <&pclk>;
326                 };
327                 pclkuart0: pclkuart0@48M {
328                         #clock-cells = <0>;
329                         compatible = "st,nomadik-src-clock";
330                         clock-id = <7>;
331                         clocks = <&pclk>;
332                 };
333                 pclksdi: pclksdi@48M {
334                         #clock-cells = <0>;
335                         compatible = "st,nomadik-src-clock";
336                         clock-id = <8>;
337                         clocks = <&pclk>;
338                 };
339                 pclki2c0: pclki2c0@48M {
340                         #clock-cells = <0>;
341                         compatible = "st,nomadik-src-clock";
342                         clock-id = <9>;
343                         clocks = <&pclk>;
344                 };
345                 pclki2c1: pclki2c1@48M {
346                         #clock-cells = <0>;
347                         compatible = "st,nomadik-src-clock";
348                         clock-id = <10>;
349                         clocks = <&pclk>;
350                 };
351                 pclkuart1: pclkuart1@48M {
352                         #clock-cells = <0>;
353                         compatible = "st,nomadik-src-clock";
354                         clock-id = <11>;
355                         clocks = <&pclk>;
356                 };
357                 pclkmsp0: pclkmsp0@48M {
358                         #clock-cells = <0>;
359                         compatible = "st,nomadik-src-clock";
360                         clock-id = <12>;
361                         clocks = <&pclk>;
362                 };
363                 hclkusb: hclkusb@48M {
364                         #clock-cells = <0>;
365                         compatible = "st,nomadik-src-clock";
366                         clock-id = <13>;
367                         clocks = <&hclk>;
368                 };
369                 hclkdif: hclkdif@48M {
370                         #clock-cells = <0>;
371                         compatible = "st,nomadik-src-clock";
372                         clock-id = <14>;
373                         clocks = <&hclk>;
374                 };
375                 hclksaa: hclksaa@48M {
376                         #clock-cells = <0>;
377                         compatible = "st,nomadik-src-clock";
378                         clock-id = <15>;
379                         clocks = <&hclk>;
380                 };
381                 hclksva: hclksva@48M {
382                         #clock-cells = <0>;
383                         compatible = "st,nomadik-src-clock";
384                         clock-id = <16>;
385                         clocks = <&hclk>;
386                 };
387                 pclkhsi: pclkhsi@48M {
388                         #clock-cells = <0>;
389                         compatible = "st,nomadik-src-clock";
390                         clock-id = <17>;
391                         clocks = <&pclk>;
392                 };
393                 pclkxti: pclkxti@48M {
394                         #clock-cells = <0>;
395                         compatible = "st,nomadik-src-clock";
396                         clock-id = <18>;
397                         clocks = <&pclk>;
398                 };
399                 pclkuart2: pclkuart2@48M {
400                         #clock-cells = <0>;
401                         compatible = "st,nomadik-src-clock";
402                         clock-id = <19>;
403                         clocks = <&pclk>;
404                 };
405                 pclkmsp1: pclkmsp1@48M {
406                         #clock-cells = <0>;
407                         compatible = "st,nomadik-src-clock";
408                         clock-id = <20>;
409                         clocks = <&pclk>;
410                 };
411                 pclkmsp2: pclkmsp2@48M {
412                         #clock-cells = <0>;
413                         compatible = "st,nomadik-src-clock";
414                         clock-id = <21>;
415                         clocks = <&pclk>;
416                 };
417                 pclkowm: pclkowm@48M {
418                         #clock-cells = <0>;
419                         compatible = "st,nomadik-src-clock";
420                         clock-id = <22>;
421                         clocks = <&pclk>;
422                 };
423                 hclkhpi: hclkhpi@48M {
424                         #clock-cells = <0>;
425                         compatible = "st,nomadik-src-clock";
426                         clock-id = <23>;
427                         clocks = <&hclk>;
428                 };
429                 pclkske: pclkske@48M {
430                         #clock-cells = <0>;
431                         compatible = "st,nomadik-src-clock";
432                         clock-id = <24>;
433                         clocks = <&pclk>;
434                 };
435                 pclkhsem: pclkhsem@48M {
436                         #clock-cells = <0>;
437                         compatible = "st,nomadik-src-clock";
438                         clock-id = <25>;
439                         clocks = <&pclk>;
440                 };
441                 hclk3d: hclk3d@48M {
442                         #clock-cells = <0>;
443                         compatible = "st,nomadik-src-clock";
444                         clock-id = <26>;
445                         clocks = <&hclk>;
446                 };
447                 hclkhash: hclkhash@48M {
448                         #clock-cells = <0>;
449                         compatible = "st,nomadik-src-clock";
450                         clock-id = <27>;
451                         clocks = <&hclk>;
452                 };
453                 hclkcryp: hclkcryp@48M {
454                         #clock-cells = <0>;
455                         compatible = "st,nomadik-src-clock";
456                         clock-id = <28>;
457                         clocks = <&hclk>;
458                 };
459                 pclkmshc: pclkmshc@48M {
460                         #clock-cells = <0>;
461                         compatible = "st,nomadik-src-clock";
462                         clock-id = <29>;
463                         clocks = <&pclk>;
464                 };
465                 hclkusbm: hclkusbm@48M {
466                         #clock-cells = <0>;
467                         compatible = "st,nomadik-src-clock";
468                         clock-id = <30>;
469                         clocks = <&hclk>;
470                 };
471                 hclkrng: hclkrng@48M {
472                         #clock-cells = <0>;
473                         compatible = "st,nomadik-src-clock";
474                         clock-id = <31>;
475                         clocks = <&hclk>;
476                 };
477
478                 /* IP kernel clocks */
479                 clcdclk: clcdclk@0 {
480                         #clock-cells = <0>;
481                         compatible = "st,nomadik-src-clock";
482                         clock-id = <36>;
483                         clocks = <&clk72 &clk48>;
484                 };
485                 irdaclk: irdaclk@48M {
486                         #clock-cells = <0>;
487                         compatible = "st,nomadik-src-clock";
488                         clock-id = <37>;
489                         clocks = <&clk48>;
490                 };
491                 sspiclk: sspiclk@48M {
492                         #clock-cells = <0>;
493                         compatible = "st,nomadik-src-clock";
494                         clock-id = <38>;
495                         clocks = <&clk48>;
496                 };
497                 uart0clk: uart0clk@48M {
498                         #clock-cells = <0>;
499                         compatible = "st,nomadik-src-clock";
500                         clock-id = <39>;
501                         clocks = <&clk48>;
502                 };
503                 sdiclk: sdiclk@48M {
504                         /* Also called MCCLK in some documents */
505                         #clock-cells = <0>;
506                         compatible = "st,nomadik-src-clock";
507                         clock-id = <40>;
508                         clocks = <&clk48>;
509                 };
510                 i2c0clk: i2c0clk@48M {
511                         #clock-cells = <0>;
512                         compatible = "st,nomadik-src-clock";
513                         clock-id = <41>;
514                         clocks = <&clk48>;
515                 };
516                 i2c1clk: i2c1clk@48M {
517                         #clock-cells = <0>;
518                         compatible = "st,nomadik-src-clock";
519                         clock-id = <42>;
520                         clocks = <&clk48>;
521                 };
522                 uart1clk: uart1clk@48M {
523                         #clock-cells = <0>;
524                         compatible = "st,nomadik-src-clock";
525                         clock-id = <43>;
526                         clocks = <&clk48>;
527                 };
528                 mspclk0: mspclk0@48M {
529                         #clock-cells = <0>;
530                         compatible = "st,nomadik-src-clock";
531                         clock-id = <44>;
532                         clocks = <&clk48>;
533                 };
534                 usbclk: usbclk@48M {
535                         #clock-cells = <0>;
536                         compatible = "st,nomadik-src-clock";
537                         clock-id = <45>;
538                         clocks = <&clk48>; /* 48 MHz not ULPI */
539                 };
540                 difclk: difclk@72M {
541                         #clock-cells = <0>;
542                         compatible = "st,nomadik-src-clock";
543                         clock-id = <46>;
544                         clocks = <&clk72>;
545                 };
546                 ipi2cclk: ipi2cclk@48M {
547                         #clock-cells = <0>;
548                         compatible = "st,nomadik-src-clock";
549                         clock-id = <47>;
550                         clocks = <&clk48>; /* Guess */
551                 };
552                 ipbmcclk: ipbmcclk@48M {
553                         #clock-cells = <0>;
554                         compatible = "st,nomadik-src-clock";
555                         clock-id = <48>;
556                         clocks = <&clk48>; /* Guess */
557                 };
558                 hsiclkrx: hsiclkrx@216M {
559                         #clock-cells = <0>;
560                         compatible = "st,nomadik-src-clock";
561                         clock-id = <49>;
562                         clocks = <&clk216>;
563                 };
564                 hsiclktx: hsiclktx@108M {
565                         #clock-cells = <0>;
566                         compatible = "st,nomadik-src-clock";
567                         clock-id = <50>;
568                         clocks = <&clk108>;
569                 };
570                 uart2clk: uart2clk@48M {
571                         #clock-cells = <0>;
572                         compatible = "st,nomadik-src-clock";
573                         clock-id = <51>;
574                         clocks = <&clk48>;
575                 };
576                 mspclk1: mspclk1@48M {
577                         #clock-cells = <0>;
578                         compatible = "st,nomadik-src-clock";
579                         clock-id = <52>;
580                         clocks = <&clk48>;
581                 };
582                 mspclk2: mspclk2@48M {
583                         #clock-cells = <0>;
584                         compatible = "st,nomadik-src-clock";
585                         clock-id = <53>;
586                         clocks = <&clk48>;
587                 };
588                 owmclk: owmclk@48M {
589                         #clock-cells = <0>;
590                         compatible = "st,nomadik-src-clock";
591                         clock-id = <54>;
592                         clocks = <&clk48>; /* Guess */
593                 };
594                 skeclk: skeclk@48M {
595                         #clock-cells = <0>;
596                         compatible = "st,nomadik-src-clock";
597                         clock-id = <56>;
598                         clocks = <&clk48>; /* Guess */
599                 };
600                 x3dclk: x3dclk@48M {
601                         #clock-cells = <0>;
602                         compatible = "st,nomadik-src-clock";
603                         clock-id = <58>;
604                         clocks = <&clk48>; /* Guess */
605                 };
606                 pclkmsp3: pclkmsp3@48M {
607                         #clock-cells = <0>;
608                         compatible = "st,nomadik-src-clock";
609                         clock-id = <59>;
610                         clocks = <&pclk>;
611                 };
612                 mspclk3: mspclk3@48M {
613                         #clock-cells = <0>;
614                         compatible = "st,nomadik-src-clock";
615                         clock-id = <60>;
616                         clocks = <&clk48>;
617                 };
618                 mshcclk: mshcclk@48M {
619                         #clock-cells = <0>;
620                         compatible = "st,nomadik-src-clock";
621                         clock-id = <61>;
622                         clocks = <&clk48>; /* Guess */
623                 };
624                 usbmclk: usbmclk@48M {
625                         #clock-cells = <0>;
626                         compatible = "st,nomadik-src-clock";
627                         clock-id = <62>;
628                         /* Stated as "48 MHz not ULPI clock" */
629                         clocks = <&clk48>;
630                 };
631                 rngcclk: rngcclk@48M {
632                         #clock-cells = <0>;
633                         compatible = "st,nomadik-src-clock";
634                         clock-id = <63>;
635                         clocks = <&clk48>; /* Guess */
636                 };
637         };
638
639         /* A NAND flash of 128 MiB */
640         fsmc: flash@40000000 {
641                 compatible = "stericsson,fsmc-nand";
642                 #address-cells = <1>;
643                 #size-cells = <1>;
644                 reg = <0x10100000 0x1000>,      /* FSMC Register*/
645                         <0x40000000 0x2000>,    /* NAND Base DATA */
646                         <0x41000000 0x2000>,    /* NAND Base ADDR */
647                         <0x40800000 0x2000>;    /* NAND Base CMD */
648                 reg-names = "fsmc_regs", "nand_data", "nand_addr", "nand_cmd";
649                 clocks = <&hclksmc>;
650                 status = "okay";
651                 timings = /bits/ 8 <0 0 0 0x10 0x0a 0>;
652
653                 partition@0 {
654                 label = "X-Loader(NAND)";
655                         reg = <0x0 0x40000>;
656                 };
657                 partition@40000 {
658                         label = "MemInit(NAND)";
659                         reg = <0x40000 0x40000>;
660                 };
661                 partition@80000 {
662                         label = "BootLoader(NAND)";
663                         reg = <0x80000 0x200000>;
664                 };
665                 partition@280000 {
666                         label = "Kernel zImage(NAND)";
667                         reg = <0x280000 0x300000>;
668                 };
669                 partition@580000 {
670                         label = "Root Filesystem(NAND)";
671                         reg = <0x580000 0x1600000>;
672                 };
673                 partition@1b80000 {
674                         label = "User Filesystem(NAND)";
675                         reg = <0x1b80000 0x6480000>;
676                 };
677         };
678
679         /* I2C0 connected to the STw4811 power management chip */
680         i2c0 {
681                 compatible = "st,nomadik-i2c", "arm,primecell";
682                 reg = <0x101f8000 0x1000>;
683                 interrupt-parent = <&vica>;
684                 interrupts = <20>;
685                 clock-frequency = <100000>;
686                 #address-cells = <1>;
687                 #size-cells = <0>;
688                 clocks = <&i2c0clk>, <&pclki2c0>;
689                 clock-names = "mclk", "apb_pclk";
690                 pinctrl-names = "default";
691                 pinctrl-0 = <&i2c0_default_mux>, <&i2c0_default_mode>;
692
693                 stw4811@2d {
694                         compatible = "st,stw4811";
695                         reg = <0x2d>;
696                         vmmc_regulator: vmmc {
697                                 compatible = "st,stw481x-vmmc";
698                                 regulator-name = "VMMC";
699                                 regulator-min-microvolt = <1800000>;
700                                 regulator-max-microvolt = <3300000>;
701                         };
702                 };
703         };
704
705         /* I2C1 connected to various sensors */
706         i2c1 {
707                 compatible = "st,nomadik-i2c", "arm,primecell";
708                 reg = <0x101f7000 0x1000>;
709                 interrupt-parent = <&vica>;
710                 interrupts = <21>;
711                 clock-frequency = <100000>;
712                 #address-cells = <1>;
713                 #size-cells = <0>;
714                 clocks = <&i2c1clk>, <&pclki2c1>;
715                 clock-names = "mclk", "apb_pclk";
716                 pinctrl-names = "default";
717                 pinctrl-0 = <&i2c1_default_mux>, <&i2c1_default_mode>;
718
719                 camera@2d {
720                            compatible = "st,camera";
721                            reg = <0x10>;
722                 };
723                 stw5095@1a {
724                            compatible = "st,stw5095";
725                            reg = <0x1a>;
726                 };
727         };
728
729         amba {
730                 compatible = "simple-bus";
731                 #address-cells = <1>;
732                 #size-cells = <1>;
733                 ranges;
734
735                 vica: intc@10140000 {
736                         compatible = "arm,versatile-vic";
737                         interrupt-controller;
738                         #interrupt-cells = <1>;
739                         reg = <0x10140000 0x20>;
740                 };
741
742                 vicb: intc@10140020 {
743                         compatible = "arm,versatile-vic";
744                         interrupt-controller;
745                         #interrupt-cells = <1>;
746                         reg = <0x10140020 0x20>;
747                 };
748
749                 uart0: uart@101fd000 {
750                         compatible = "arm,pl011", "arm,primecell";
751                         reg = <0x101fd000 0x1000>;
752                         interrupt-parent = <&vica>;
753                         interrupts = <12>;
754                         clocks = <&uart0clk>, <&pclkuart0>;
755                         clock-names = "uartclk", "apb_pclk";
756                         status = "disabled";
757                         dmas = <&dmac0 14 1>,
758                                <&dmac0 15 1>;
759                         dma-names = "rx", "tx";
760                 };
761
762                 uart1: uart@101fb000 {
763                         compatible = "arm,pl011", "arm,primecell";
764                         reg = <0x101fb000 0x1000>;
765                         interrupt-parent = <&vica>;
766                         interrupts = <17>;
767                         clocks = <&uart1clk>, <&pclkuart1>;
768                         clock-names = "uartclk", "apb_pclk";
769                         pinctrl-names = "default";
770                         pinctrl-0 = <&uart1_default_mux>;
771                         dmas = <&dmac1 22 1>,
772                                <&dmac1 23 1>;
773                         dma-names = "rx", "tx";
774                 };
775
776                 uart2: uart@101f2000 {
777                         compatible = "arm,pl011", "arm,primecell";
778                         reg = <0x101f2000 0x1000>;
779                         interrupt-parent = <&vica>;
780                         interrupts = <28>;
781                         clocks = <&uart2clk>, <&pclkuart2>;
782                         clock-names = "uartclk", "apb_pclk";
783                         status = "disabled";
784                         dmas = <&dmac1 30 1>,
785                                <&dmac1 31 1>;
786                         dma-names = "rx", "tx";
787                 };
788
789                 rng: rng@101b0000 {
790                         compatible = "arm,primecell";
791                         reg = <0x101b0000 0x1000>;
792                         clocks = <&rngcclk>, <&hclkrng>;
793                         clock-names = "rng", "apb_pclk";
794                 };
795
796                 rtc: rtc@101e8000 {
797                         compatible = "arm,pl031", "arm,primecell";
798                         reg = <0x101e8000 0x1000>;
799                         clocks = <&pclk>;
800                         clock-names = "apb_pclk";
801                         interrupt-parent = <&vica>;
802                         interrupts = <10>;
803                 };
804
805                 mmcsd: sdi@101f6000 {
806                         compatible = "arm,pl18x", "arm,primecell";
807                         reg = <0x101f6000 0x1000>;
808                         clocks = <&sdiclk>, <&pclksdi>;
809                         clock-names = "mclk", "apb_pclk";
810                         interrupt-parent = <&vica>;
811                         interrupts = <22>;
812                         max-frequency = <400000>;
813                         bus-width = <4>;
814                         cap-mmc-highspeed;
815                         cap-sd-highspeed;
816                         full-pwr-cycle;
817                         /*
818                          * The STw4811 circuit used with the Nomadik strictly
819                          * requires that all of these signal direction pins be
820                          * routed and used for its 4-bit levelshifter.
821                          */
822                         st,sig-dir-dat0;
823                         st,sig-dir-dat2;
824                         st,sig-dir-dat31;
825                         st,sig-dir-cmd;
826                         st,sig-pin-fbclk;
827                         pinctrl-names = "default";
828                         pinctrl-0 = <&mmcsd_default_mux>, <&mmcsd_default_mode>;
829                         vmmc-supply = <&vmmc_regulator>;
830                 };
831
832                 dmac0: dma-controller@10130000 {
833                         compatible = "arm,pl080", "arm,primecell";
834                         reg = <0x10130000 0x1000>;
835                         interrupt-parent = <&vica>;
836                         interrupts = <15>;
837                         clocks = <&hclkdma0>;
838                         clock-names = "apb_pclk";
839                         lli-bus-interface-ahb1;
840                         lli-bus-interface-ahb2;
841                         mem-bus-interface-ahb2;
842                         memcpy-burst-size = <256>;
843                         memcpy-bus-width = <32>;
844                         #dma-cells = <2>;
845                 };
846                 dmac1: dma-controller@10150000 {
847                         compatible = "arm,pl080", "arm,primecell";
848                         reg = <0x10150000 0x1000>;
849                         interrupt-parent = <&vica>;
850                         interrupts = <13>;
851                         clocks = <&hclkdma1>;
852                         clock-names = "apb_pclk";
853                         lli-bus-interface-ahb1;
854                         lli-bus-interface-ahb2;
855                         mem-bus-interface-ahb2;
856                         memcpy-burst-size = <256>;
857                         memcpy-bus-width = <32>;
858                         #dma-cells = <2>;
859                 };
860         };
861 };