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