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