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