GNU Linux-libre 4.9.331-gnu1
[releases.git] / arch / arm / boot / dts / s5pv210.dtsi
1 /*
2  * Samsung's S5PV210 SoC device tree source
3  *
4  * Copyright (c) 2013-2014 Samsung Electronics, Co. Ltd.
5  *
6  * Mateusz Krawczuk <m.krawczuk@partner.samsung.com>
7  * Tomasz Figa <t.figa@samsung.com>
8  *
9  * Samsung's S5PV210 SoC device nodes are listed in this file. S5PV210
10  * based board files can include this file and provide values for board specfic
11  * bindings.
12  *
13  * Note: This file does not include device nodes for all the controllers in
14  * S5PV210 SoC. As device tree coverage for S5PV210 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 <dt-bindings/clock/s5pv210.h>
23 #include <dt-bindings/clock/s5pv210-audss.h>
24
25 / {
26         #address-cells = <1>;
27         #size-cells = <1>;
28
29         aliases {
30                 csis0 = &csis0;
31                 fimc0 = &fimc0;
32                 fimc1 = &fimc1;
33                 fimc2 = &fimc2;
34                 i2c0 = &i2c0;
35                 i2c1 = &i2c1;
36                 i2c2 = &i2c2;
37                 i2s0 = &i2s0;
38                 i2s1 = &i2s1;
39                 i2s2 = &i2s2;
40                 pinctrl0 = &pinctrl0;
41                 spi0 = &spi0;
42                 spi1 = &spi1;
43         };
44
45         cpus {
46                 #address-cells = <1>;
47                 #size-cells = <0>;
48
49                 cpu@0 {
50                         device_type = "cpu";
51                         compatible = "arm,cortex-a8";
52                         reg = <0>;
53                 };
54         };
55
56         soc {
57                 compatible = "simple-bus";
58                 #address-cells = <1>;
59                 #size-cells = <1>;
60                 ranges;
61
62                 external-clocks {
63                         compatible = "simple-bus";
64                         #address-cells = <1>;
65                         #size-cells = <0>;
66
67                         xxti: oscillator@0 {
68                                 compatible = "fixed-clock";
69                                 reg = <0>;
70                                 clock-frequency = <0>;
71                                 clock-output-names = "xxti";
72                                 #clock-cells = <0>;
73                         };
74
75                         xusbxti: oscillator@1 {
76                                 compatible = "fixed-clock";
77                                 reg = <1>;
78                                 clock-frequency = <0>;
79                                 clock-output-names = "xusbxti";
80                                 #clock-cells = <0>;
81                         };
82                 };
83
84                 onenand: onenand@b0000000 {
85                         compatible = "samsung,s5pv210-onenand";
86                         reg = <0xb0600000 0x2000>,
87                                 <0xb0000000 0x20000>,
88                                 <0xb0040000 0x20000>;
89                         interrupt-parent = <&vic1>;
90                         interrupts = <31>;
91                         clocks = <&clocks CLK_NANDXL>, <&clocks DOUT_FLASH>;
92                         clock-names = "bus", "onenand";
93                         #address-cells = <1>;
94                         #size-cells = <1>;
95                         status = "disabled";
96                 };
97
98                 chipid@e0000000 {
99                         compatible = "samsung,s5pv210-chipid";
100                         reg = <0xe0000000 0x1000>;
101                 };
102
103                 clocks: clock-controller@e0100000 {
104                         compatible = "samsung,s5pv210-clock";
105                         reg = <0xe0100000 0x10000>;
106                         clock-names = "xxti", "xusbxti";
107                         clocks = <&xxti>, <&xusbxti>;
108                         #clock-cells = <1>;
109                 };
110
111                 pmu_syscon: syscon@e0108000 {
112                         compatible = "samsung-s5pv210-pmu", "syscon";
113                         reg = <0xe0108000 0x8000>;
114                 };
115
116                 pinctrl0: pinctrl@e0200000 {
117                         compatible = "samsung,s5pv210-pinctrl";
118                         reg = <0xe0200000 0x1000>;
119                         interrupt-parent = <&vic0>;
120                         interrupts = <30>;
121
122                         wakeup-interrupt-controller {
123                                 compatible = "samsung,exynos4210-wakeup-eint";
124                                 interrupts = <16>;
125                                 interrupt-parent = <&vic0>;
126                         };
127                 };
128
129                 pdma0: dma@e0900000 {
130                         compatible = "arm,pl330", "arm,primecell";
131                         reg = <0xe0900000 0x1000>;
132                         interrupt-parent = <&vic0>;
133                         interrupts = <19>;
134                         clocks = <&clocks CLK_PDMA0>;
135                         clock-names = "apb_pclk";
136                         #dma-cells = <1>;
137                         #dma-channels = <8>;
138                         #dma-requests = <32>;
139                 };
140
141                 pdma1: dma@e0a00000 {
142                         compatible = "arm,pl330", "arm,primecell";
143                         reg = <0xe0a00000 0x1000>;
144                         interrupt-parent = <&vic0>;
145                         interrupts = <20>;
146                         clocks = <&clocks CLK_PDMA1>;
147                         clock-names = "apb_pclk";
148                         #dma-cells = <1>;
149                         #dma-channels = <8>;
150                         #dma-requests = <32>;
151                 };
152
153                 spi0: spi@e1300000 {
154                         compatible = "samsung,s5pv210-spi";
155                         reg = <0xe1300000 0x1000>;
156                         interrupt-parent = <&vic1>;
157                         interrupts = <15>;
158                         dmas = <&pdma0 7>, <&pdma0 6>;
159                         dma-names = "tx", "rx";
160                         clocks = <&clocks SCLK_SPI0>, <&clocks CLK_SPI0>;
161                         clock-names = "spi", "spi_busclk0";
162                         pinctrl-names = "default";
163                         pinctrl-0 = <&spi0_bus>;
164                         #address-cells = <1>;
165                         #size-cells = <0>;
166                         status = "disabled";
167                 };
168
169                 spi1: spi@e1400000 {
170                         compatible = "samsung,s5pv210-spi";
171                         reg = <0xe1400000 0x1000>;
172                         interrupt-parent = <&vic1>;
173                         interrupts = <16>;
174                         dmas = <&pdma1 7>, <&pdma1 6>;
175                         dma-names = "tx", "rx";
176                         clocks = <&clocks SCLK_SPI1>, <&clocks CLK_SPI1>;
177                         clock-names = "spi", "spi_busclk0";
178                         pinctrl-names = "default";
179                         pinctrl-0 = <&spi1_bus>;
180                         #address-cells = <1>;
181                         #size-cells = <0>;
182                         status = "disabled";
183                 };
184
185                 keypad: keypad@e1600000 {
186                         compatible = "samsung,s5pv210-keypad";
187                         reg = <0xe1600000 0x1000>;
188                         interrupt-parent = <&vic2>;
189                         interrupts = <25>;
190                         clocks = <&clocks CLK_KEYIF>;
191                         clock-names = "keypad";
192                         status = "disabled";
193                 };
194
195                 i2c0: i2c@e1800000 {
196                         compatible = "samsung,s3c2440-i2c";
197                         reg = <0xe1800000 0x1000>;
198                         interrupt-parent = <&vic1>;
199                         interrupts = <14>;
200                         clocks = <&clocks CLK_I2C0>;
201                         clock-names = "i2c";
202                         pinctrl-names = "default";
203                         pinctrl-0 = <&i2c0_bus>;
204                         #address-cells = <1>;
205                         #size-cells = <0>;
206                         status = "disabled";
207                 };
208
209                 i2c2: i2c@e1a00000 {
210                         compatible = "samsung,s3c2440-i2c";
211                         reg = <0xe1a00000 0x1000>;
212                         interrupt-parent = <&vic1>;
213                         interrupts = <19>;
214                         clocks = <&clocks CLK_I2C2>;
215                         clock-names = "i2c";
216                         pinctrl-0 = <&i2c2_bus>;
217                         pinctrl-names = "default";
218                         #address-cells = <1>;
219                         #size-cells = <0>;
220                         status = "disabled";
221                 };
222
223                 clk_audss: clock-controller@eee10000 {
224                         compatible = "samsung,s5pv210-audss-clock";
225                         reg = <0xeee10000 0x1000>;
226                         clock-names = "hclk", "xxti",
227                                       "fout_epll",
228                                       "sclk_audio0";
229                         clocks = <&clocks DOUT_HCLKP>, <&xxti>,
230                                  <&clocks FOUT_EPLL>,
231                                  <&clocks SCLK_AUDIO0>;
232                         #clock-cells = <1>;
233                 };
234
235                 i2s0: i2s@eee30000 {
236                         compatible = "samsung,s5pv210-i2s";
237                         reg = <0xeee30000 0x1000>;
238                         interrupt-parent = <&vic2>;
239                         interrupts = <16>;
240                         dma-names = "rx", "tx", "tx-sec";
241                         dmas = <&pdma1 9>, <&pdma1 10>, <&pdma1 11>;
242                         clock-names = "iis",
243                                       "i2s_opclk0",
244                                       "i2s_opclk1";
245                         clocks = <&clk_audss CLK_I2S>,
246                                  <&clk_audss CLK_I2S>,
247                                  <&clk_audss CLK_DOUT_AUD_BUS>;
248                         samsung,idma-addr = <0xc0010000>;
249                         pinctrl-names = "default";
250                         pinctrl-0 = <&i2s0_bus>;
251                         #sound-dai-cells = <0>;
252                         status = "disabled";
253                 };
254
255                 i2s1: i2s@e2100000 {
256                         compatible = "samsung,s3c6410-i2s";
257                         reg = <0xe2100000 0x1000>;
258                         interrupt-parent = <&vic2>;
259                         interrupts = <17>;
260                         dma-names = "rx", "tx";
261                         dmas = <&pdma1 12>, <&pdma1 13>;
262                         clock-names = "iis", "i2s_opclk0";
263                         clocks = <&clocks CLK_I2S1>, <&clocks SCLK_AUDIO1>;
264                         pinctrl-names = "default";
265                         pinctrl-0 = <&i2s1_bus>;
266                         #sound-dai-cells = <0>;
267                         status = "disabled";
268                 };
269
270                 i2s2: i2s@e2a00000 {
271                         compatible = "samsung,s3c6410-i2s";
272                         reg = <0xe2a00000 0x1000>;
273                         interrupt-parent = <&vic2>;
274                         interrupts = <18>;
275                         dma-names = "rx", "tx";
276                         dmas = <&pdma1 14>, <&pdma1 15>;
277                         clock-names = "iis", "i2s_opclk0";
278                         clocks = <&clocks CLK_I2S2>, <&clocks SCLK_AUDIO2>;
279                         pinctrl-names = "default";
280                         pinctrl-0 = <&i2s2_bus>;
281                         #sound-dai-cells = <0>;
282                         status = "disabled";
283                 };
284
285                 pwm: pwm@e2500000 {
286                         compatible = "samsung,s5pc100-pwm";
287                         reg = <0xe2500000 0x1000>;
288                         interrupt-parent = <&vic0>;
289                         interrupts = <21>, <22>, <23>, <24>, <25>;
290                         clock-names = "timers";
291                         clocks = <&clocks CLK_PWM>;
292                         #pwm-cells = <3>;
293                 };
294
295                 watchdog: watchdog@e2700000 {
296                         compatible = "samsung,s3c2410-wdt";
297                         reg = <0xe2700000 0x1000>;
298                         interrupt-parent = <&vic0>;
299                         interrupts = <26>;
300                         clock-names = "watchdog";
301                         clocks = <&clocks CLK_WDT>;
302                 };
303
304                 rtc: rtc@e2800000 {
305                         compatible = "samsung,s3c6410-rtc";
306                         reg = <0xe2800000 0x100>;
307                         interrupt-parent = <&vic0>;
308                         interrupts = <28>, <29>;
309                         clocks = <&clocks CLK_RTC>;
310                         clock-names = "rtc";
311                         status = "disabled";
312                 };
313
314                 uart0: serial@e2900000 {
315                         compatible = "samsung,s5pv210-uart";
316                         reg = <0xe2900000 0x400>;
317                         interrupt-parent = <&vic1>;
318                         interrupts = <10>;
319                         clock-names = "uart", "clk_uart_baud0",
320                                         "clk_uart_baud1";
321                         clocks = <&clocks CLK_UART0>, <&clocks CLK_UART0>,
322                                         <&clocks SCLK_UART0>;
323                         status = "disabled";
324                 };
325
326                 uart1: serial@e2900400 {
327                         compatible = "samsung,s5pv210-uart";
328                         reg = <0xe2900400 0x400>;
329                         interrupt-parent = <&vic1>;
330                         interrupts = <11>;
331                         clock-names = "uart", "clk_uart_baud0",
332                                         "clk_uart_baud1";
333                         clocks = <&clocks CLK_UART1>, <&clocks CLK_UART1>,
334                                         <&clocks SCLK_UART1>;
335                         status = "disabled";
336                 };
337
338                 uart2: serial@e2900800 {
339                         compatible = "samsung,s5pv210-uart";
340                         reg = <0xe2900800 0x400>;
341                         interrupt-parent = <&vic1>;
342                         interrupts = <12>;
343                         clock-names = "uart", "clk_uart_baud0",
344                                         "clk_uart_baud1";
345                         clocks = <&clocks CLK_UART2>, <&clocks CLK_UART2>,
346                                         <&clocks SCLK_UART2>;
347                         status = "disabled";
348                 };
349
350                 uart3: serial@e2900c00 {
351                         compatible = "samsung,s5pv210-uart";
352                         reg = <0xe2900c00 0x400>;
353                         interrupt-parent = <&vic1>;
354                         interrupts = <13>;
355                         clock-names = "uart", "clk_uart_baud0",
356                                         "clk_uart_baud1";
357                         clocks = <&clocks CLK_UART3>, <&clocks CLK_UART3>,
358                                         <&clocks SCLK_UART3>;
359                         status = "disabled";
360                 };
361
362                 sdhci0: sdhci@eb000000 {
363                         compatible = "samsung,s3c6410-sdhci";
364                         reg = <0xeb000000 0x100000>;
365                         interrupt-parent = <&vic1>;
366                         interrupts = <26>;
367                         clock-names = "hsmmc", "mmc_busclk.0", "mmc_busclk.2";
368                         clocks = <&clocks CLK_HSMMC0>, <&clocks CLK_HSMMC0>,
369                                         <&clocks SCLK_MMC0>;
370                         status = "disabled";
371                 };
372
373                 sdhci1: sdhci@eb100000 {
374                         compatible = "samsung,s3c6410-sdhci";
375                         reg = <0xeb100000 0x100000>;
376                         interrupt-parent = <&vic1>;
377                         interrupts = <27>;
378                         clock-names = "hsmmc", "mmc_busclk.0", "mmc_busclk.2";
379                         clocks = <&clocks CLK_HSMMC1>, <&clocks CLK_HSMMC1>,
380                                         <&clocks SCLK_MMC1>;
381                         status = "disabled";
382                 };
383
384                 sdhci2: sdhci@eb200000 {
385                         compatible = "samsung,s3c6410-sdhci";
386                         reg = <0xeb200000 0x100000>;
387                         interrupt-parent = <&vic1>;
388                         interrupts = <28>;
389                         clock-names = "hsmmc", "mmc_busclk.0", "mmc_busclk.2";
390                         clocks = <&clocks CLK_HSMMC2>, <&clocks CLK_HSMMC2>,
391                                         <&clocks SCLK_MMC2>;
392                         status = "disabled";
393                 };
394
395                 sdhci3: sdhci@eb300000 {
396                         compatible = "samsung,s3c6410-sdhci";
397                         reg = <0xeb300000 0x100000>;
398                         interrupt-parent = <&vic3>;
399                         interrupts = <2>;
400                         clock-names = "hsmmc", "mmc_busclk.0", "mmc_busclk.3";
401                         clocks = <&clocks CLK_HSMMC3>, <&clocks CLK_HSMMC3>,
402                                         <&clocks SCLK_MMC3>;
403                         status = "disabled";
404                 };
405
406                 hsotg: hsotg@ec000000 {
407                         compatible = "samsung,s3c6400-hsotg";
408                         reg = <0xec000000 0x20000>;
409                         interrupt-parent = <&vic1>;
410                         interrupts = <24>;
411                         clocks = <&clocks CLK_USB_OTG>;
412                         clock-names = "otg";
413                         phy-names = "usb2-phy";
414                         phys = <&usbphy 0>;
415                         status = "disabled";
416                 };
417
418                 usbphy: usbphy@ec100000 {
419                         compatible = "samsung,s5pv210-usb2-phy";
420                         reg = <0xec100000 0x100>;
421                         samsung,pmureg-phandle = <&pmu_syscon>;
422                         clocks = <&clocks CLK_USB_OTG>, <&xusbxti>;
423                         clock-names = "phy", "ref";
424                         #phy-cells = <1>;
425                         status = "disabled";
426                 };
427
428                 ehci: ehci@ec200000 {
429                         compatible = "samsung,exynos4210-ehci";
430                         reg = <0xec200000 0x100>;
431                         interrupts = <23>;
432                         interrupt-parent = <&vic1>;
433                         clocks = <&clocks CLK_USB_HOST>;
434                         clock-names = "usbhost";
435                         #address-cells = <1>;
436                         #size-cells = <0>;
437                         status = "disabled";
438
439                         port@0 {
440                                 reg = <0>;
441                                 phys = <&usbphy 1>;
442                         };
443                 };
444
445                 ohci: ohci@ec300000 {
446                         compatible = "samsung,exynos4210-ohci";
447                         reg = <0xec300000 0x100>;
448                         interrupts = <23>;
449                         interrupt-parent = <&vic1>;
450                         clocks = <&clocks CLK_USB_HOST>;
451                         clock-names = "usbhost";
452                         #address-cells = <1>;
453                         #size-cells = <0>;
454                         status = "disabled";
455
456                         port@0 {
457                                 reg = <0>;
458                                 phys = <&usbphy 1>;
459                         };
460                 };
461
462                 mfc: codec@f1700000 {
463                         compatible = "samsung,mfc-v5";
464                         reg = <0xf1700000 0x10000>;
465                         interrupt-parent = <&vic2>;
466                         interrupts = <14>;
467                         clocks = <&clocks DOUT_MFC>, <&clocks CLK_MFC>;
468                         clock-names = "sclk_mfc", "mfc";
469                 };
470
471                 vic0: interrupt-controller@f2000000 {
472                         compatible = "arm,pl192-vic";
473                         interrupt-controller;
474                         reg = <0xf2000000 0x1000>;
475                         #interrupt-cells = <1>;
476                 };
477
478                 vic1: interrupt-controller@f2100000 {
479                         compatible = "arm,pl192-vic";
480                         interrupt-controller;
481                         reg = <0xf2100000 0x1000>;
482                         #interrupt-cells = <1>;
483                 };
484
485                 vic2: interrupt-controller@f2200000 {
486                         compatible = "arm,pl192-vic";
487                         interrupt-controller;
488                         reg = <0xf2200000 0x1000>;
489                         #interrupt-cells = <1>;
490                 };
491
492                 vic3: interrupt-controller@f2300000 {
493                         compatible = "arm,pl192-vic";
494                         interrupt-controller;
495                         reg = <0xf2300000 0x1000>;
496                         #interrupt-cells = <1>;
497                 };
498
499                 fimd: fimd@f8000000 {
500                         compatible = "samsung,exynos4210-fimd";
501                         interrupt-parent = <&vic2>;
502                         reg = <0xf8000000 0x20000>;
503                         interrupt-names = "fifo", "vsync", "lcd_sys";
504                         interrupts = <0>, <1>, <2>;
505                         clocks = <&clocks SCLK_FIMD>, <&clocks CLK_FIMD>;
506                         clock-names = "sclk_fimd", "fimd";
507                         status = "disabled";
508                 };
509
510                 g2d: g2d@fa000000 {
511                         compatible = "samsung,s5pv210-g2d";
512                         reg = <0xfa000000 0x1000>;
513                         interrupt-parent = <&vic2>;
514                         interrupts = <9>;
515                         clocks = <&clocks DOUT_G2D>, <&clocks CLK_G2D>;
516                         clock-names = "sclk_fimg2d", "fimg2d";
517                 };
518
519                 mdma1: mdma@fa200000 {
520                         compatible = "arm,pl330", "arm,primecell";
521                         reg = <0xfa200000 0x1000>;
522                         interrupt-parent = <&vic0>;
523                         interrupts = <18>;
524                         clocks = <&clocks CLK_MDMA>;
525                         clock-names = "apb_pclk";
526                         #dma-cells = <1>;
527                         #dma-channels = <8>;
528                         #dma-requests = <1>;
529                 };
530
531                 i2c1: i2c@fab00000 {
532                         compatible = "samsung,s3c2440-i2c";
533                         reg = <0xfab00000 0x1000>;
534                         interrupt-parent = <&vic2>;
535                         interrupts = <13>;
536                         clocks = <&clocks CLK_I2C1>;
537                         clock-names = "i2c";
538                         pinctrl-names = "default";
539                         pinctrl-0 = <&i2c1_bus>;
540                         #address-cells = <1>;
541                         #size-cells = <0>;
542                         status = "disabled";
543                 };
544
545                 camera: camera {
546                         compatible = "samsung,fimc", "simple-bus";
547                         pinctrl-names = "default";
548                         pinctrl-0 = <>;
549                         clocks = <&clocks SCLK_CAM0>, <&clocks SCLK_CAM1>;
550                         clock-names = "sclk_cam0", "sclk_cam1";
551                         #address-cells = <1>;
552                         #size-cells = <1>;
553                         ranges;
554
555                         clock_cam: clock-controller {
556                                 #clock-cells = <1>;
557                         };
558
559                         csis0: csis@fa600000 {
560                                 compatible = "samsung,s5pv210-csis";
561                                 reg = <0xfa600000 0x4000>;
562                                 interrupt-parent = <&vic2>;
563                                 interrupts = <29>;
564                                 clocks = <&clocks CLK_CSIS>,
565                                                 <&clocks SCLK_CSIS>;
566                                 clock-names = "clk_csis",
567                                                 "sclk_csis";
568                                 bus-width = <4>;
569                                 status = "disabled";
570                                 #address-cells = <1>;
571                                 #size-cells = <0>;
572                         };
573
574                         fimc0: fimc@fb200000 {
575                                 compatible = "samsung,s5pv210-fimc";
576                                 reg = <0xfb200000 0x1000>;
577                                 interrupts = <5>;
578                                 interrupt-parent = <&vic2>;
579                                 clocks = <&clocks CLK_FIMC0>,
580                                                 <&clocks SCLK_FIMC0>;
581                                 clock-names = "fimc",
582                                                 "sclk_fimc";
583                                 samsung,pix-limits = <4224 8192 1920 4224>;
584                                 samsung,mainscaler-ext;
585                                 samsung,cam-if;
586                         };
587
588                         fimc1: fimc@fb300000 {
589                                 compatible = "samsung,s5pv210-fimc";
590                                 reg = <0xfb300000 0x1000>;
591                                 interrupt-parent = <&vic2>;
592                                 interrupts = <6>;
593                                 clocks = <&clocks CLK_FIMC1>,
594                                                 <&clocks SCLK_FIMC1>;
595                                 clock-names = "fimc",
596                                                 "sclk_fimc";
597                                 samsung,pix-limits = <4224 8192 1920 4224>;
598                                 samsung,mainscaler-ext;
599                                 samsung,cam-if;
600                         };
601
602                         fimc2: fimc@fb400000 {
603                                 compatible = "samsung,s5pv210-fimc";
604                                 reg = <0xfb400000 0x1000>;
605                                 interrupt-parent = <&vic2>;
606                                 interrupts = <7>;
607                                 clocks = <&clocks CLK_FIMC2>,
608                                                 <&clocks SCLK_FIMC2>;
609                                 clock-names = "fimc",
610                                                 "sclk_fimc";
611                                 samsung,pix-limits = <4224 8192 1920 4224>;
612                                 samsung,mainscaler-ext;
613                                 samsung,lcd-wb;
614                         };
615                 };
616         };
617 };
618
619 #include "s5pv210-pinctrl.dtsi"