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