Merge branch 'v3.14-next/fixes-samsung-2' into v3.14-next/dt-exynos-2
[platform/kernel/linux-starfive.git] / arch / arm / boot / dts / exynos5250.dtsi
1 /*
2  * SAMSUNG EXYNOS5250 SoC device tree source
3  *
4  * Copyright (c) 2012 Samsung Electronics Co., Ltd.
5  *              http://www.samsung.com
6  *
7  * SAMSUNG EXYNOS5250 SoC device nodes are listed in this file.
8  * EXYNOS5250 based board files can include this file and provide
9  * values for board specfic bindings.
10  *
11  * Note: This file does not include device nodes for all the controllers in
12  * EXYNOS5250 SoC. As device tree coverage for EXYNOS5250 increases,
13  * additional nodes can be added to this file.
14  *
15  * This program is free software; you can redistribute it and/or modify
16  * it under the terms of the GNU General Public License version 2 as
17  * published by the Free Software Foundation.
18 */
19
20 #include "exynos5.dtsi"
21 #include "exynos5250-pinctrl.dtsi"
22
23 #include <dt-bindings/clk/exynos-audss-clk.h>
24
25 / {
26         compatible = "samsung,exynos5250";
27
28         aliases {
29                 spi0 = &spi_0;
30                 spi1 = &spi_1;
31                 spi2 = &spi_2;
32                 gsc0 = &gsc_0;
33                 gsc1 = &gsc_1;
34                 gsc2 = &gsc_2;
35                 gsc3 = &gsc_3;
36                 mshc0 = &mmc_0;
37                 mshc1 = &mmc_1;
38                 mshc2 = &mmc_2;
39                 mshc3 = &mmc_3;
40                 i2c0 = &i2c_0;
41                 i2c1 = &i2c_1;
42                 i2c2 = &i2c_2;
43                 i2c3 = &i2c_3;
44                 i2c4 = &i2c_4;
45                 i2c5 = &i2c_5;
46                 i2c6 = &i2c_6;
47                 i2c7 = &i2c_7;
48                 i2c8 = &i2c_8;
49                 pinctrl0 = &pinctrl_0;
50                 pinctrl1 = &pinctrl_1;
51                 pinctrl2 = &pinctrl_2;
52                 pinctrl3 = &pinctrl_3;
53         };
54
55         cpus {
56                 #address-cells = <1>;
57                 #size-cells = <0>;
58
59                 cpu@0 {
60                         device_type = "cpu";
61                         compatible = "arm,cortex-a15";
62                         reg = <0>;
63                         clock-frequency = <1700000000>;
64                 };
65                 cpu@1 {
66                         device_type = "cpu";
67                         compatible = "arm,cortex-a15";
68                         reg = <1>;
69                         clock-frequency = <1700000000>;
70                 };
71         };
72
73         pd_gsc: gsc-power-domain@10044000 {
74                 compatible = "samsung,exynos4210-pd";
75                 reg = <0x10044000 0x20>;
76         };
77
78         pd_mfc: mfc-power-domain@10044040 {
79                 compatible = "samsung,exynos4210-pd";
80                 reg = <0x10044040 0x20>;
81         };
82
83         clock: clock-controller@10010000 {
84                 compatible = "samsung,exynos5250-clock";
85                 reg = <0x10010000 0x30000>;
86                 #clock-cells = <1>;
87         };
88
89         clock_audss: audss-clock-controller@3810000 {
90                 compatible = "samsung,exynos5250-audss-clock";
91                 reg = <0x03810000 0x0C>;
92                 #clock-cells = <1>;
93         };
94
95         timer {
96                 compatible = "arm,armv7-timer";
97                 interrupts = <1 13 0xf08>,
98                              <1 14 0xf08>,
99                              <1 11 0xf08>,
100                              <1 10 0xf08>;
101                 /* Unfortunately we need this since some versions of U-Boot
102                  * on Exynos don't set the CNTFRQ register, so we need the
103                  * value from DT.
104                  */
105                 clock-frequency = <24000000>;
106         };
107
108         mct@101C0000 {
109                 compatible = "samsung,exynos4210-mct";
110                 reg = <0x101C0000 0x800>;
111                 interrupt-controller;
112                 #interrups-cells = <2>;
113                 interrupt-parent = <&mct_map>;
114                 interrupts = <0 0>, <1 0>, <2 0>, <3 0>,
115                              <4 0>, <5 0>;
116                 clocks = <&clock 1>, <&clock 335>;
117                 clock-names = "fin_pll", "mct";
118
119                 mct_map: mct-map {
120                         #interrupt-cells = <2>;
121                         #address-cells = <0>;
122                         #size-cells = <0>;
123                         interrupt-map = <0x0 0 &combiner 23 3>,
124                                         <0x1 0 &combiner 23 4>,
125                                         <0x2 0 &combiner 25 2>,
126                                         <0x3 0 &combiner 25 3>,
127                                         <0x4 0 &gic 0 120 0>,
128                                         <0x5 0 &gic 0 121 0>;
129                 };
130         };
131
132         pmu {
133                 compatible = "arm,cortex-a15-pmu";
134                 interrupt-parent = <&combiner>;
135                 interrupts = <1 2>, <22 4>;
136         };
137
138         pinctrl_0: pinctrl@11400000 {
139                 compatible = "samsung,exynos5250-pinctrl";
140                 reg = <0x11400000 0x1000>;
141                 interrupts = <0 46 0>;
142
143                 wakup_eint: wakeup-interrupt-controller {
144                         compatible = "samsung,exynos4210-wakeup-eint";
145                         interrupt-parent = <&gic>;
146                         interrupts = <0 32 0>;
147                 };
148         };
149
150         pinctrl_1: pinctrl@13400000 {
151                 compatible = "samsung,exynos5250-pinctrl";
152                 reg = <0x13400000 0x1000>;
153                 interrupts = <0 45 0>;
154         };
155
156         pinctrl_2: pinctrl@10d10000 {
157                 compatible = "samsung,exynos5250-pinctrl";
158                 reg = <0x10d10000 0x1000>;
159                 interrupts = <0 50 0>;
160         };
161
162         pinctrl_3: pinctrl@03860000 {
163                 compatible = "samsung,exynos5250-pinctrl";
164                 reg = <0x03860000 0x1000>;
165                 interrupts = <0 47 0>;
166         };
167
168         watchdog {
169                 clocks = <&clock 336>;
170                 clock-names = "watchdog";
171         };
172
173         g2d@10850000 {
174                 compatible = "samsung,exynos5250-g2d";
175                 reg = <0x10850000 0x1000>;
176                 interrupts = <0 91 0>;
177                 clocks = <&clock 345>;
178                 clock-names = "fimg2d";
179         };
180
181         codec@11000000 {
182                 compatible = "samsung,mfc-v6";
183                 reg = <0x11000000 0x10000>;
184                 interrupts = <0 96 0>;
185                 samsung,power-domain = <&pd_mfc>;
186                 clocks = <&clock 266>;
187                 clock-names = "mfc";
188         };
189
190         rtc@101E0000 {
191                 clocks = <&clock 337>;
192                 clock-names = "rtc";
193                 status = "okay";
194         };
195
196         tmu@10060000 {
197                 compatible = "samsung,exynos5250-tmu";
198                 reg = <0x10060000 0x100>;
199                 interrupts = <0 65 0>;
200                 clocks = <&clock 338>;
201                 clock-names = "tmu_apbif";
202         };
203
204         serial@12C00000 {
205                 clocks = <&clock 289>, <&clock 146>;
206                 clock-names = "uart", "clk_uart_baud0";
207         };
208
209         serial@12C10000 {
210                 clocks = <&clock 290>, <&clock 147>;
211                 clock-names = "uart", "clk_uart_baud0";
212         };
213
214         serial@12C20000 {
215                 clocks = <&clock 291>, <&clock 148>;
216                 clock-names = "uart", "clk_uart_baud0";
217         };
218
219         serial@12C30000 {
220                 clocks = <&clock 292>, <&clock 149>;
221                 clock-names = "uart", "clk_uart_baud0";
222         };
223
224         sata@122F0000 {
225                 compatible = "samsung,exynos5-sata-ahci";
226                 reg = <0x122F0000 0x1ff>;
227                 interrupts = <0 115 0>;
228                 clocks = <&clock 277>, <&clock 143>;
229                 clock-names = "sata", "sclk_sata";
230         };
231
232         sata-phy@12170000 {
233                 compatible = "samsung,exynos5-sata-phy";
234                 reg = <0x12170000 0x1ff>;
235         };
236
237         i2c_0: i2c@12C60000 {
238                 compatible = "samsung,s3c2440-i2c";
239                 reg = <0x12C60000 0x100>;
240                 interrupts = <0 56 0>;
241                 #address-cells = <1>;
242                 #size-cells = <0>;
243                 clocks = <&clock 294>;
244                 clock-names = "i2c";
245                 pinctrl-names = "default";
246                 pinctrl-0 = <&i2c0_bus>;
247         };
248
249         i2c_1: i2c@12C70000 {
250                 compatible = "samsung,s3c2440-i2c";
251                 reg = <0x12C70000 0x100>;
252                 interrupts = <0 57 0>;
253                 #address-cells = <1>;
254                 #size-cells = <0>;
255                 clocks = <&clock 295>;
256                 clock-names = "i2c";
257                 pinctrl-names = "default";
258                 pinctrl-0 = <&i2c1_bus>;
259         };
260
261         i2c_2: i2c@12C80000 {
262                 compatible = "samsung,s3c2440-i2c";
263                 reg = <0x12C80000 0x100>;
264                 interrupts = <0 58 0>;
265                 #address-cells = <1>;
266                 #size-cells = <0>;
267                 clocks = <&clock 296>;
268                 clock-names = "i2c";
269                 pinctrl-names = "default";
270                 pinctrl-0 = <&i2c2_bus>;
271         };
272
273         i2c_3: i2c@12C90000 {
274                 compatible = "samsung,s3c2440-i2c";
275                 reg = <0x12C90000 0x100>;
276                 interrupts = <0 59 0>;
277                 #address-cells = <1>;
278                 #size-cells = <0>;
279                 clocks = <&clock 297>;
280                 clock-names = "i2c";
281                 pinctrl-names = "default";
282                 pinctrl-0 = <&i2c3_bus>;
283         };
284
285         i2c_4: i2c@12CA0000 {
286                 compatible = "samsung,s3c2440-i2c";
287                 reg = <0x12CA0000 0x100>;
288                 interrupts = <0 60 0>;
289                 #address-cells = <1>;
290                 #size-cells = <0>;
291                 clocks = <&clock 298>;
292                 clock-names = "i2c";
293                 pinctrl-names = "default";
294                 pinctrl-0 = <&i2c4_bus>;
295         };
296
297         i2c_5: i2c@12CB0000 {
298                 compatible = "samsung,s3c2440-i2c";
299                 reg = <0x12CB0000 0x100>;
300                 interrupts = <0 61 0>;
301                 #address-cells = <1>;
302                 #size-cells = <0>;
303                 clocks = <&clock 299>;
304                 clock-names = "i2c";
305                 pinctrl-names = "default";
306                 pinctrl-0 = <&i2c5_bus>;
307         };
308
309         i2c_6: i2c@12CC0000 {
310                 compatible = "samsung,s3c2440-i2c";
311                 reg = <0x12CC0000 0x100>;
312                 interrupts = <0 62 0>;
313                 #address-cells = <1>;
314                 #size-cells = <0>;
315                 clocks = <&clock 300>;
316                 clock-names = "i2c";
317                 pinctrl-names = "default";
318                 pinctrl-0 = <&i2c6_bus>;
319         };
320
321         i2c_7: i2c@12CD0000 {
322                 compatible = "samsung,s3c2440-i2c";
323                 reg = <0x12CD0000 0x100>;
324                 interrupts = <0 63 0>;
325                 #address-cells = <1>;
326                 #size-cells = <0>;
327                 clocks = <&clock 301>;
328                 clock-names = "i2c";
329                 pinctrl-names = "default";
330                 pinctrl-0 = <&i2c7_bus>;
331         };
332
333         i2c_8: i2c@12CE0000 {
334                 compatible = "samsung,s3c2440-hdmiphy-i2c";
335                 reg = <0x12CE0000 0x1000>;
336                 interrupts = <0 64 0>;
337                 #address-cells = <1>;
338                 #size-cells = <0>;
339                 clocks = <&clock 302>;
340                 clock-names = "i2c";
341         };
342
343         i2c@121D0000 {
344                 compatible = "samsung,exynos5-sata-phy-i2c";
345                 reg = <0x121D0000 0x100>;
346                 #address-cells = <1>;
347                 #size-cells = <0>;
348                 clocks = <&clock 288>;
349                 clock-names = "i2c";
350         };
351
352         spi_0: spi@12d20000 {
353                 compatible = "samsung,exynos4210-spi";
354                 reg = <0x12d20000 0x100>;
355                 interrupts = <0 66 0>;
356                 dmas = <&pdma0 5
357                         &pdma0 4>;
358                 dma-names = "tx", "rx";
359                 #address-cells = <1>;
360                 #size-cells = <0>;
361                 clocks = <&clock 304>, <&clock 154>;
362                 clock-names = "spi", "spi_busclk0";
363                 pinctrl-names = "default";
364                 pinctrl-0 = <&spi0_bus>;
365         };
366
367         spi_1: spi@12d30000 {
368                 compatible = "samsung,exynos4210-spi";
369                 reg = <0x12d30000 0x100>;
370                 interrupts = <0 67 0>;
371                 dmas = <&pdma1 5
372                         &pdma1 4>;
373                 dma-names = "tx", "rx";
374                 #address-cells = <1>;
375                 #size-cells = <0>;
376                 clocks = <&clock 305>, <&clock 155>;
377                 clock-names = "spi", "spi_busclk0";
378                 pinctrl-names = "default";
379                 pinctrl-0 = <&spi1_bus>;
380         };
381
382         spi_2: spi@12d40000 {
383                 compatible = "samsung,exynos4210-spi";
384                 reg = <0x12d40000 0x100>;
385                 interrupts = <0 68 0>;
386                 dmas = <&pdma0 7
387                         &pdma0 6>;
388                 dma-names = "tx", "rx";
389                 #address-cells = <1>;
390                 #size-cells = <0>;
391                 clocks = <&clock 306>, <&clock 156>;
392                 clock-names = "spi", "spi_busclk0";
393                 pinctrl-names = "default";
394                 pinctrl-0 = <&spi2_bus>;
395         };
396
397         mmc_0: mmc@12200000 {
398                 compatible = "samsung,exynos5250-dw-mshc";
399                 interrupts = <0 75 0>;
400                 #address-cells = <1>;
401                 #size-cells = <0>;
402                 reg = <0x12200000 0x1000>;
403                 clocks = <&clock 280>, <&clock 139>;
404                 clock-names = "biu", "ciu";
405                 fifo-depth = <0x80>;
406                 status = "disabled";
407         };
408
409         mmc_1: mmc@12210000 {
410                 compatible = "samsung,exynos5250-dw-mshc";
411                 interrupts = <0 76 0>;
412                 #address-cells = <1>;
413                 #size-cells = <0>;
414                 reg = <0x12210000 0x1000>;
415                 clocks = <&clock 281>, <&clock 140>;
416                 clock-names = "biu", "ciu";
417                 fifo-depth = <0x80>;
418                 status = "disabled";
419         };
420
421         mmc_2: mmc@12220000 {
422                 compatible = "samsung,exynos5250-dw-mshc";
423                 interrupts = <0 77 0>;
424                 #address-cells = <1>;
425                 #size-cells = <0>;
426                 reg = <0x12220000 0x1000>;
427                 clocks = <&clock 282>, <&clock 141>;
428                 clock-names = "biu", "ciu";
429                 fifo-depth = <0x80>;
430                 status = "disabled";
431         };
432
433         mmc_3: mmc@12230000 {
434                 compatible = "samsung,exynos5250-dw-mshc";
435                 reg = <0x12230000 0x1000>;
436                 interrupts = <0 78 0>;
437                 #address-cells = <1>;
438                 #size-cells = <0>;
439                 clocks = <&clock 283>, <&clock 142>;
440                 clock-names = "biu", "ciu";
441                 fifo-depth = <0x80>;
442                 status = "disabled";
443         };
444
445         i2s0: i2s@03830000 {
446                 compatible = "samsung,s5pv210-i2s";
447                 status = "disabled";
448                 reg = <0x03830000 0x100>;
449                 dmas = <&pdma0 10
450                         &pdma0 9
451                         &pdma0 8>;
452                 dma-names = "tx", "rx", "tx-sec";
453                 clocks = <&clock_audss EXYNOS_I2S_BUS>,
454                         <&clock_audss EXYNOS_I2S_BUS>,
455                         <&clock_audss EXYNOS_SCLK_I2S>;
456                 clock-names = "iis", "i2s_opclk0", "i2s_opclk1";
457                 samsung,idma-addr = <0x03000000>;
458                 pinctrl-names = "default";
459                 pinctrl-0 = <&i2s0_bus>;
460         };
461
462         i2s1: i2s@12D60000 {
463                 compatible = "samsung,s3c6410-i2s";
464                 status = "disabled";
465                 reg = <0x12D60000 0x100>;
466                 dmas = <&pdma1 12
467                         &pdma1 11>;
468                 dma-names = "tx", "rx";
469                 clocks = <&clock 307>, <&clock 157>;
470                 clock-names = "iis", "i2s_opclk0";
471                 pinctrl-names = "default";
472                 pinctrl-0 = <&i2s1_bus>;
473         };
474
475         i2s2: i2s@12D70000 {
476                 compatible = "samsung,s3c6410-i2s";
477                 status = "disabled";
478                 reg = <0x12D70000 0x100>;
479                 dmas = <&pdma0 12
480                         &pdma0 11>;
481                 dma-names = "tx", "rx";
482                 clocks = <&clock 308>, <&clock 158>;
483                 clock-names = "iis", "i2s_opclk0";
484                 pinctrl-names = "default";
485                 pinctrl-0 = <&i2s2_bus>;
486         };
487
488         usb@12000000 {
489                 compatible = "samsung,exynos5250-dwusb3";
490                 clocks = <&clock 286>;
491                 clock-names = "usbdrd30";
492                 #address-cells = <1>;
493                 #size-cells = <1>;
494                 ranges;
495
496                 dwc3 {
497                         compatible = "synopsys,dwc3";
498                         reg = <0x12000000 0x10000>;
499                         interrupts = <0 72 0>;
500                         usb-phy = <&usb2_phy &usb3_phy>;
501                 };
502         };
503
504         usb3_phy: usbphy@12100000 {
505                 compatible = "samsung,exynos5250-usb3phy";
506                 reg = <0x12100000 0x100>;
507                 clocks = <&clock 1>, <&clock 286>;
508                 clock-names = "ext_xtal", "usbdrd30";
509                 #address-cells = <1>;
510                 #size-cells = <1>;
511                 ranges;
512
513                 usbphy-sys {
514                         reg = <0x10040704 0x8>;
515                 };
516         };
517
518         usb@12110000 {
519                 compatible = "samsung,exynos4210-ehci";
520                 reg = <0x12110000 0x100>;
521                 interrupts = <0 71 0>;
522
523                 clocks = <&clock 285>;
524                 clock-names = "usbhost";
525         };
526
527         usb@12120000 {
528                 compatible = "samsung,exynos4210-ohci";
529                 reg = <0x12120000 0x100>;
530                 interrupts = <0 71 0>;
531
532                 clocks = <&clock 285>;
533                 clock-names = "usbhost";
534         };
535
536         usb2_phy: usbphy@12130000 {
537                 compatible = "samsung,exynos5250-usb2phy";
538                 reg = <0x12130000 0x100>;
539                 clocks = <&clock 1>, <&clock 285>;
540                 clock-names = "ext_xtal", "usbhost";
541                 #address-cells = <1>;
542                 #size-cells = <1>;
543                 ranges;
544
545                 usbphy-sys {
546                         reg = <0x10040704 0x8>,
547                               <0x10050230 0x4>;
548                 };
549         };
550
551         amba {
552                 #address-cells = <1>;
553                 #size-cells = <1>;
554                 compatible = "arm,amba-bus";
555                 interrupt-parent = <&gic>;
556                 ranges;
557
558                 pdma0: pdma@121A0000 {
559                         compatible = "arm,pl330", "arm,primecell";
560                         reg = <0x121A0000 0x1000>;
561                         interrupts = <0 34 0>;
562                         clocks = <&clock 275>;
563                         clock-names = "apb_pclk";
564                         #dma-cells = <1>;
565                         #dma-channels = <8>;
566                         #dma-requests = <32>;
567                 };
568
569                 pdma1: pdma@121B0000 {
570                         compatible = "arm,pl330", "arm,primecell";
571                         reg = <0x121B0000 0x1000>;
572                         interrupts = <0 35 0>;
573                         clocks = <&clock 276>;
574                         clock-names = "apb_pclk";
575                         #dma-cells = <1>;
576                         #dma-channels = <8>;
577                         #dma-requests = <32>;
578                 };
579
580                 mdma0: mdma@10800000 {
581                         compatible = "arm,pl330", "arm,primecell";
582                         reg = <0x10800000 0x1000>;
583                         interrupts = <0 33 0>;
584                         clocks = <&clock 271>;
585                         clock-names = "apb_pclk";
586                         #dma-cells = <1>;
587                         #dma-channels = <8>;
588                         #dma-requests = <1>;
589                 };
590
591                 mdma1: mdma@11C10000 {
592                         compatible = "arm,pl330", "arm,primecell";
593                         reg = <0x11C10000 0x1000>;
594                         interrupts = <0 124 0>;
595                         clocks = <&clock 271>;
596                         clock-names = "apb_pclk";
597                         #dma-cells = <1>;
598                         #dma-channels = <8>;
599                         #dma-requests = <1>;
600                 };
601         };
602
603         gsc_0:  gsc@13e00000 {
604                 compatible = "samsung,exynos5-gsc";
605                 reg = <0x13e00000 0x1000>;
606                 interrupts = <0 85 0>;
607                 samsung,power-domain = <&pd_gsc>;
608                 clocks = <&clock 256>;
609                 clock-names = "gscl";
610         };
611
612         gsc_1:  gsc@13e10000 {
613                 compatible = "samsung,exynos5-gsc";
614                 reg = <0x13e10000 0x1000>;
615                 interrupts = <0 86 0>;
616                 samsung,power-domain = <&pd_gsc>;
617                 clocks = <&clock 257>;
618                 clock-names = "gscl";
619         };
620
621         gsc_2:  gsc@13e20000 {
622                 compatible = "samsung,exynos5-gsc";
623                 reg = <0x13e20000 0x1000>;
624                 interrupts = <0 87 0>;
625                 samsung,power-domain = <&pd_gsc>;
626                 clocks = <&clock 258>;
627                 clock-names = "gscl";
628         };
629
630         gsc_3:  gsc@13e30000 {
631                 compatible = "samsung,exynos5-gsc";
632                 reg = <0x13e30000 0x1000>;
633                 interrupts = <0 88 0>;
634                 samsung,power-domain = <&pd_gsc>;
635                 clocks = <&clock 259>;
636                 clock-names = "gscl";
637         };
638
639         hdmi {
640                 compatible = "samsung,exynos4212-hdmi";
641                 reg = <0x14530000 0x70000>;
642                 interrupts = <0 95 0>;
643                 clocks = <&clock 344>, <&clock 136>, <&clock 137>,
644                                 <&clock 159>, <&clock 1024>;
645                 clock-names = "hdmi", "sclk_hdmi", "sclk_pixel",
646                                 "sclk_hdmiphy", "mout_hdmi";
647         };
648
649         mixer {
650                 compatible = "samsung,exynos5250-mixer";
651                 reg = <0x14450000 0x10000>;
652                 interrupts = <0 94 0>;
653                 clocks = <&clock 343>, <&clock 136>;
654                 clock-names = "mixer", "sclk_hdmi";
655         };
656
657         dp_phy: video-phy@10040720 {
658                 compatible = "samsung,exynos5250-dp-video-phy";
659                 reg = <0x10040720 4>;
660                 #phy-cells = <0>;
661         };
662
663         dp-controller@145B0000 {
664                 clocks = <&clock 342>;
665                 clock-names = "dp";
666                 phys = <&dp_phy>;
667                 phy-names = "dp";
668         };
669
670         fimd@14400000 {
671                 clocks = <&clock 133>, <&clock 339>;
672                 clock-names = "sclk_fimd", "fimd";
673         };
674
675         adc: adc@12D10000 {
676                 compatible = "samsung,exynos-adc-v1";
677                 reg = <0x12D10000 0x100>, <0x10040718 0x4>;
678                 interrupts = <0 106 0>;
679                 clocks = <&clock 303>;
680                 clock-names = "adc";
681                 #io-channel-cells = <1>;
682                 io-channel-ranges;
683                 status = "disabled";
684         };
685 };