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