Merge branch 'for-3.12/core' of git://git.kernel.dk/linux-block
[firefly-linux-kernel-4.4.55.git] / arch / arm / boot / dts / exynos4.dtsi
1 /*
2  * Samsung's Exynos4 SoC series common device tree source
3  *
4  * Copyright (c) 2010-2011 Samsung Electronics Co., Ltd.
5  *              http://www.samsung.com
6  * Copyright (c) 2010-2011 Linaro Ltd.
7  *              www.linaro.org
8  *
9  * Samsung's Exynos4 SoC series device nodes are listed in this file.  Particular
10  * SoCs from Exynos4 series can include this file and provide values for SoCs
11  * specfic bindings.
12  *
13  * Note: This file does not include device nodes for all the controllers in
14  * Exynos4 SoCs. As device tree coverage for Exynos4 increases, additional
15  * nodes can be added to this file.
16  *
17  * This program is free software; you can redistribute it and/or modify
18  * it under the terms of the GNU General Public License version 2 as
19  * published by the Free Software Foundation.
20  */
21
22 #include "skeleton.dtsi"
23
24 / {
25         interrupt-parent = <&gic>;
26
27         aliases {
28                 spi0 = &spi_0;
29                 spi1 = &spi_1;
30                 spi2 = &spi_2;
31                 i2c0 = &i2c_0;
32                 i2c1 = &i2c_1;
33                 i2c2 = &i2c_2;
34                 i2c3 = &i2c_3;
35                 i2c4 = &i2c_4;
36                 i2c5 = &i2c_5;
37                 i2c6 = &i2c_6;
38                 i2c7 = &i2c_7;
39                 csis0 = &csis_0;
40                 csis1 = &csis_1;
41                 fimc0 = &fimc_0;
42                 fimc1 = &fimc_1;
43                 fimc2 = &fimc_2;
44                 fimc3 = &fimc_3;
45         };
46
47         chipid@10000000 {
48                 compatible = "samsung,exynos4210-chipid";
49                 reg = <0x10000000 0x100>;
50         };
51
52         pd_mfc: mfc-power-domain@10023C40 {
53                 compatible = "samsung,exynos4210-pd";
54                 reg = <0x10023C40 0x20>;
55         };
56
57         pd_g3d: g3d-power-domain@10023C60 {
58                 compatible = "samsung,exynos4210-pd";
59                 reg = <0x10023C60 0x20>;
60         };
61
62         pd_lcd0: lcd0-power-domain@10023C80 {
63                 compatible = "samsung,exynos4210-pd";
64                 reg = <0x10023C80 0x20>;
65         };
66
67         pd_tv: tv-power-domain@10023C20 {
68                 compatible = "samsung,exynos4210-pd";
69                 reg = <0x10023C20 0x20>;
70         };
71
72         pd_cam: cam-power-domain@10023C00 {
73                 compatible = "samsung,exynos4210-pd";
74                 reg = <0x10023C00 0x20>;
75         };
76
77         pd_gps: gps-power-domain@10023CE0 {
78                 compatible = "samsung,exynos4210-pd";
79                 reg = <0x10023CE0 0x20>;
80         };
81
82         gic:interrupt-controller@10490000 {
83                 compatible = "arm,cortex-a9-gic";
84                 #interrupt-cells = <3>;
85                 interrupt-controller;
86                 reg = <0x10490000 0x1000>, <0x10480000 0x100>;
87         };
88
89         combiner:interrupt-controller@10440000 {
90                 compatible = "samsung,exynos4210-combiner";
91                 #interrupt-cells = <2>;
92                 interrupt-controller;
93                 reg = <0x10440000 0x1000>;
94         };
95
96         sys_reg: sysreg {
97                 compatible = "samsung,exynos4-sysreg", "syscon";
98                 reg = <0x10010000 0x400>;
99         };
100
101         camera {
102                 compatible = "samsung,fimc", "simple-bus";
103                 status = "disabled";
104                 #address-cells = <1>;
105                 #size-cells = <1>;
106                 ranges;
107
108                 clock_cam: clock-controller {
109                          #clock-cells = <1>;
110                 };
111
112                 fimc_0: fimc@11800000 {
113                         compatible = "samsung,exynos4210-fimc";
114                         reg = <0x11800000 0x1000>;
115                         interrupts = <0 84 0>;
116                         clocks = <&clock 256>, <&clock 128>;
117                         clock-names = "fimc", "sclk_fimc";
118                         samsung,power-domain = <&pd_cam>;
119                         samsung,sysreg = <&sys_reg>;
120                         status = "disabled";
121                 };
122
123                 fimc_1: fimc@11810000 {
124                         compatible = "samsung,exynos4210-fimc";
125                         reg = <0x11810000 0x1000>;
126                         interrupts = <0 85 0>;
127                         clocks = <&clock 257>, <&clock 129>;
128                         clock-names = "fimc", "sclk_fimc";
129                         samsung,power-domain = <&pd_cam>;
130                         samsung,sysreg = <&sys_reg>;
131                         status = "disabled";
132                 };
133
134                 fimc_2: fimc@11820000 {
135                         compatible = "samsung,exynos4210-fimc";
136                         reg = <0x11820000 0x1000>;
137                         interrupts = <0 86 0>;
138                         clocks = <&clock 258>, <&clock 130>;
139                         clock-names = "fimc", "sclk_fimc";
140                         samsung,power-domain = <&pd_cam>;
141                         samsung,sysreg = <&sys_reg>;
142                         status = "disabled";
143                 };
144
145                 fimc_3: fimc@11830000 {
146                         compatible = "samsung,exynos4210-fimc";
147                         reg = <0x11830000 0x1000>;
148                         interrupts = <0 87 0>;
149                         clocks = <&clock 259>, <&clock 131>;
150                         clock-names = "fimc", "sclk_fimc";
151                         samsung,power-domain = <&pd_cam>;
152                         samsung,sysreg = <&sys_reg>;
153                         status = "disabled";
154                 };
155
156                 csis_0: csis@11880000 {
157                         compatible = "samsung,exynos4210-csis";
158                         reg = <0x11880000 0x4000>;
159                         interrupts = <0 78 0>;
160                         clocks = <&clock 260>, <&clock 134>;
161                         clock-names = "csis", "sclk_csis";
162                         bus-width = <4>;
163                         samsung,power-domain = <&pd_cam>;
164                         status = "disabled";
165                         #address-cells = <1>;
166                         #size-cells = <0>;
167                 };
168
169                 csis_1: csis@11890000 {
170                         compatible = "samsung,exynos4210-csis";
171                         reg = <0x11890000 0x4000>;
172                         interrupts = <0 80 0>;
173                         clocks = <&clock 261>, <&clock 135>;
174                         clock-names = "csis", "sclk_csis";
175                         bus-width = <2>;
176                         samsung,power-domain = <&pd_cam>;
177                         status = "disabled";
178                         #address-cells = <1>;
179                         #size-cells = <0>;
180                 };
181         };
182
183         watchdog@10060000 {
184                 compatible = "samsung,s3c2410-wdt";
185                 reg = <0x10060000 0x100>;
186                 interrupts = <0 43 0>;
187                 clocks = <&clock 345>;
188                 clock-names = "watchdog";
189                 status = "disabled";
190         };
191
192         rtc@10070000 {
193                 compatible = "samsung,s3c6410-rtc";
194                 reg = <0x10070000 0x100>;
195                 interrupts = <0 44 0>, <0 45 0>;
196                 clocks = <&clock 346>;
197                 clock-names = "rtc";
198                 status = "disabled";
199         };
200
201         keypad@100A0000 {
202                 compatible = "samsung,s5pv210-keypad";
203                 reg = <0x100A0000 0x100>;
204                 interrupts = <0 109 0>;
205                 clocks = <&clock 347>;
206                 clock-names = "keypad";
207                 status = "disabled";
208         };
209
210         sdhci@12510000 {
211                 compatible = "samsung,exynos4210-sdhci";
212                 reg = <0x12510000 0x100>;
213                 interrupts = <0 73 0>;
214                 clocks = <&clock 297>, <&clock 145>;
215                 clock-names = "hsmmc", "mmc_busclk.2";
216                 status = "disabled";
217         };
218
219         sdhci@12520000 {
220                 compatible = "samsung,exynos4210-sdhci";
221                 reg = <0x12520000 0x100>;
222                 interrupts = <0 74 0>;
223                 clocks = <&clock 298>, <&clock 146>;
224                 clock-names = "hsmmc", "mmc_busclk.2";
225                 status = "disabled";
226         };
227
228         sdhci@12530000 {
229                 compatible = "samsung,exynos4210-sdhci";
230                 reg = <0x12530000 0x100>;
231                 interrupts = <0 75 0>;
232                 clocks = <&clock 299>, <&clock 147>;
233                 clock-names = "hsmmc", "mmc_busclk.2";
234                 status = "disabled";
235         };
236
237         sdhci@12540000 {
238                 compatible = "samsung,exynos4210-sdhci";
239                 reg = <0x12540000 0x100>;
240                 interrupts = <0 76 0>;
241                 clocks = <&clock 300>, <&clock 148>;
242                 clock-names = "hsmmc", "mmc_busclk.2";
243                 status = "disabled";
244         };
245
246         ehci@12580000 {
247                 compatible = "samsung,exynos4210-ehci";
248                 reg = <0x12580000 0x100>;
249                 interrupts = <0 70 0>;
250                 clocks = <&clock 304>;
251                 clock-names = "usbhost";
252                 status = "disabled";
253         };
254
255         ohci@12590000 {
256                 compatible = "samsung,exynos4210-ohci";
257                 reg = <0x12590000 0x100>;
258                 interrupts = <0 70 0>;
259                 clocks = <&clock 304>;
260                 clock-names = "usbhost";
261                 status = "disabled";
262         };
263
264         mfc: codec@13400000 {
265                 compatible = "samsung,mfc-v5";
266                 reg = <0x13400000 0x10000>;
267                 interrupts = <0 94 0>;
268                 samsung,power-domain = <&pd_mfc>;
269                 clocks = <&clock 273>;
270                 clock-names = "mfc";
271                 status = "disabled";
272         };
273
274         serial@13800000 {
275                 compatible = "samsung,exynos4210-uart";
276                 reg = <0x13800000 0x100>;
277                 interrupts = <0 52 0>;
278                 clocks = <&clock 312>, <&clock 151>;
279                 clock-names = "uart", "clk_uart_baud0";
280                 status = "disabled";
281         };
282
283         serial@13810000 {
284                 compatible = "samsung,exynos4210-uart";
285                 reg = <0x13810000 0x100>;
286                 interrupts = <0 53 0>;
287                 clocks = <&clock 313>, <&clock 152>;
288                 clock-names = "uart", "clk_uart_baud0";
289                 status = "disabled";
290         };
291
292         serial@13820000 {
293                 compatible = "samsung,exynos4210-uart";
294                 reg = <0x13820000 0x100>;
295                 interrupts = <0 54 0>;
296                 clocks = <&clock 314>, <&clock 153>;
297                 clock-names = "uart", "clk_uart_baud0";
298                 status = "disabled";
299         };
300
301         serial@13830000 {
302                 compatible = "samsung,exynos4210-uart";
303                 reg = <0x13830000 0x100>;
304                 interrupts = <0 55 0>;
305                 clocks = <&clock 315>, <&clock 154>;
306                 clock-names = "uart", "clk_uart_baud0";
307                 status = "disabled";
308         };
309
310         i2c_0: i2c@13860000 {
311                 #address-cells = <1>;
312                 #size-cells = <0>;
313                 compatible = "samsung,s3c2440-i2c";
314                 reg = <0x13860000 0x100>;
315                 interrupts = <0 58 0>;
316                 clocks = <&clock 317>;
317                 clock-names = "i2c";
318                 pinctrl-names = "default";
319                 pinctrl-0 = <&i2c0_bus>;
320                 status = "disabled";
321         };
322
323         i2c_1: i2c@13870000 {
324                 #address-cells = <1>;
325                 #size-cells = <0>;
326                 compatible = "samsung,s3c2440-i2c";
327                 reg = <0x13870000 0x100>;
328                 interrupts = <0 59 0>;
329                 clocks = <&clock 318>;
330                 clock-names = "i2c";
331                 pinctrl-names = "default";
332                 pinctrl-0 = <&i2c1_bus>;
333                 status = "disabled";
334         };
335
336         i2c_2: i2c@13880000 {
337                 #address-cells = <1>;
338                 #size-cells = <0>;
339                 compatible = "samsung,s3c2440-i2c";
340                 reg = <0x13880000 0x100>;
341                 interrupts = <0 60 0>;
342                 clocks = <&clock 319>;
343                 clock-names = "i2c";
344                 status = "disabled";
345         };
346
347         i2c_3: i2c@13890000 {
348                 #address-cells = <1>;
349                 #size-cells = <0>;
350                 compatible = "samsung,s3c2440-i2c";
351                 reg = <0x13890000 0x100>;
352                 interrupts = <0 61 0>;
353                 clocks = <&clock 320>;
354                 clock-names = "i2c";
355                 status = "disabled";
356         };
357
358         i2c_4: i2c@138A0000 {
359                 #address-cells = <1>;
360                 #size-cells = <0>;
361                 compatible = "samsung,s3c2440-i2c";
362                 reg = <0x138A0000 0x100>;
363                 interrupts = <0 62 0>;
364                 clocks = <&clock 321>;
365                 clock-names = "i2c";
366                 status = "disabled";
367         };
368
369         i2c_5: i2c@138B0000 {
370                 #address-cells = <1>;
371                 #size-cells = <0>;
372                 compatible = "samsung,s3c2440-i2c";
373                 reg = <0x138B0000 0x100>;
374                 interrupts = <0 63 0>;
375                 clocks = <&clock 322>;
376                 clock-names = "i2c";
377                 status = "disabled";
378         };
379
380         i2c_6: i2c@138C0000 {
381                 #address-cells = <1>;
382                 #size-cells = <0>;
383                 compatible = "samsung,s3c2440-i2c";
384                 reg = <0x138C0000 0x100>;
385                 interrupts = <0 64 0>;
386                 clocks = <&clock 323>;
387                 clock-names = "i2c";
388                 status = "disabled";
389         };
390
391         i2c_7: i2c@138D0000 {
392                 #address-cells = <1>;
393                 #size-cells = <0>;
394                 compatible = "samsung,s3c2440-i2c";
395                 reg = <0x138D0000 0x100>;
396                 interrupts = <0 65 0>;
397                 clocks = <&clock 324>;
398                 clock-names = "i2c";
399                 status = "disabled";
400         };
401
402         spi_0: spi@13920000 {
403                 compatible = "samsung,exynos4210-spi";
404                 reg = <0x13920000 0x100>;
405                 interrupts = <0 66 0>;
406                 dmas = <&pdma0 7>, <&pdma0 6>;
407                 dma-names = "tx", "rx";
408                 #address-cells = <1>;
409                 #size-cells = <0>;
410                 clocks = <&clock 327>, <&clock 159>;
411                 clock-names = "spi", "spi_busclk0";
412                 pinctrl-names = "default";
413                 pinctrl-0 = <&spi0_bus>;
414                 status = "disabled";
415         };
416
417         spi_1: spi@13930000 {
418                 compatible = "samsung,exynos4210-spi";
419                 reg = <0x13930000 0x100>;
420                 interrupts = <0 67 0>;
421                 dmas = <&pdma1 7>, <&pdma1 6>;
422                 dma-names = "tx", "rx";
423                 #address-cells = <1>;
424                 #size-cells = <0>;
425                 clocks = <&clock 328>, <&clock 160>;
426                 clock-names = "spi", "spi_busclk0";
427                 pinctrl-names = "default";
428                 pinctrl-0 = <&spi1_bus>;
429                 status = "disabled";
430         };
431
432         spi_2: spi@13940000 {
433                 compatible = "samsung,exynos4210-spi";
434                 reg = <0x13940000 0x100>;
435                 interrupts = <0 68 0>;
436                 dmas = <&pdma0 9>, <&pdma0 8>;
437                 dma-names = "tx", "rx";
438                 #address-cells = <1>;
439                 #size-cells = <0>;
440                 clocks = <&clock 329>, <&clock 161>;
441                 clock-names = "spi", "spi_busclk0";
442                 pinctrl-names = "default";
443                 pinctrl-0 = <&spi2_bus>;
444                 status = "disabled";
445         };
446
447         pwm@139D0000 {
448                 compatible = "samsung,exynos4210-pwm";
449                 reg = <0x139D0000 0x1000>;
450                 interrupts = <0 37 0>, <0 38 0>, <0 39 0>, <0 40 0>, <0 41 0>;
451                 clocks = <&clock 336>;
452                 clock-names = "timers";
453                 #pwm-cells = <2>;
454                 status = "disabled";
455         };
456
457         amba {
458                 #address-cells = <1>;
459                 #size-cells = <1>;
460                 compatible = "arm,amba-bus";
461                 interrupt-parent = <&gic>;
462                 ranges;
463
464                 pdma0: pdma@12680000 {
465                         compatible = "arm,pl330", "arm,primecell";
466                         reg = <0x12680000 0x1000>;
467                         interrupts = <0 35 0>;
468                         clocks = <&clock 292>;
469                         clock-names = "apb_pclk";
470                         #dma-cells = <1>;
471                         #dma-channels = <8>;
472                         #dma-requests = <32>;
473                 };
474
475                 pdma1: pdma@12690000 {
476                         compatible = "arm,pl330", "arm,primecell";
477                         reg = <0x12690000 0x1000>;
478                         interrupts = <0 36 0>;
479                         clocks = <&clock 293>;
480                         clock-names = "apb_pclk";
481                         #dma-cells = <1>;
482                         #dma-channels = <8>;
483                         #dma-requests = <32>;
484                 };
485
486                 mdma1: mdma@12850000 {
487                         compatible = "arm,pl330", "arm,primecell";
488                         reg = <0x12850000 0x1000>;
489                         interrupts = <0 34 0>;
490                         clocks = <&clock 279>;
491                         clock-names = "apb_pclk";
492                         #dma-cells = <1>;
493                         #dma-channels = <8>;
494                         #dma-requests = <1>;
495                 };
496         };
497
498         fimd: fimd@11c00000 {
499                 compatible = "samsung,exynos4210-fimd";
500                 interrupt-parent = <&combiner>;
501                 reg = <0x11c00000 0x20000>;
502                 interrupt-names = "fifo", "vsync", "lcd_sys";
503                 interrupts = <11 0>, <11 1>, <11 2>;
504                 clocks = <&clock 140>, <&clock 283>;
505                 clock-names = "sclk_fimd", "fimd";
506                 samsung,power-domain = <&pd_lcd0>;
507                 status = "disabled";
508         };
509 };