Merge branch 'next' of git://git.infradead.org/users/pcmoore/selinux into next
[sfrench/cifs-2.6.git] / arch / arm / boot / dts / ste-u300.dts
1 /*
2  * Device Tree for the ST-Ericsson U300 Machine and SoC
3  */
4
5 /dts-v1/;
6 /include/ "skeleton.dtsi"
7
8 / {
9         model = "ST-Ericsson U300";
10         compatible = "stericsson,u300";
11         #address-cells = <1>;
12         #size-cells = <1>;
13
14         chosen {
15                 bootargs = "root=/dev/ram0 console=ttyAMA0,115200n8 earlyprintk";
16         };
17
18         aliases {
19                 serial0 = &uart0;
20                 serial1 = &uart1;
21         };
22
23         memory {
24                 reg = <0x48000000 0x03c00000>;
25         };
26
27         s365 {
28                 compatible = "stericsson,s365";
29                 vana15-supply = <&ab3100_ldo_d_reg>;
30                 syscon = <&syscon>;
31         };
32
33         syscon: syscon@c0011000 {
34                 compatible = "stericsson,u300-syscon", "syscon";
35                 reg = <0xc0011000 0x1000>;
36                 clk32: app_32_clk@32k {
37                         #clock-cells = <0>;
38                         compatible = "fixed-clock";
39                         clock-frequency = <32768>;
40                 };
41                 pll13: pll13@13M {
42                         #clock-cells = <0>;
43                         compatible = "fixed-clock";
44                         clock-frequency = <13000000>;
45                 };
46                 /* Slow bridge clocks under PLL13 */
47                 slow_clk: slow_clk@13M {
48                         #clock-cells = <0>;
49                         compatible = "stericsson,u300-syscon-clk";
50                         clock-type = <0>; /* Slow */
51                         clock-id = <0>;
52                         clocks = <&pll13>;
53                 };
54                 uart0_clk: uart0_clk@13M {
55                         #clock-cells = <0>;
56                         compatible = "stericsson,u300-syscon-clk";
57                         clock-type = <0>; /* Slow */
58                         clock-id = <1>;
59                         clocks = <&slow_clk>;
60                 };
61                 gpio_clk: gpio_clk@13M {
62                         #clock-cells = <0>;
63                         compatible = "stericsson,u300-syscon-clk";
64                         clock-type = <0>; /* Slow */
65                         clock-id = <4>;
66                         clocks = <&slow_clk>;
67                 };
68                 rtc_clk: rtc_clk@13M {
69                         #clock-cells = <0>;
70                         compatible = "stericsson,u300-syscon-clk";
71                         clock-type = <0>; /* Slow */
72                         clock-id = <6>;
73                         clocks = <&slow_clk>;
74                 };
75                 apptimer_clk: app_tmr_clk@13M {
76                         #clock-cells = <0>;
77                         compatible = "stericsson,u300-syscon-clk";
78                         clock-type = <0>; /* Slow */
79                         clock-id = <7>;
80                         clocks = <&slow_clk>;
81                 };
82                 acc_tmr_clk@13M {
83                         #clock-cells = <0>;
84                         compatible = "stericsson,u300-syscon-clk";
85                         clock-type = <0>; /* Slow */
86                         clock-id = <8>;
87                         clocks = <&slow_clk>;
88                 };
89                 pll208: pll208@208M {
90                         #clock-cells = <0>;
91                         compatible = "fixed-clock";
92                         clock-frequency = <208000000>;
93                 };
94                 app208: app_208_clk@208M {
95                         #clock-cells = <0>;
96                         compatible = "fixed-factor-clock";
97                         clock-div = <1>;
98                         clock-mult = <1>;
99                         clocks = <&pll208>;
100                 };
101                 cpu_clk@208M {
102                         #clock-cells = <0>;
103                         compatible = "stericsson,u300-syscon-clk";
104                         clock-type = <2>; /* Rest */
105                         clock-id = <3>;
106                         clocks = <&app208>;
107                 };
108                 app104: app_104_clk@104M {
109                         #clock-cells = <0>;
110                         compatible = "fixed-factor-clock";
111                         clock-div = <2>;
112                         clock-mult = <1>;
113                         clocks = <&pll208>;
114                 };
115                 semi_clk@104M {
116                         #clock-cells = <0>;
117                         compatible = "stericsson,u300-syscon-clk";
118                         clock-type = <2>; /* Rest */
119                         clock-id = <9>;
120                         clocks = <&app104>;
121                 };
122                 app52: app_52_clk@52M {
123                         #clock-cells = <0>;
124                         compatible = "fixed-factor-clock";
125                         clock-div = <4>;
126                         clock-mult = <1>;
127                         clocks = <&pll208>;
128                 };
129                 /* AHB subsystem clocks */
130                 ahb_clk: ahb_subsys_clk@52M {
131                         #clock-cells = <0>;
132                         compatible = "stericsson,u300-syscon-clk";
133                         clock-type = <2>; /* Rest */
134                         clock-id = <10>;
135                         clocks = <&app52>;
136                 };
137                 intcon_clk@52M {
138                         #clock-cells = <0>;
139                         compatible = "stericsson,u300-syscon-clk";
140                         clock-type = <2>; /* Rest */
141                         clock-id = <12>;
142                         clocks = <&ahb_clk>;
143                 };
144                 emif_clk@52M {
145                         #clock-cells = <0>;
146                         compatible = "stericsson,u300-syscon-clk";
147                         clock-type = <2>; /* Rest */
148                         clock-id = <5>;
149                         clocks = <&ahb_clk>;
150                 };
151                 dmac_clk: dmac_clk@52M {
152                         #clock-cells = <0>;
153                         compatible = "stericsson,u300-syscon-clk";
154                         clock-type = <2>; /* Rest */
155                         clock-id = <4>;
156                         clocks = <&app52>;
157                 };
158                 fsmc_clk: fsmc_clk@52M {
159                         #clock-cells = <0>;
160                         compatible = "stericsson,u300-syscon-clk";
161                         clock-type = <2>; /* Rest */
162                         clock-id = <6>;
163                         clocks = <&app52>;
164                 };
165                 xgam_clk: xgam_clk@52M {
166                         #clock-cells = <0>;
167                         compatible = "stericsson,u300-syscon-clk";
168                         clock-type = <2>; /* Rest */
169                         clock-id = <8>;
170                         clocks = <&app52>;
171                 };
172                 app26: app_26_clk@26M {
173                         #clock-cells = <0>;
174                         compatible = "fixed-factor-clock";
175                         clock-div = <2>;
176                         clock-mult = <1>;
177                         clocks = <&app52>;
178                 };
179                 /* Fast bridge  clocks */
180                 fast_clk: fast_clk@26M {
181                         #clock-cells = <0>;
182                         compatible = "stericsson,u300-syscon-clk";
183                         clock-type = <1>; /* Fast */
184                         clock-id = <0>;
185                         clocks = <&app26>;
186                 };
187                 i2c0_clk: i2c0_clk@26M {
188                         #clock-cells = <0>;
189                         compatible = "stericsson,u300-syscon-clk";
190                         clock-type = <1>; /* Fast */
191                         clock-id = <1>;
192                         clocks = <&fast_clk>;
193                 };
194                 i2c1_clk: i2c1_clk@26M {
195                         #clock-cells = <0>;
196                         compatible = "stericsson,u300-syscon-clk";
197                         clock-type = <1>; /* Fast */
198                         clock-id = <2>;
199                         clocks = <&fast_clk>;
200                 };
201                 mmc_pclk: mmc_p_clk@26M {
202                         #clock-cells = <0>;
203                         compatible = "stericsson,u300-syscon-clk";
204                         clock-type = <1>; /* Fast */
205                         clock-id = <5>;
206                         clocks = <&fast_clk>;
207                 };
208                 mmc_mclk: mmc_mclk {
209                         #clock-cells = <0>;
210                         compatible = "stericsson,u300-syscon-mclk";
211                         clocks = <&mmc_pclk>;
212                 };
213                 spi_clk: spi_p_clk@26M {
214                         #clock-cells = <0>;
215                         compatible = "stericsson,u300-syscon-clk";
216                         clock-type = <1>; /* Fast */
217                         clock-id = <6>;
218                         clocks = <&fast_clk>;
219                 };
220         };
221
222         timer: timer@c0014000 {
223                 compatible = "stericsson,u300-apptimer";
224                 reg = <0xc0014000 0x1000>;
225                 interrupt-parent = <&vica>;
226                 interrupts = <24 25 26 27>;
227                 clocks = <&apptimer_clk>;
228         };
229
230         gpio: gpio@c0016000 {
231                 compatible = "stericsson,gpio-coh901";
232                 reg = <0xc0016000 0x1000>;
233                 interrupt-parent = <&vicb>;
234                 interrupts = <0 1 2 18 21 22 23>;
235                 clocks = <&gpio_clk>;
236                 interrupt-names = "gpio0", "gpio1", "gpio2", "gpio3",
237                                 "gpio4", "gpio5", "gpio6";
238                 interrupt-controller;
239                 #interrupt-cells = <2>;
240                 gpio-controller;
241                 #gpio-cells = <2>;
242         };
243
244         pinctrl: pinctrl@c0011000 {
245                 compatible = "stericsson,pinctrl-u300";
246                 reg = <0xc0011000 0x1000>;
247         };
248
249         watchdog: watchdog@c0012000 {
250                 compatible = "stericsson,coh901327";
251                 reg = <0xc0012000 0x1000>;
252                 interrupt-parent = <&vicb>;
253                 interrupts = <3>;
254                 clocks = <&clk32>;
255         };
256
257         rtc: rtc@c0017000 {
258                 compatible = "stericsson,coh901331";
259                 reg = <0xc0017000 0x1000>;
260                 interrupt-parent = <&vicb>;
261                 interrupts = <10>;
262                 clocks = <&rtc_clk>;
263         };
264
265         dmac: dma-controller@c00020000 {
266                 compatible = "stericsson,coh901318";
267                 reg = <0xc0020000 0x1000>;
268                 interrupt-parent = <&vica>;
269                 interrupts = <2>;
270                 #dma-cells = <1>;
271                 dma-channels = <40>;
272                 clocks = <&dmac_clk>;
273         };
274
275         /* A NAND flash of 128 MiB */
276         fsmc: flash@40000000 {
277                 compatible = "stericsson,fsmc-nand";
278                 #address-cells = <1>;
279                 #size-cells = <1>;
280                 reg = <0x9f800000 0x1000>,      /* FSMC Register*/
281                         <0x80000000 0x4000>,    /* NAND Base DATA */
282                         <0x80020000 0x4000>,    /* NAND Base ADDR */
283                         <0x80010000 0x4000>;    /* NAND Base CMD */
284                 reg-names = "fsmc_regs", "nand_data", "nand_addr", "nand_cmd";
285                 nand-skip-bbtscan;
286                 clocks = <&fsmc_clk>;
287
288                 partition@0 {
289                 label = "boot records";
290                         reg = <0x0 0x20000>;
291                 };
292                 partition@20000 {
293                         label = "free";
294                         reg = <0x20000 0x7e0000>;
295                 };
296                 partition@800000 {
297                         label = "platform";
298                         reg = <0x800000 0xf800000>;
299                 };
300         };
301
302         i2c0: i2c@c0004000 {
303                 compatible = "st,ddci2c";
304                 reg = <0xc0004000 0x1000>;
305                 interrupt-parent = <&vicb>;
306                 interrupts = <8>;
307                 clocks = <&i2c0_clk>;
308                 #address-cells = <1>;
309                 #size-cells = <0>;
310                 ab3100: ab3100@48 {
311                         compatible = "stericsson,ab3100";
312                         reg = <0x48>;
313                         interrupt-parent = <&vica>;
314                         interrupts = <0>; /* EXT0 IRQ */
315                         ab3100-regulators {
316                                 compatible = "stericsson,ab3100-regulators";
317                                 ab3100_ldo_a_reg: ab3100_ldo_a {
318                                         regulator-compatible = "ab3100_ldo_a";
319                                         startup-delay-us = <200>;
320                                         regulator-always-on;
321                                         regulator-boot-on;
322                                 };
323                                 ab3100_ldo_c_reg: ab3100_ldo_c {
324                                         regulator-compatible = "ab3100_ldo_c";
325                                         startup-delay-us = <200>;
326                                 };
327                                 ab3100_ldo_d_reg: ab3100_ldo_d {
328                                         regulator-compatible = "ab3100_ldo_d";
329                                         startup-delay-us = <200>;
330                                 };
331                                 ab3100_ldo_e_reg: ab3100_ldo_e {
332                                         regulator-compatible = "ab3100_ldo_e";
333                                         regulator-min-microvolt = <1800000>;
334                                         regulator-max-microvolt = <1800000>;
335                                         startup-delay-us = <200>;
336                                         regulator-always-on;
337                                         regulator-boot-on;
338                                 };
339                                 ab3100_ldo_f_reg: ab3100_ldo_f {
340                                         regulator-compatible = "ab3100_ldo_f";
341                                         regulator-min-microvolt = <2500000>;
342                                         regulator-max-microvolt = <2500000>;
343                                         startup-delay-us = <600>;
344                                         regulator-always-on;
345                                         regulator-boot-on;
346                                 };
347                                 ab3100_ldo_g_reg: ab3100_ldo_g {
348                                         regulator-compatible = "ab3100_ldo_g";
349                                         regulator-min-microvolt = <1500000>;
350                                         regulator-max-microvolt = <2850000>;
351                                         startup-delay-us = <400>;
352                                 };
353                                 ab3100_ldo_h_reg: ab3100_ldo_h {
354                                         regulator-compatible = "ab3100_ldo_h";
355                                         regulator-min-microvolt = <1200000>;
356                                         regulator-max-microvolt = <2750000>;
357                                         startup-delay-us = <200>;
358                                 };
359                                 ab3100_ldo_k_reg: ab3100_ldo_k {
360                                         regulator-compatible = "ab3100_ldo_k";
361                                         regulator-min-microvolt = <1800000>;
362                                         regulator-max-microvolt = <2750000>;
363                                         startup-delay-us = <200>;
364                                 };
365                                 ab3100_ext_reg: ab3100_ext {
366                                         regulator-compatible = "ab3100_ext";
367                                 };
368                                 ab3100_buck_reg: ab3100_buck {
369                                         regulator-compatible = "ab3100_buck";
370                                         regulator-min-microvolt = <1200000>;
371                                         regulator-max-microvolt = <1800000>;
372                                         startup-delay-us = <1000>;
373                                         regulator-always-on;
374                                         regulator-boot-on;
375                                 };
376                         };
377                 };
378         };
379
380         i2c1: i2c@c0005000 {
381                 compatible = "st,ddci2c";
382                 reg = <0xc0005000 0x1000>;
383                 interrupt-parent = <&vicb>;
384                 interrupts = <9>;
385                 clocks = <&i2c1_clk>;
386                 #address-cells = <1>;
387                 #size-cells = <0>;
388                 fwcam0: fwcam@10 {
389                         reg = <0x10>;
390                 };
391                 fwcam1: fwcam@5d {
392                         reg = <0x5d>;
393                 };
394         };
395
396         amba {
397                 compatible = "arm,amba-bus";
398                 #address-cells = <1>;
399                 #size-cells = <1>;
400                 ranges;
401
402                 vica: interrupt-controller@a0001000 {
403                         compatible = "arm,versatile-vic";
404                         interrupt-controller;
405                         #interrupt-cells = <1>;
406                         reg = <0xa0001000 0x20>;
407                 };
408
409                 vicb: interrupt-controller@a0002000 {
410                         compatible = "arm,versatile-vic";
411                         interrupt-controller;
412                         #interrupt-cells = <1>;
413                         reg = <0xa0002000 0x20>;
414                 };
415
416                 uart0: serial@c0013000 {
417                         compatible = "arm,pl011", "arm,primecell";
418                         reg = <0xc0013000 0x1000>;
419                         interrupt-parent = <&vica>;
420                         interrupts = <22>;
421                         clocks = <&uart0_clk>, <&uart0_clk>;
422                         clock-names = "apb_pclk", "uart0_clk";
423                         dmas = <&dmac 17 &dmac 18>;
424                         dma-names = "tx", "rx";
425                 };
426
427                 uart1: serial@c0007000 {
428                         compatible = "arm,pl011", "arm,primecell";
429                         reg = <0xc0007000 0x1000>;
430                         interrupt-parent = <&vicb>;
431                         interrupts = <20>;
432                         dmas = <&dmac 38 &dmac 39>;
433                         dma-names = "tx", "rx";
434                 };
435
436                 mmcsd: mmcsd@c0001000 {
437                         compatible = "arm,pl18x", "arm,primecell";
438                         reg = <0xc0001000 0x1000>;
439                         interrupt-parent = <&vicb>;
440                         interrupts = <6 7>;
441                         clocks = <&mmc_pclk>, <&mmc_mclk>;
442                         clock-names = "apb_pclk", "mclk";
443                         max-frequency = <24000000>;
444                         bus-width = <4>; // SD-card slot
445                         cap-mmc-highspeed;
446                         cap-sd-highspeed;
447                         cd-gpios = <&gpio 12 0x4>;
448                         cd-inverted;
449                         vmmc-supply = <&ab3100_ldo_g_reg>;
450                         dmas = <&dmac 14>;
451                         dma-names = "rx";
452                 };
453
454                 spi: ssp@c0006000 {
455                         compatible = "arm,pl022", "arm,primecell";
456                         reg = <0xc0006000 0x1000>;
457                         interrupt-parent = <&vica>;
458                         interrupts = <23>;
459                         clocks = <&spi_clk>, <&spi_clk>;
460                         clock-names = "SSPCLK", "apb_pclk";
461                         dmas = <&dmac 27 &dmac 28>;
462                         dma-names = "tx", "rx";
463                         num-cs = <3>;
464                         #address-cells = <1>;
465                         #size-cells = <0>;
466                         spi-dummy@1 {
467                                 compatible = "arm,pl022-dummy";
468                                 reg = <1>;
469                                 spi-max-frequency = <20000000>;
470                         };
471                 };
472         };
473 };