1 // SPDX-License-Identifier: GPL-2.0
3 * Samsung's S5PV210 SoC device tree source
5 * Copyright (c) 2013-2014 Samsung Electronics, Co. Ltd.
7 * Mateusz Krawczuk <m.krawczuk@partner.samsung.com>
8 * Tomasz Figa <t.figa@samsung.com>
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
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.
19 #include <dt-bindings/clock/s5pv210.h>
20 #include <dt-bindings/clock/s5pv210-audss.h>
50 compatible = "arm,cortex-a8";
56 compatible = "fixed-clock";
57 clock-frequency = <0>;
58 clock-output-names = "xxti";
62 xusbxti: oscillator-1 {
63 compatible = "fixed-clock";
64 clock-frequency = <0>;
65 clock-output-names = "xusbxti";
70 compatible = "simple-bus";
75 onenand: onenand@b0600000 {
76 compatible = "samsung,s5pv210-onenand";
77 reg = <0xb0600000 0x2000>,
80 interrupt-parent = <&vic1>;
82 clocks = <&clocks CLK_NANDXL>, <&clocks DOUT_FLASH>;
83 clock-names = "bus", "onenand";
90 compatible = "samsung,s5pv210-chipid";
91 reg = <0xe0000000 0x1000>;
94 clocks: clock-controller@e0100000 {
95 compatible = "samsung,s5pv210-clock";
96 reg = <0xe0100000 0x10000>;
97 clock-names = "xxti", "xusbxti";
98 clocks = <&xxti>, <&xusbxti>;
102 pmu_syscon: syscon@e0108000 {
103 compatible = "samsung-s5pv210-pmu", "syscon";
104 reg = <0xe0108000 0x8000>;
107 pinctrl0: pinctrl@e0200000 {
108 compatible = "samsung,s5pv210-pinctrl";
109 reg = <0xe0200000 0x1000>;
110 interrupt-parent = <&vic0>;
113 wakeup-interrupt-controller {
114 compatible = "samsung,s5pv210-wakeup-eint";
116 interrupt-parent = <&vic0>;
120 pdma0: dma-controller@e0900000 {
121 compatible = "arm,pl330", "arm,primecell";
122 reg = <0xe0900000 0x1000>;
123 interrupt-parent = <&vic0>;
125 clocks = <&clocks CLK_PDMA0>;
126 clock-names = "apb_pclk";
130 pdma1: dma-controller@e0a00000 {
131 compatible = "arm,pl330", "arm,primecell";
132 reg = <0xe0a00000 0x1000>;
133 interrupt-parent = <&vic0>;
135 clocks = <&clocks CLK_PDMA1>;
136 clock-names = "apb_pclk";
141 compatible = "samsung,s5pv210-adc";
142 reg = <0xe1700000 0x1000>;
143 interrupt-parent = <&vic2>;
144 interrupts = <23>, <24>;
145 clocks = <&clocks CLK_TSADC>;
147 #io-channel-cells = <1>;
152 compatible = "samsung,s5pv210-spi";
153 reg = <0xe1300000 0x1000>;
154 interrupt-parent = <&vic1>;
156 dmas = <&pdma0 7>, <&pdma0 6>;
157 dma-names = "tx", "rx";
158 clocks = <&clocks SCLK_SPI0>, <&clocks CLK_SPI0>;
159 clock-names = "spi", "spi_busclk0";
160 pinctrl-names = "default";
161 pinctrl-0 = <&spi0_bus>;
162 #address-cells = <1>;
168 compatible = "samsung,s5pv210-spi";
169 reg = <0xe1400000 0x1000>;
170 interrupt-parent = <&vic1>;
172 dmas = <&pdma1 7>, <&pdma1 6>;
173 dma-names = "tx", "rx";
174 clocks = <&clocks SCLK_SPI1>, <&clocks CLK_SPI1>;
175 clock-names = "spi", "spi_busclk0";
176 pinctrl-names = "default";
177 pinctrl-0 = <&spi1_bus>;
178 #address-cells = <1>;
183 keypad: keypad@e1600000 {
184 compatible = "samsung,s5pv210-keypad";
185 reg = <0xe1600000 0x1000>;
186 interrupt-parent = <&vic2>;
188 clocks = <&clocks CLK_KEYIF>;
189 clock-names = "keypad";
194 compatible = "samsung,s3c2440-i2c";
195 reg = <0xe1800000 0x1000>;
196 interrupt-parent = <&vic1>;
198 clocks = <&clocks CLK_I2C0>;
200 pinctrl-names = "default";
201 pinctrl-0 = <&i2c0_bus>;
202 #address-cells = <1>;
208 compatible = "samsung,s3c2440-i2c";
209 reg = <0xe1a00000 0x1000>;
210 interrupt-parent = <&vic1>;
212 clocks = <&clocks CLK_I2C2>;
214 pinctrl-0 = <&i2c2_bus>;
215 pinctrl-names = "default";
216 #address-cells = <1>;
221 clk_audss: clock-controller@eee10000 {
222 compatible = "samsung,s5pv210-audss-clock";
223 reg = <0xeee10000 0x1000>;
224 clock-names = "hclk", "xxti",
227 clocks = <&clocks DOUT_HCLKP>, <&xxti>,
229 <&clocks SCLK_AUDIO0>;
234 compatible = "samsung,s5pv210-i2s";
235 reg = <0xeee30000 0x1000>;
236 interrupt-parent = <&vic2>;
238 dma-names = "tx", "rx", "tx-sec";
239 dmas = <&pdma1 10>, <&pdma1 9>, <&pdma1 11>;
243 clocks = <&clk_audss CLK_I2S>,
244 <&clk_audss CLK_I2S>,
245 <&clk_audss CLK_DOUT_AUD_BUS>;
246 samsung,idma-addr = <0xc0010000>;
247 pinctrl-names = "default";
248 pinctrl-0 = <&i2s0_bus>;
249 #sound-dai-cells = <0>;
254 compatible = "samsung,s3c6410-i2s";
255 reg = <0xe2100000 0x1000>;
256 interrupt-parent = <&vic2>;
258 dma-names = "tx", "rx";
259 dmas = <&pdma1 13>, <&pdma1 12>;
260 clock-names = "iis", "i2s_opclk0";
261 clocks = <&clocks CLK_I2S1>, <&clocks SCLK_AUDIO1>;
262 pinctrl-names = "default";
263 pinctrl-0 = <&i2s1_bus>;
264 #sound-dai-cells = <0>;
269 compatible = "samsung,s3c6410-i2s";
270 reg = <0xe2a00000 0x1000>;
271 interrupt-parent = <&vic2>;
273 dma-names = "tx", "rx";
274 dmas = <&pdma1 15>, <&pdma1 14>;
275 clock-names = "iis", "i2s_opclk0";
276 clocks = <&clocks CLK_I2S2>, <&clocks SCLK_AUDIO2>;
277 pinctrl-names = "default";
278 pinctrl-0 = <&i2s2_bus>;
279 #sound-dai-cells = <0>;
284 compatible = "samsung,s5pc100-pwm";
285 reg = <0xe2500000 0x1000>;
286 interrupt-parent = <&vic0>;
287 interrupts = <21>, <22>, <23>, <24>, <25>;
288 clock-names = "timers";
289 clocks = <&clocks CLK_PWM>;
293 watchdog: watchdog@e2700000 {
294 compatible = "samsung,s3c6410-wdt";
295 reg = <0xe2700000 0x1000>;
296 interrupt-parent = <&vic0>;
298 clock-names = "watchdog";
299 clocks = <&clocks CLK_WDT>;
303 compatible = "samsung,s3c6410-rtc";
304 reg = <0xe2800000 0x100>;
305 interrupt-parent = <&vic0>;
306 interrupts = <28>, <29>;
307 clocks = <&clocks CLK_RTC>;
312 uart0: serial@e2900000 {
313 compatible = "samsung,s5pv210-uart";
314 reg = <0xe2900000 0x400>;
315 interrupt-parent = <&vic1>;
317 clock-names = "uart", "clk_uart_baud0",
319 clocks = <&clocks CLK_UART0>, <&clocks CLK_UART0>,
320 <&clocks SCLK_UART0>;
324 uart1: serial@e2900400 {
325 compatible = "samsung,s5pv210-uart";
326 reg = <0xe2900400 0x400>;
327 interrupt-parent = <&vic1>;
329 clock-names = "uart", "clk_uart_baud0",
331 clocks = <&clocks CLK_UART1>, <&clocks CLK_UART1>,
332 <&clocks SCLK_UART1>;
336 uart2: serial@e2900800 {
337 compatible = "samsung,s5pv210-uart";
338 reg = <0xe2900800 0x400>;
339 interrupt-parent = <&vic1>;
341 clock-names = "uart", "clk_uart_baud0",
343 clocks = <&clocks CLK_UART2>, <&clocks CLK_UART2>,
344 <&clocks SCLK_UART2>;
348 uart3: serial@e2900c00 {
349 compatible = "samsung,s5pv210-uart";
350 reg = <0xe2900c00 0x400>;
351 interrupt-parent = <&vic1>;
353 clock-names = "uart", "clk_uart_baud0",
355 clocks = <&clocks CLK_UART3>, <&clocks CLK_UART3>,
356 <&clocks SCLK_UART3>;
360 sdhci0: mmc@eb000000 {
361 compatible = "samsung,s3c6410-sdhci";
362 reg = <0xeb000000 0x100000>;
363 interrupt-parent = <&vic1>;
365 clock-names = "hsmmc", "mmc_busclk.0", "mmc_busclk.2";
366 clocks = <&clocks CLK_HSMMC0>, <&clocks CLK_HSMMC0>,
371 sdhci1: mmc@eb100000 {
372 compatible = "samsung,s3c6410-sdhci";
373 reg = <0xeb100000 0x100000>;
374 interrupt-parent = <&vic1>;
376 clock-names = "hsmmc", "mmc_busclk.0", "mmc_busclk.2";
377 clocks = <&clocks CLK_HSMMC1>, <&clocks CLK_HSMMC1>,
382 sdhci2: mmc@eb200000 {
383 compatible = "samsung,s3c6410-sdhci";
384 reg = <0xeb200000 0x100000>;
385 interrupt-parent = <&vic1>;
387 clock-names = "hsmmc", "mmc_busclk.0", "mmc_busclk.2";
388 clocks = <&clocks CLK_HSMMC2>, <&clocks CLK_HSMMC2>,
393 sdhci3: mmc@eb300000 {
394 compatible = "samsung,s3c6410-sdhci";
395 reg = <0xeb300000 0x100000>;
396 interrupt-parent = <&vic3>;
398 clock-names = "hsmmc", "mmc_busclk.0", "mmc_busclk.3";
399 clocks = <&clocks CLK_HSMMC3>, <&clocks CLK_HSMMC3>,
404 hsotg: hsotg@ec000000 {
405 compatible = "samsung,s3c6400-hsotg";
406 reg = <0xec000000 0x20000>;
407 interrupt-parent = <&vic1>;
409 clocks = <&clocks CLK_USB_OTG>;
411 phy-names = "usb2-phy";
416 usbphy: usbphy@ec100000 {
417 compatible = "samsung,s5pv210-usb2-phy";
418 reg = <0xec100000 0x100>;
419 samsung,pmureg-phandle = <&pmu_syscon>;
420 clocks = <&clocks CLK_USB_OTG>, <&xusbxti>;
421 clock-names = "phy", "ref";
427 compatible = "samsung,exynos4210-ehci";
428 reg = <0xec200000 0x100>;
430 interrupt-parent = <&vic1>;
431 clocks = <&clocks CLK_USB_HOST>;
432 clock-names = "usbhost";
439 compatible = "samsung,exynos4210-ohci";
440 reg = <0xec300000 0x100>;
442 interrupt-parent = <&vic1>;
443 clocks = <&clocks CLK_USB_HOST>;
444 clock-names = "usbhost";
450 mfc: codec@f1700000 {
451 compatible = "samsung,mfc-v5";
452 reg = <0xf1700000 0x10000>;
453 interrupt-parent = <&vic2>;
455 clocks = <&clocks DOUT_MFC>, <&clocks CLK_MFC>;
456 clock-names = "sclk_mfc", "mfc";
459 vic0: interrupt-controller@f2000000 {
460 compatible = "arm,pl192-vic";
461 interrupt-controller;
462 reg = <0xf2000000 0x1000>;
463 #interrupt-cells = <1>;
466 vic1: interrupt-controller@f2100000 {
467 compatible = "arm,pl192-vic";
468 interrupt-controller;
469 reg = <0xf2100000 0x1000>;
470 #interrupt-cells = <1>;
473 vic2: interrupt-controller@f2200000 {
474 compatible = "arm,pl192-vic";
475 interrupt-controller;
476 reg = <0xf2200000 0x1000>;
477 #interrupt-cells = <1>;
480 vic3: interrupt-controller@f2300000 {
481 compatible = "arm,pl192-vic";
482 interrupt-controller;
483 reg = <0xf2300000 0x1000>;
484 #interrupt-cells = <1>;
487 fimd: fimd@f8000000 {
488 compatible = "samsung,s5pv210-fimd";
489 interrupt-parent = <&vic2>;
490 reg = <0xf8000000 0x20000>;
491 interrupt-names = "fifo", "vsync", "lcd_sys";
492 interrupts = <0>, <1>, <2>;
493 clocks = <&clocks SCLK_FIMD>, <&clocks CLK_FIMD>;
494 clock-names = "sclk_fimd", "fimd";
499 compatible = "samsung,s5pv210-dmc";
500 reg = <0xf0000000 0x1000>;
504 compatible = "samsung,s5pv210-dmc";
505 reg = <0xf1400000 0x1000>;
509 compatible = "samsung,s5pv210-g2d";
510 reg = <0xfa000000 0x1000>;
511 interrupt-parent = <&vic2>;
513 clocks = <&clocks DOUT_G2D>, <&clocks CLK_G2D>;
514 clock-names = "sclk_fimg2d", "fimg2d";
517 mdma1: dma-controller@fa200000 {
518 compatible = "arm,pl330", "arm,primecell";
519 reg = <0xfa200000 0x1000>;
520 interrupt-parent = <&vic0>;
522 clocks = <&clocks CLK_MDMA>;
523 clock-names = "apb_pclk";
527 rotator: rotator@fa300000 {
528 compatible = "samsung,s5pv210-rotator";
529 reg = <0xfa300000 0x1000>;
530 interrupt-parent = <&vic2>;
532 clocks = <&clocks CLK_ROTATOR>;
533 clock-names = "rotator";
537 compatible = "samsung,s3c2440-i2c";
538 reg = <0xfab00000 0x1000>;
539 interrupt-parent = <&vic2>;
541 clocks = <&clocks CLK_I2C1>;
543 pinctrl-names = "default";
544 pinctrl-0 = <&i2c1_bus>;
545 #address-cells = <1>;
551 compatible = "samsung,fimc", "simple-bus";
552 pinctrl-names = "default";
554 clocks = <&clocks SCLK_CAM0>, <&clocks SCLK_CAM1>;
555 clock-names = "sclk_cam0", "sclk_cam1";
556 #address-cells = <1>;
559 clock-output-names = "cam_a_clkout", "cam_b_clkout";
562 csis0: csis@fa600000 {
563 compatible = "samsung,s5pv210-csis";
564 reg = <0xfa600000 0x4000>;
565 interrupt-parent = <&vic2>;
567 clocks = <&clocks CLK_CSIS>,
569 clock-names = "csis",
573 #address-cells = <1>;
577 fimc0: fimc@fb200000 {
578 compatible = "samsung,s5pv210-fimc";
579 reg = <0xfb200000 0x1000>;
581 interrupt-parent = <&vic2>;
582 clocks = <&clocks CLK_FIMC0>,
583 <&clocks SCLK_FIMC0>;
584 clock-names = "fimc",
586 samsung,pix-limits = <4224 8192 1920 4224>;
587 samsung,min-pix-alignment = <16 8>;
591 fimc1: fimc@fb300000 {
592 compatible = "samsung,s5pv210-fimc";
593 reg = <0xfb300000 0x1000>;
594 interrupt-parent = <&vic2>;
596 clocks = <&clocks CLK_FIMC1>,
597 <&clocks SCLK_FIMC1>;
598 clock-names = "fimc",
600 samsung,pix-limits = <4224 8192 1920 4224>;
601 samsung,min-pix-alignment = <1 1>;
602 samsung,mainscaler-ext;
607 fimc2: fimc@fb400000 {
608 compatible = "samsung,s5pv210-fimc";
609 reg = <0xfb400000 0x1000>;
610 interrupt-parent = <&vic2>;
612 clocks = <&clocks CLK_FIMC2>,
613 <&clocks SCLK_FIMC2>;
614 clock-names = "fimc",
616 samsung,pix-limits = <1920 8192 1280 1920>;
617 samsung,min-pix-alignment = <16 8>;
618 samsung,rotators = <0>;
623 jpeg_codec: jpeg-codec@fb600000 {
624 compatible = "samsung,s5pv210-jpeg";
625 reg = <0xfb600000 0x1000>;
626 interrupt-parent = <&vic2>;
628 clocks = <&clocks CLK_JPEG>;
629 clock-names = "jpeg";
634 #include "s5pv210-pinctrl.dtsi"