2 * Copyright 2016 Mylène Josserand
4 * Mylène Josserand <mylene.josserand@free-electrons.com>
6 * This file is dual-licensed: you can use it either under the terms
7 * of the GPL or the X11 license, at your option. Note that this dual
8 * licensing only applies to this file, and not this project as a
11 * a) This library is free software; you can redistribute it and/or
12 * modify it under the terms of the GNU General Public License as
13 * published by the Free Software Foundation; either version 2 of the
14 * License, or (at your option) any later version.
16 * This library is distributed in the hope that it will be useful,
17 * but WITHOUT ANY WARRANTY; without even the implied warranty of
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 * GNU General Public License for more details.
23 * b) Permission is hereby granted, free of charge, to any person
24 * obtaining a copy of this software and associated documentation
25 * files (the "Software"), to deal in the Software without
26 * restriction, including without limitation the rights to use,
27 * copy, modify, merge, publish, distribute, sublicense, and/or
28 * sell copies of the Software, and to permit persons to whom the
29 * Software is furnished to do so, subject to the following
32 * The above copyright notice and this permission notice shall be
33 * included in all copies or substantial portions of the Software.
35 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
36 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
37 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
38 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
39 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
40 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
41 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
42 * OTHER DEALINGS IN THE SOFTWARE.
45 #include <dt-bindings/clock/sun4i-a10-pll2.h>
46 #include <dt-bindings/dma/sun4i-a10.h>
47 #include <dt-bindings/pinctrl/sun4i-a10.h>
50 interrupt-parent = <&intc>;
60 compatible = "arm,cortex-a8";
72 * This is a dummy clock, to be used as placeholder on
73 * other mux clocks when a specific parent clock is not
74 * yet implemented. It should be dropped when the driver
79 compatible = "fixed-clock";
80 clock-frequency = <0>;
83 osc24M: clk@01c20050 {
85 compatible = "allwinner,sun4i-a10-osc-clk";
86 reg = <0x01c20050 0x4>;
87 clock-frequency = <24000000>;
88 clock-output-names = "osc24M";
92 compatible = "fixed-factor-clock";
97 clock-output-names = "osc3M";
102 compatible = "fixed-clock";
103 clock-frequency = <32768>;
104 clock-output-names = "osc32k";
109 compatible = "allwinner,sun4i-a10-pll1-clk";
110 reg = <0x01c20000 0x4>;
112 clock-output-names = "pll1";
117 compatible = "allwinner,sun5i-a13-pll2-clk";
118 reg = <0x01c20008 0x8>;
120 clock-output-names = "pll2-1x", "pll2-2x",
121 "pll2-4x", "pll2-8x";
126 compatible = "allwinner,sun4i-a10-pll3-clk";
127 reg = <0x01c20010 0x4>;
129 clock-output-names = "pll3";
133 compatible = "allwinner,sun4i-a10-pll3-2x-clk";
138 clock-output-names = "pll3-2x";
143 compatible = "allwinner,sun4i-a10-pll1-clk";
144 reg = <0x01c20018 0x4>;
146 clock-output-names = "pll4";
151 compatible = "allwinner,sun4i-a10-pll5-clk";
152 reg = <0x01c20020 0x4>;
154 clock-output-names = "pll5_ddr", "pll5_other";
159 compatible = "allwinner,sun4i-a10-pll6-clk";
160 reg = <0x01c20028 0x4>;
162 clock-output-names = "pll6_sata", "pll6_other", "pll6";
167 compatible = "allwinner,sun4i-a10-pll3-clk";
168 reg = <0x01c20030 0x4>;
170 clock-output-names = "pll7";
174 compatible = "allwinner,sun4i-a10-pll3-2x-clk";
179 clock-output-names = "pll7-2x";
185 compatible = "allwinner,sun4i-a10-cpu-clk";
186 reg = <0x01c20054 0x4>;
187 clocks = <&osc32k>, <&osc24M>, <&pll1>, <&dummy>;
188 clock-output-names = "cpu";
193 compatible = "allwinner,sun4i-a10-axi-clk";
194 reg = <0x01c20054 0x4>;
196 clock-output-names = "axi";
201 compatible = "allwinner,sun5i-a13-ahb-clk";
202 reg = <0x01c20054 0x4>;
203 clocks = <&axi>, <&cpu>, <&pll6 1>;
204 clock-output-names = "ahb";
206 * Use PLL6 as parent, instead of CPU/AXI
207 * which has rate changes due to cpufreq
209 assigned-clocks = <&ahb>;
210 assigned-clock-parents = <&pll6 1>;
213 apb0: apb0@01c20054 {
215 compatible = "allwinner,sun4i-a10-apb0-clk";
216 reg = <0x01c20054 0x4>;
218 clock-output-names = "apb0";
223 compatible = "allwinner,sun4i-a10-apb1-clk";
224 reg = <0x01c20058 0x4>;
225 clocks = <&osc24M>, <&pll6 1>, <&osc32k>;
226 clock-output-names = "apb1";
229 axi_gates: clk@01c2005c {
231 compatible = "allwinner,sun4i-a10-gates-clk";
232 reg = <0x01c2005c 0x4>;
235 clock-output-names = "axi_dram";
238 ahb_gates: clk@01c20060 {
240 compatible = "allwinner,sun5i-a13-ahb-gates-clk";
241 reg = <0x01c20060 0x8>;
243 clock-indices = <0>, <1>,
253 clock-output-names = "ahb_usbotg", "ahb_ehci",
254 "ahb_ohci", "ahb_ss", "ahb_dma",
255 "ahb_bist", "ahb_mmc0", "ahb_mmc1",
256 "ahb_mmc2", "ahb_nand",
257 "ahb_sdram", "ahb_emac", "ahb_spi0",
258 "ahb_spi1", "ahb_spi2",
259 "ahb_hstimer", "ahb_ve", "ahb_tve",
260 "ahb_lcd", "ahb_csi", "ahb_de_be",
261 "ahb_de_fe", "ahb_iep",
265 apb0_gates: clk@01c20068 {
267 compatible = "allwinner,sun4i-a10-gates-clk";
268 reg = <0x01c20068 0x4>;
270 clock-indices = <0>, <3>,
272 clock-output-names = "apb0_codec", "apb0_i2s0",
273 "apb0_pio", "apb0_ir";
276 apb1_gates: clk@01c2006c {
278 compatible = "allwinner,sun4i-a10-gates-clk";
279 reg = <0x01c2006c 0x4>;
281 clock-indices = <0>, <1>,
284 clock-output-names = "apb1_i2c0", "apb1_i2c1",
285 "apb1_i2c2", "apb1_uart1",
286 "apb1_uart2", "apb1_uart3";
289 nand_clk: clk@01c20080 {
291 compatible = "allwinner,sun4i-a10-mod0-clk";
292 reg = <0x01c20080 0x4>;
293 clocks = <&osc24M>, <&pll6 1>, <&pll5 1>;
294 clock-output-names = "nand";
297 ms_clk: clk@01c20084 {
299 compatible = "allwinner,sun4i-a10-mod0-clk";
300 reg = <0x01c20084 0x4>;
301 clocks = <&osc24M>, <&pll6 1>, <&pll5 1>;
302 clock-output-names = "ms";
305 mmc0_clk: clk@01c20088 {
307 compatible = "allwinner,sun4i-a10-mmc-clk";
308 reg = <0x01c20088 0x4>;
309 clocks = <&osc24M>, <&pll6 1>, <&pll5 1>;
310 clock-output-names = "mmc0",
315 mmc1_clk: clk@01c2008c {
317 compatible = "allwinner,sun4i-a10-mmc-clk";
318 reg = <0x01c2008c 0x4>;
319 clocks = <&osc24M>, <&pll6 1>, <&pll5 1>;
320 clock-output-names = "mmc1",
325 mmc2_clk: clk@01c20090 {
327 compatible = "allwinner,sun4i-a10-mmc-clk";
328 reg = <0x01c20090 0x4>;
329 clocks = <&osc24M>, <&pll6 1>, <&pll5 1>;
330 clock-output-names = "mmc2",
335 ts_clk: clk@01c20098 {
337 compatible = "allwinner,sun4i-a10-mod0-clk";
338 reg = <0x01c20098 0x4>;
339 clocks = <&osc24M>, <&pll6 1>, <&pll5 1>;
340 clock-output-names = "ts";
343 ss_clk: clk@01c2009c {
345 compatible = "allwinner,sun4i-a10-mod0-clk";
346 reg = <0x01c2009c 0x4>;
347 clocks = <&osc24M>, <&pll6 1>, <&pll5 1>;
348 clock-output-names = "ss";
351 spi0_clk: clk@01c200a0 {
353 compatible = "allwinner,sun4i-a10-mod0-clk";
354 reg = <0x01c200a0 0x4>;
355 clocks = <&osc24M>, <&pll6 1>, <&pll5 1>;
356 clock-output-names = "spi0";
359 spi1_clk: clk@01c200a4 {
361 compatible = "allwinner,sun4i-a10-mod0-clk";
362 reg = <0x01c200a4 0x4>;
363 clocks = <&osc24M>, <&pll6 1>, <&pll5 1>;
364 clock-output-names = "spi1";
367 spi2_clk: clk@01c200a8 {
369 compatible = "allwinner,sun4i-a10-mod0-clk";
370 reg = <0x01c200a8 0x4>;
371 clocks = <&osc24M>, <&pll6 1>, <&pll5 1>;
372 clock-output-names = "spi2";
375 ir0_clk: clk@01c200b0 {
377 compatible = "allwinner,sun4i-a10-mod0-clk";
378 reg = <0x01c200b0 0x4>;
379 clocks = <&osc24M>, <&pll6 1>, <&pll5 1>;
380 clock-output-names = "ir0";
383 i2s0_clk: clk@01c200b8 {
385 compatible = "allwinner,sun4i-a10-mod1-clk";
386 reg = <0x01c200b8 0x4>;
387 clocks = <&pll2 SUN4I_A10_PLL2_8X>,
388 <&pll2 SUN4I_A10_PLL2_4X>,
389 <&pll2 SUN4I_A10_PLL2_2X>,
390 <&pll2 SUN4I_A10_PLL2_1X>;
391 clock-output-names = "i2s0";
394 spdif_clk: clk@01c200c0 {
396 compatible = "allwinner,sun4i-a10-mod1-clk";
397 reg = <0x01c200c0 0x4>;
398 clocks = <&pll2 SUN4I_A10_PLL2_8X>,
399 <&pll2 SUN4I_A10_PLL2_4X>,
400 <&pll2 SUN4I_A10_PLL2_2X>,
401 <&pll2 SUN4I_A10_PLL2_1X>;
402 clock-output-names = "spdif";
405 usb_clk: clk@01c200cc {
408 compatible = "allwinner,sun5i-a13-usb-clk";
409 reg = <0x01c200cc 0x4>;
411 clock-output-names = "usb_ohci0", "usb_phy";
414 dram_gates: clk@01c20100 {
416 compatible = "nextthing,gr8-dram-gates-clk",
417 "allwinner,sun4i-a10-gates-clk";
418 reg = <0x01c20100 0x4>;
426 clock-output-names = "dram_ve",
434 de_be_clk: clk@01c20104 {
437 compatible = "allwinner,sun4i-a10-display-clk";
438 reg = <0x01c20104 0x4>;
439 clocks = <&pll3>, <&pll7>, <&pll5 1>;
440 clock-output-names = "de-be";
443 de_fe_clk: clk@01c2010c {
446 compatible = "allwinner,sun4i-a10-display-clk";
447 reg = <0x01c2010c 0x4>;
448 clocks = <&pll3>, <&pll7>, <&pll5 1>;
449 clock-output-names = "de-fe";
452 tcon_ch0_clk: clk@01c20118 {
455 compatible = "allwinner,sun4i-a10-tcon-ch0-clk";
456 reg = <0x01c20118 0x4>;
457 clocks = <&pll3>, <&pll7>, <&pll3x2>, <&pll7x2>;
458 clock-output-names = "tcon-ch0-sclk";
461 tcon_ch1_clk: clk@01c2012c {
463 compatible = "allwinner,sun4i-a10-tcon-ch1-clk";
464 reg = <0x01c2012c 0x4>;
465 clocks = <&pll3>, <&pll7>, <&pll3x2>, <&pll7x2>;
466 clock-output-names = "tcon-ch1-sclk";
469 codec_clk: clk@01c20140 {
471 compatible = "allwinner,sun4i-a10-codec-clk";
472 reg = <0x01c20140 0x4>;
473 clocks = <&pll2 SUN4I_A10_PLL2_1X>;
474 clock-output-names = "codec";
477 mbus_clk: clk@01c2015c {
479 compatible = "allwinner,sun5i-a13-mbus-clk";
480 reg = <0x01c2015c 0x4>;
481 clocks = <&osc24M>, <&pll6 1>, <&pll5 1>;
482 clock-output-names = "mbus";
487 compatible = "allwinner,sun5i-a13-display-engine";
488 allwinner,pipelines = <&fe0>;
492 compatible = "simple-bus";
493 #address-cells = <1>;
497 sram-controller@01c00000 {
498 compatible = "allwinner,sun4i-a10-sram-controller";
499 reg = <0x01c00000 0x30>;
500 #address-cells = <1>;
504 sram_a: sram@00000000 {
505 compatible = "mmio-sram";
506 reg = <0x00000000 0xc000>;
507 #address-cells = <1>;
509 ranges = <0 0x00000000 0xc000>;
512 sram_d: sram@00010000 {
513 compatible = "mmio-sram";
514 reg = <0x00010000 0x1000>;
515 #address-cells = <1>;
517 ranges = <0 0x00010000 0x1000>;
519 otg_sram: sram-section@0000 {
520 compatible = "allwinner,sun4i-a10-sram-d";
521 reg = <0x0000 0x1000>;
527 dma: dma-controller@01c02000 {
528 compatible = "allwinner,sun4i-a10-dma";
529 reg = <0x01c02000 0x1000>;
531 clocks = <&ahb_gates 6>;
536 compatible = "allwinner,sun4i-a10-nand";
537 reg = <0x01c03000 0x1000>;
539 clocks = <&ahb_gates 13>, <&nand_clk>;
540 clock-names = "ahb", "mod";
541 dmas = <&dma SUN4I_DMA_DEDICATED 3>;
544 #address-cells = <1>;
549 compatible = "allwinner,sun4i-a10-spi";
550 reg = <0x01c05000 0x1000>;
552 clocks = <&ahb_gates 20>, <&spi0_clk>;
553 clock-names = "ahb", "mod";
554 dmas = <&dma SUN4I_DMA_DEDICATED 27>,
555 <&dma SUN4I_DMA_DEDICATED 26>;
556 dma-names = "rx", "tx";
558 #address-cells = <1>;
563 compatible = "allwinner,sun4i-a10-spi";
564 reg = <0x01c06000 0x1000>;
566 clocks = <&ahb_gates 21>, <&spi1_clk>;
567 clock-names = "ahb", "mod";
568 dmas = <&dma SUN4I_DMA_DEDICATED 9>,
569 <&dma SUN4I_DMA_DEDICATED 8>;
570 dma-names = "rx", "tx";
572 #address-cells = <1>;
576 tve0: tv-encoder@01c0a000 {
577 compatible = "allwinner,sun4i-a10-tv-encoder";
578 reg = <0x01c0a000 0x1000>;
579 clocks = <&ahb_gates 34>;
580 resets = <&tcon_ch0_clk 0>;
584 #address-cells = <1>;
587 tve0_in_tcon0: endpoint@0 {
589 remote-endpoint = <&tcon0_out_tve0>;
594 tcon0: lcd-controller@01c0c000 {
595 compatible = "allwinner,sun5i-a13-tcon";
596 reg = <0x01c0c000 0x1000>;
598 resets = <&tcon_ch0_clk 1>;
600 clocks = <&ahb_gates 36>,
606 clock-output-names = "tcon-pixel-clock";
610 #address-cells = <1>;
614 #address-cells = <1>;
618 tcon0_in_be0: endpoint@0 {
620 remote-endpoint = <&be0_out_tcon0>;
625 #address-cells = <1>;
629 tcon0_out_tve0: endpoint@1 {
631 remote-endpoint = <&tve0_in_tcon0>;
638 compatible = "allwinner,sun5i-a13-mmc";
639 reg = <0x01c0f000 0x1000>;
640 clocks = <&ahb_gates 8>,
650 #address-cells = <1>;
655 compatible = "allwinner,sun5i-a13-mmc";
656 reg = <0x01c10000 0x1000>;
657 clocks = <&ahb_gates 9>,
667 #address-cells = <1>;
672 compatible = "allwinner,sun5i-a13-mmc";
673 reg = <0x01c11000 0x1000>;
674 clocks = <&ahb_gates 10>,
684 #address-cells = <1>;
688 usb_otg: usb@01c13000 {
689 compatible = "allwinner,sun4i-a10-musb";
690 reg = <0x01c13000 0x0400>;
691 clocks = <&ahb_gates 0>;
693 interrupt-names = "mc";
696 extcon = <&usbphy 0>;
697 allwinner,sram = <&otg_sram 1>;
703 usbphy: phy@01c13400 {
705 compatible = "allwinner,sun5i-a13-usb-phy";
706 reg = <0x01c13400 0x10 0x01c14800 0x4>;
707 reg-names = "phy_ctrl", "pmu1";
708 clocks = <&usb_clk 8>;
709 clock-names = "usb_phy";
710 resets = <&usb_clk 0>, <&usb_clk 1>;
711 reset-names = "usb0_reset", "usb1_reset";
715 ehci0: usb@01c14000 {
716 compatible = "allwinner,sun5i-a13-ehci", "generic-ehci";
717 reg = <0x01c14000 0x100>;
719 clocks = <&ahb_gates 1>;
725 ohci0: usb@01c14400 {
726 compatible = "allwinner,sun5i-a13-ohci", "generic-ohci";
727 reg = <0x01c14400 0x100>;
729 clocks = <&usb_clk 6>, <&ahb_gates 2>;
736 compatible = "allwinner,sun4i-a10-spi";
737 reg = <0x01c17000 0x1000>;
739 clocks = <&ahb_gates 22>, <&spi2_clk>;
740 clock-names = "ahb", "mod";
741 dmas = <&dma SUN4I_DMA_DEDICATED 29>,
742 <&dma SUN4I_DMA_DEDICATED 28>;
743 dma-names = "rx", "tx";
745 #address-cells = <1>;
749 intc: interrupt-controller@01c20400 {
750 compatible = "allwinner,sun4i-a10-ic";
751 reg = <0x01c20400 0x400>;
752 interrupt-controller;
753 #interrupt-cells = <1>;
756 pio: pinctrl@01c20800 {
757 compatible = "nextthing,gr8-pinctrl";
758 reg = <0x01c20800 0x400>;
760 clocks = <&apb0_gates 5>;
762 interrupt-controller;
763 #interrupt-cells = <3>;
766 i2c0_pins_a: i2c0@0 {
767 allwinner,pins = "PB0", "PB1";
768 allwinner,function = "i2c0";
769 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
770 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
773 i2c1_pins_a: i2c1@0 {
774 allwinner,pins = "PB15", "PB16";
775 allwinner,function = "i2c1";
776 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
777 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
780 i2c2_pins_a: i2c2@0 {
781 allwinner,pins = "PB17", "PB18";
782 allwinner,function = "i2c2";
783 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
784 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
787 i2s0_data_pins_a: i2s0-data@0 {
788 allwinner,pins = "PB6", "PB7", "PB8", "PB9";
789 allwinner,function = "i2s0";
790 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
791 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
794 i2s0_mclk_pins_a: i2s0-mclk@0 {
795 allwinner,pins = "PB5";
796 allwinner,function = "i2s0";
797 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
798 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
801 ir0_rx_pins_a: ir0@0 {
802 allwinner,pins = "PB4";
803 allwinner,function = "ir0";
804 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
805 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
808 lcd_rgb666_pins: lcd-rgb666@0 {
809 allwinner,pins = "PD2", "PD3", "PD4", "PD5", "PD6", "PD7",
810 "PD10", "PD11", "PD12", "PD13", "PD14", "PD15",
811 "PD18", "PD19", "PD20", "PD21", "PD22", "PD23",
812 "PD24", "PD25", "PD26", "PD27";
813 allwinner,function = "lcd0";
814 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
815 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
818 mmc0_pins_a: mmc0@0 {
819 allwinner,pins = "PF0", "PF1", "PF2", "PF3",
821 allwinner,function = "mmc0";
822 allwinner,drive = <SUN4I_PINCTRL_30_MA>;
823 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
826 nand_pins_a: nand-base0@0 {
827 allwinner,pins = "PC0", "PC1", "PC2",
828 "PC5", "PC8", "PC9", "PC10",
829 "PC11", "PC12", "PC13", "PC14",
831 allwinner,function = "nand0";
832 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
833 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
836 nand_cs0_pins_a: nand-cs@0 {
837 allwinner,pins = "PC4";
838 allwinner,function = "nand0";
839 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
840 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
843 nand_rb0_pins_a: nand-rb@0 {
844 allwinner,pins = "PC6";
845 allwinner,function = "nand0";
846 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
847 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
850 pwm0_pins_a: pwm0@0 {
851 allwinner,pins = "PB2";
852 allwinner,function = "pwm0";
853 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
854 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
858 allwinner,pins = "PG13";
859 allwinner,function = "pwm1";
860 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
861 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
864 spdif_tx_pins_a: spdif@0 {
865 allwinner,pins = "PB10";
866 allwinner,function = "spdif";
867 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
868 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
871 uart1_pins_a: uart1@1 {
872 allwinner,pins = "PG3", "PG4";
873 allwinner,function = "uart1";
874 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
875 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
878 uart1_cts_rts_pins_a: uart1-cts-rts@0 {
879 allwinner,pins = "PG5", "PG6";
880 allwinner,function = "uart1";
881 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
882 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
885 uart2_pins_a: uart2@1 {
886 allwinner,pins = "PD2", "PD3";
887 allwinner,function = "uart2";
888 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
889 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
892 uart2_cts_rts_pins_a: uart2-cts-rts@0 {
893 allwinner,pins = "PD4", "PD5";
894 allwinner,function = "uart2";
895 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
896 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
899 uart3_pins_a: uart3@1 {
900 allwinner,pins = "PG9", "PG10";
901 allwinner,function = "uart3";
902 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
903 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
906 uart3_cts_rts_pins_a: uart3-cts-rts@0 {
907 allwinner,pins = "PG11", "PG12";
908 allwinner,function = "uart3";
909 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
910 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
915 compatible = "allwinner,sun5i-a10s-pwm";
916 reg = <0x01c20e00 0xc>;
923 compatible = "allwinner,sun4i-a10-timer";
924 reg = <0x01c20c00 0x90>;
929 wdt: watchdog@01c20c90 {
930 compatible = "allwinner,sun4i-a10-wdt";
931 reg = <0x01c20c90 0x10>;
934 spdif: spdif@01c21000 {
935 #sound-dai-cells = <0>;
936 compatible = "allwinner,sun4i-a10-spdif";
937 reg = <0x01c21000 0x400>;
939 clocks = <&apb0_gates 1>, <&spdif_clk>;
940 clock-names = "apb", "spdif";
941 dmas = <&dma SUN4I_DMA_NORMAL 2>,
942 <&dma SUN4I_DMA_NORMAL 2>;
943 dma-names = "rx", "tx";
948 compatible = "allwinner,sun4i-a10-ir";
949 clocks = <&apb0_gates 6>, <&ir0_clk>;
950 clock-names = "apb", "ir";
952 reg = <0x01c21800 0x40>;
957 #sound-dai-cells = <0>;
958 compatible = "allwinner,sun4i-a10-i2s";
959 reg = <0x01c22400 0x400>;
961 clocks = <&apb0_gates 3>, <&i2s0_clk>;
962 clock-names = "apb", "mod";
963 dmas = <&dma SUN4I_DMA_NORMAL 3>,
964 <&dma SUN4I_DMA_NORMAL 3>;
965 dma-names = "rx", "tx";
969 lradc: lradc@01c22800 {
970 compatible = "allwinner,sun4i-a10-lradc-keys";
971 reg = <0x01c22800 0x100>;
976 codec: codec@01c22c00 {
977 #sound-dai-cells = <0>;
978 compatible = "allwinner,sun4i-a10-codec";
979 reg = <0x01c22c00 0x40>;
981 clocks = <&apb0_gates 0>, <&codec_clk>;
982 clock-names = "apb", "codec";
983 dmas = <&dma SUN4I_DMA_NORMAL 19>,
984 <&dma SUN4I_DMA_NORMAL 19>;
985 dma-names = "rx", "tx";
990 compatible = "allwinner,sun5i-a13-ts";
991 reg = <0x01c25000 0x100>;
993 #thermal-sensor-cells = <0>;
996 uart1: serial@01c28400 {
997 compatible = "snps,dw-apb-uart";
998 reg = <0x01c28400 0x400>;
1002 clocks = <&apb1_gates 17>;
1003 status = "disabled";
1006 uart2: serial@01c28800 {
1007 compatible = "snps,dw-apb-uart";
1008 reg = <0x01c28800 0x400>;
1012 clocks = <&apb1_gates 18>;
1013 status = "disabled";
1016 uart3: serial@01c28c00 {
1017 compatible = "snps,dw-apb-uart";
1018 reg = <0x01c28c00 0x400>;
1022 clocks = <&apb1_gates 19>;
1023 status = "disabled";
1026 i2c0: i2c@01c2ac00 {
1027 compatible = "allwinner,sun4i-a10-i2c";
1028 reg = <0x01c2ac00 0x400>;
1030 clocks = <&apb1_gates 0>;
1031 status = "disabled";
1032 #address-cells = <1>;
1036 i2c1: i2c@01c2b000 {
1037 compatible = "allwinner,sun4i-a10-i2c";
1038 reg = <0x01c2b000 0x400>;
1040 clocks = <&apb1_gates 1>;
1041 status = "disabled";
1042 #address-cells = <1>;
1046 i2c2: i2c@01c2b400 {
1047 compatible = "allwinner,sun4i-a10-i2c";
1048 reg = <0x01c2b400 0x400>;
1050 clocks = <&apb1_gates 2>;
1051 status = "disabled";
1052 #address-cells = <1>;
1057 compatible = "allwinner,sun5i-a13-hstimer";
1058 reg = <0x01c60000 0x1000>;
1059 interrupts = <82>, <83>;
1060 clocks = <&ahb_gates 28>;
1063 fe0: display-frontend@01e00000 {
1064 compatible = "allwinner,sun5i-a13-display-frontend";
1065 reg = <0x01e00000 0x20000>;
1067 clocks = <&ahb_gates 46>, <&de_fe_clk>,
1069 clock-names = "ahb", "mod",
1071 resets = <&de_fe_clk>;
1072 status = "disabled";
1075 #address-cells = <1>;
1079 #address-cells = <1>;
1083 fe0_out_be0: endpoint@0 {
1085 remote-endpoint = <&be0_in_fe0>;
1091 be0: display-backend@01e60000 {
1092 compatible = "allwinner,sun5i-a13-display-backend";
1093 reg = <0x01e60000 0x10000>;
1094 clocks = <&ahb_gates 44>, <&de_be_clk>,
1096 clock-names = "ahb", "mod",
1098 resets = <&de_be_clk>;
1099 status = "disabled";
1101 assigned-clocks = <&de_be_clk>;
1102 assigned-clock-rates = <300000000>;
1105 #address-cells = <1>;
1109 #address-cells = <1>;
1113 be0_in_fe0: endpoint@0 {
1115 remote-endpoint = <&fe0_out_be0>;
1120 #address-cells = <1>;
1124 be0_out_tcon0: endpoint@0 {
1126 remote-endpoint = <&tcon0_in_be0>;