This adds preliminary support for Banana Pi M2U (and R40).

Unfortunately, I get the following error message in the end:

binman: Device tree 'u-boot.dtb' does not have a 'binman' node
Makefile:1091: recipe for target 'u-boot-sunxi-with-spl.bin' failed
make: *** [u-boot-sunxi-with-spl.bin] Error 1

The documentation says that it would also check for "binman" nodes in:

* <CONFIG_SYS_SOC>-u-boot.dtsi
* <CONFIG_SYS_CPU>-u-boot.dtsi
* <CONFIG_SYS_VENDOR>-u-boot.dtsi
* u-boot.dtsi

in that order.

The file "sunxi-u-boot.dtsi" would have contained a binman node.

When I enable debugging I see:

scripts/Makefile.lib:177: u_boot_dtsi_options:  
./arch/arm/dts/sunxi-u-boot.dtsi   

However:

$ grep -r sunxi-u-bo .
./arch/arm/dts/.sun8i-r40-bananapi-m2u.dtb.cmd:cmd_arch/arm/dts/sun8i-r40-bananapi-m2u.dtb
 := mkdir -p arch/arm/dts/ ; cat arch/arm/dts/sun8i-r40-bananapi-m2u.dts  | sed 
'/^\/ {$$/{x;s%$$%\#include \"./arch/arm/dts/sunxi-u-boot.dtsi\"%;G;}' | gcc -E 
-Wp,-MD,arch/arm/dts/.sun8i-r40-bananapi-m2u.dtb.d.pre.tmp -nostdinc 
-I./arch/arm/dts -I./arch/arm/dts/include -Iinclude -I./include 
-I./arch/arm/include -include ./include/linux/kconfig.h -D__ASSEMBLY__ -undef 
-D__DTS__ -x assembler-with-cpp -o 
arch/arm/dts/.sun8i-r40-bananapi-m2u.dtb.dts.tmp - ; dtc -O dtb -o 
arch/arm/dts/sun8i-r40-bananapi-m2u.dtb -b 0 -i arch/arm/dts/  -d 
arch/arm/dts/.sun8i-r40-bananapi-m2u.dtb.d.dtc.tmp 
arch/arm/dts/.sun8i-r40-bananapi-m2u.dtb.dts.tmp ; cat 
arch/arm/dts/.sun8i-r40-bananapi-m2u.dtb.d.pre.tmp 
arch/arm/dts/.sun8i-r40-bananapi-m2u.dtb.d.dtc.tmp > 
arch/arm/dts/.sun8i-r40-bananapi-m2u.dtb.d

What's up with it?
---
 arch/arm/dts/sun8i-r40-bananapi-m2u.dts |   41 +
 arch/arm/dts/sun8iw11p1-clk.dtsi        |  741 +++++++++++++
 arch/arm/dts/sun8iw11p1-pinctrl.dtsi    |  673 +++++++++++
 arch/arm/dts/sun8iw11p1.dtsi            | 1842 +++++++++++++++++++++++++++++++
 configs/BananapiM2U_defconfig           |   24 +
 5 files changed, 3321 insertions(+)
 create mode 100644 arch/arm/dts/sun8i-r40-bananapi-m2u.dts
 create mode 100644 arch/arm/dts/sun8iw11p1-clk.dtsi
 create mode 100644 arch/arm/dts/sun8iw11p1-pinctrl.dtsi
 create mode 100644 arch/arm/dts/sun8iw11p1.dtsi
 create mode 100644 configs/BananapiM2U_defconfig

diff --git a/arch/arm/dts/sun8i-r40-bananapi-m2u.dts 
b/arch/arm/dts/sun8i-r40-bananapi-m2u.dts
new file mode 100644
index 0000000..34ddba0
--- /dev/null
+++ b/arch/arm/dts/sun8i-r40-bananapi-m2u.dts
@@ -0,0 +1,41 @@
+/*
+ * Allwinner Technology CO., Ltd. sun8iw11p1 perf1 sata board.
+ *
+ */
+
+/dts-v1/;
+
+/memreserve/ 0x78000000 0x08000000; /* ion carvout heap revserve  : 
[0x78000000~0x80000000], size = 128M  */
+
+#include "sun8iw11p1.dtsi"
+
+/{
+        model = "Banana Pi M2 Ultra";
+        compatible = "sinovoip,bpi-m2u", "allwinner,sun8i-r40";
+
+       soc@01c00000 {
+       };
+
+       ion {
+               carvout{
+                       type = <2>;
+                       name = "carvout";
+                       base = <0x78000000>;
+                       size = <0x08000000>;
+               };
+       };
+
+        aliases {
+                serial0 = &uart0;
+        };
+
+        chosen {
+                stdout-path = "serial0:115200n8";
+        };
+};
+
+&uart0 {
+        pinctrl-names = "default";
+        pinctrl-0 = <&uart0_pins_a>;
+        status = "okay";
+};
diff --git a/arch/arm/dts/sun8iw11p1-clk.dtsi b/arch/arm/dts/sun8iw11p1-clk.dtsi
new file mode 100644
index 0000000..60ac82c
--- /dev/null
+++ b/arch/arm/dts/sun8iw11p1-clk.dtsi
@@ -0,0 +1,741 @@
+/{
+clocks {
+       compatible = "allwinner,sunxi-clk-init";
+       device_type = "clocks";
+       #address-cells = <2>;
+       #size-cells = <2>;
+       ranges;
+       reg = <0x0 0x01c20000 0x0 0x0324>;  /*cpux space*/
+
+/* register fixed rate clock*/
+               clk_losc_ext: losc_ext {
+                       #clock-cells = <0>;
+                       compatible = "allwinner,fixed-clock";
+                       clock-frequency = <32768>;
+                       clock-output-names = "losc_ext";
+               };
+
+               clk_losc_rc: losc_rc{
+                       #clock-cells = <0>;
+                       compatible = "allwinner,fixed-clock";
+                       clock-frequency = <2000000>;
+                       clock-output-names = "losc_rc";
+               };
+
+               clk_iosc: iosc {
+                       #clock-cells = <0>;
+                       compatible = "allwinner,fixed-clock";
+                       clock-frequency = <16000000>;
+                       clock-output-names = "iosc";
+               };
+
+               clk_hosc: hosc {
+                       #clock-cells = <0>;
+                       compatible = "allwinner,fixed-clock";
+                       clock-frequency = <24000000>;
+                       clock-output-names = "hosc";
+               };
+               clk_ext_clk: ext_clk {
+                       #clock-cells = <0>;
+                       compatible = "allwinner,fixed-clock";
+                       clock-frequency = <24000000>;
+                       clock-output-names = "ext_clk";
+               };
+/* register allwinner,sunxi-pll-clock */
+               clk_pll_cpu: pll_cpu {
+                       #clock-cells = <0>;
+                       compatible = "allwinner,sunxi-pll-clock";
+                       lock-mode = "new";
+                       clock-output-names = "pll_cpu";
+               };
+               clk_pll_audio: pll_audio {
+                       #clock-cells = <0>;
+                       compatible = "allwinner,sunxi-pll-clock";
+                       lock-mode = "new";
+                       assigned-clock-rates = <24576000>;
+                       clock-output-names = "pll_audio";
+               };
+               clk_pll_video0: pll_video0 {
+                       #clock-cells = <0>;
+                       compatible = "allwinner,sunxi-pll-clock";
+                       lock-mode = "new";
+                       clock-output-names = "pll_video0";
+               };
+               clk_pll_ve: pll_ve {
+                       #clock-cells = <0>;
+                       compatible = "allwinner,sunxi-pll-clock";
+                       lock-mode = "new";
+                       clock-output-names = "pll_ve";
+               };
+               clk_pll_ddr0: pll_ddr0 {
+                       #clock-cells = <0>;
+                       compatible = "allwinner,sunxi-pll-clock";
+                       lock-mode = "new";
+                       clock-output-names = "pll_ddr0";
+               };
+               clk_pll_periph0: pll_periph0 {
+                       #clock-cells = <0>;
+                       compatible = "allwinner,sunxi-pll-clock";
+                       assigned-clock-rates = <600000000>;
+                       lock-mode = "new";
+                       clock-output-names = "pll_periph0";
+               };
+               clk_pll_periph1: pll_periph1 {
+                       #clock-cells = <0>;
+                       compatible = "allwinner,sunxi-pll-clock";
+                       lock-mode = "new";
+                       clock-output-names = "pll_periph1";
+               };
+               clk_pll_video1: pll_video1 {
+                       #clock-cells = <0>;
+                       compatible = "allwinner,sunxi-pll-clock";
+                       lock-mode = "new";
+                       clock-output-names = "pll_video1";
+               };
+               clk_pll_sata: pll_sata {
+                       #clock-cells = <0>;
+                       compatible = "allwinner,sunxi-pll-clock";
+                       lock-mode = "new";
+                       clock-output-names = "pll_sata";
+               };
+               clk_pll_gpu: pll_gpu {
+                       #clock-cells = <0>;
+                       compatible = "allwinner,sunxi-pll-clock";
+                       lock-mode = "new";
+                       clock-output-names = "pll_gpu";
+               };
+               clk_pll_mipi: pll_mipi {
+                       #clock-cells = <0>;
+                       compatible = "allwinner,sunxi-pll-clock";
+                       lock-mode = "new";
+                       clock-output-names = "pll_mipi";
+               };
+               clk_pll_de: pll_de {
+                       #clock-cells = <0>;
+                       compatible = "allwinner,sunxi-pll-clock";
+                       lock-mode = "new";
+                       assigned-clock-rates = <297000000>;
+                       clock-output-names = "pll_de";
+               };
+               clk_pll_ddr1: pll_ddr1 {
+                       #clock-cells = <0>;
+                       compatible = "allwinner,sunxi-pll-clock";
+                       lock-mode = "new";
+                       clock-output-names = "pll_ddr1";
+               };
+/* register fixed factor clock*/
+               clk_pll_audiox8: pll_audiox8 {
+                       #clock-cells = <0>;
+                       compatible = "allwinner,fixed-factor-clock";
+                       clocks = <&clk_pll_audio>;
+                       clock-mult = <8>;
+                       clock-div = <1>;
+                       clock-output-names = "pll_audiox8";
+               };
+               clk_pll_audiox4: pll_audiox4 {
+                       #clock-cells = <0>;
+                       compatible = "allwinner,fixed-factor-clock";
+                       clocks = <&clk_pll_audio>;
+                       clock-mult = <8>;
+                       clock-div = <2>;
+                       clock-output-names = "pll_audiox4";
+               };
+               clk_pll_audiox2: pll_audiox2 {
+                       #clock-cells = <0>;
+                       compatible = "allwinner,fixed-factor-clock";
+                       clocks = <&clk_pll_audio>;
+                       clock-mult = <8>;
+                       clock-div = <4>;
+                       clock-output-names = "pll_audiox2";
+               };
+               clk_pll_periph0x2: pll_periph0x2 {
+                       #clock-cells = <0>;
+                       compatible = "allwinner,fixed-factor-clock";
+                       clocks = <&clk_pll_periph0>;
+                       clock-mult = <2>;
+                       clock-div = <1>;
+                       clock-output-names = "pll_periph0x2";
+               };
+               clk_pll_periph1x2: pll_periph1x2 {
+                       #clock-cells = <0>;
+                       compatible = "allwinner,fixed-factor-clock";
+                       clocks = <&clk_pll_periph1>;
+                       clock-mult = <2>;
+                       clock-div = <1>;
+                       clock-output-names = "pll_periph1x2";
+               };
+               clk_pll_video0x2: pll_video0x2 {
+                       #clock-cells = <0>;
+                       compatible = "allwinner,fixed-factor-clock";
+                       clocks = <&clk_pll_video0>;
+                       clock-mult = <2>;
+                       clock-div = <1>;
+                       clock-output-names = "pll_video0x2";
+               };
+               clk_pll_video1x2: pll_video1x2 {
+                       #clock-cells = <0>;
+                       compatible = "allwinner,fixed-factor-clock";
+                       clocks = <&clk_pll_video1>;
+                       clock-mult = <2>;
+                       clock-div = <1>;
+                       clock-output-names = "pll_video1x2";
+               };
+               clk_hosc_32k: hosc_32k {
+                       #clock-cells = <0>;
+                       compatible = "allwinner,fixed-factor-clock";
+                       clocks = <&clk_hosc>;
+                       clock-mult = <1>;
+                       clock-div = <750>;
+                       clock-output-names = "hosc_32k";
+               };
+               clk_hoscx2: hoscx2 {
+                       #clock-cells = <0>;
+                       compatible = "allwinner,fixed-factor-clock";
+                       clocks = <&clk_hosc>;
+                       clock-mult = <2>;
+                       clock-div = <1>;
+                       clock-output-names = "hoscx2";
+               };
+/* register allwinner,sunxi-periph-clock */
+               clk_losc: losc {
+                       #clock-cells = <0>;
+                       compatible = "allwinner,sunxi-periph-clock";
+                       assigned-clock-parents = <&clk_losc_ext>;
+                       clock-output-names = "losc";
+               };
+               clk_cpu: cpu {
+                       #clock-cells = <0>;
+                       compatible = "allwinner,sunxi-periph-clock";
+                       clock-output-names = "cpu";
+               };
+               clk_cpuapb: cpuapb {
+                       #clock-cells = <0>;
+                       compatible = "allwinner,sunxi-periph-clock";
+                       clock-output-names = "cpuapb";
+               };
+               clk_axi: axi {
+                       #clock-cells = <0>;
+                       compatible = "allwinner,sunxi-periph-clock";
+                       clock-output-names = "axi";
+               };
+               clk_pll_periphahb0: pll_periphahb0 {
+                       #clock-cells = <0>;
+                       compatible = "allwinner,sunxi-periph-clock";
+                       clock-output-names = "pll_periphahb0";
+               };
+               clk_ahb1: ahb1 {
+                       #clock-cells = <0>;
+                       compatible = "allwinner,sunxi-periph-clock";
+                       assigned-clock-parents = <&clk_pll_periphahb0>;
+                       assigned-clock-rates = <200000000>;
+                       clock-output-names = "ahb1";
+               };
+               clk_apb1: apb1 {
+                       #clock-cells = <0>;
+                       compatible = "allwinner,sunxi-periph-clock";
+                       assigned-clock-rates = <100000000>;
+                       clock-output-names = "apb1";
+               };
+               clk_apb2: apb2 {
+                       #clock-cells = <0>;
+                       compatible = "allwinner,sunxi-periph-clock";
+                       assigned-clock-parents = <&clk_hosc>;
+                       assigned-clock-rates = <24000000>;
+                       clock-output-names = "apb2";
+               };
+               clk_ths: ths {
+                       #clock-cells = <0>;
+                       compatible = "allwinner,sunxi-periph-clock";
+                       clock-output-names = "ths";
+               };
+               clk_nand: nand {
+                       #clock-cells = <0>;
+                       compatible = "allwinner,sunxi-periph-clock";
+                       clock-output-names = "nand";
+               };
+               clk_sdmmc0_mod: sdmmc0_mod {
+                       #clock-cells = <0>;
+                       compatible = "allwinner,sunxi-periph-clock";
+                       clock-output-names = "sdmmc0_mod";
+               };
+               clk_sdmmc0_bus: sdmmc0_bus {
+                       #clock-cells = <0>;
+                       compatible = "allwinner,sunxi-periph-clock";
+                       clock-output-names = "sdmmc0_bus";
+               };
+               clk_sdmmc0_rst: sdmmc0_rst {
+                       #clock-cells = <0>;
+                       compatible = "allwinner,sunxi-periph-clock";
+                       clock-output-names = "sdmmc0_rst";
+               };
+
+               clk_sdmmc1_mod: sdmmc1_mod {
+                       #clock-cells = <0>;
+                       compatible = "allwinner,sunxi-periph-clock";
+                       clock-output-names = "sdmmc1_mod";
+               };
+               clk_sdmmc1_bus: sdmmc1_bus {
+                       #clock-cells = <0>;
+                       compatible = "allwinner,sunxi-periph-clock";
+                       clock-output-names = "sdmmc1_bus";
+               };
+               clk_sdmmc1_rst: sdmmc1_rst {
+                       #clock-cells = <0>;
+                       compatible = "allwinner,sunxi-periph-clock";
+                       clock-output-names = "sdmmc1_rst";
+               };
+               clk_sdmmc2_mod: sdmmc2_mod {
+                       #clock-cells = <0>;
+                       compatible = "allwinner,sunxi-periph-clock";
+                       clock-output-names = "sdmmc2_mod";
+               };
+               clk_sdmmc2_bus: sdmmc2_bus {
+                       #clock-cells = <0>;
+                       compatible = "allwinner,sunxi-periph-clock";
+                       clock-output-names = "sdmmc2_bus";
+               };
+               clk_sdmmc2_rst: sdmmc2_rst {
+                       #clock-cells = <0>;
+                       compatible = "allwinner,sunxi-periph-clock";
+                       clock-output-names = "sdmmc2_rst";
+               };
+               clk_sdmmc3_mod: sdmmc3_mod {
+                       #clock-cells = <0>;
+                       compatible = "allwinner,sunxi-periph-clock";
+                       clock-output-names = "sdmmc3_mod";
+               };
+               clk_sdmmc3_bus: sdmmc3_bus {
+                       #clock-cells = <0>;
+                       compatible = "allwinner,sunxi-periph-clock";
+                       clock-output-names = "sdmmc3_bus";
+               };
+               clk_sdmmc3_rst: sdmmc3_rst {
+                       #clock-cells = <0>;
+                       compatible = "allwinner,sunxi-periph-clock";
+                       clock-output-names = "sdmmc3_rst";
+               };
+               clk_ts: ts {
+                       #clock-cells = <0>;
+                       compatible = "allwinner,sunxi-periph-clock";
+                       clock-output-names = "ts";
+               };
+               clk_ce: ce {
+                       #clock-cells = <0>;
+                       compatible = "allwinner,sunxi-periph-clock";
+                       clock-output-names = "ce";
+               };
+               clk_spi0: spi0 {
+                       #clock-cells = <0>;
+                       compatible = "allwinner,sunxi-periph-clock";
+                       clock-output-names = "spi0";
+               };
+               clk_spi1: spi1 {
+                       #clock-cells = <0>;
+                       compatible = "allwinner,sunxi-periph-clock";
+                       clock-output-names = "spi1";
+               };
+               clk_spi2: spi2 {
+                       #clock-cells = <0>;
+                       compatible = "allwinner,sunxi-periph-clock";
+                       clock-output-names = "spi2";
+               };
+               clk_spi3: spi3 {
+                       #clock-cells = <0>;
+                       compatible = "allwinner,sunxi-periph-clock";
+                       clock-output-names = "spi3";
+               };
+               clk_i2s0: i2s0 {
+                       #clock-cells = <0>;
+                       compatible = "allwinner,sunxi-periph-clock";
+                       clock-output-names = "i2s0";
+               };
+               clk_i2s1: i2s1 {
+                       #clock-cells = <0>;
+                       compatible = "allwinner,sunxi-periph-clock";
+                       clock-output-names = "i2s1";
+               };
+               clk_i2s2: i2s2 {
+                       #clock-cells = <0>;
+                       compatible = "allwinner,sunxi-periph-clock";
+                       clock-output-names = "i2s2";
+               };
+               clk_ac97: ac97 {
+                       #clock-cells = <0>;
+                       compatible = "allwinner,sunxi-periph-clock";
+                       clock-output-names = "ac97";
+               };
+               clk_spdif: spdif {
+                       #clock-cells = <0>;
+                       compatible = "allwinner,sunxi-periph-clock";
+                       clock-output-names = "spdif";
+               };
+               clk_keypad: keypad {
+                       #clock-cells = <0>;
+                       compatible = "allwinner,sunxi-periph-clock";
+                       clock-output-names = "keypad";
+               };
+               clk_sata: sata {
+                       #clock-cells = <0>;
+                       compatible = "allwinner,sunxi-periph-clock";
+                       clock-output-names = "sata";
+               };
+               clk_usbphy0: usbphy0 {
+                       #clock-cells = <0>;
+                       compatible = "allwinner,sunxi-periph-clock";
+                       clock-output-names = "usbphy0";
+               };
+               clk_usbphy1: usbphy1 {
+                       #clock-cells = <0>;
+                       compatible = "allwinner,sunxi-periph-clock";
+                       clock-output-names = "usbphy1";
+               };
+               clk_usbphy2: usbphy2 {
+                       #clock-cells = <0>;
+                       compatible = "allwinner,sunxi-periph-clock";
+                       clock-output-names = "usbphy2";
+               };
+               clk_usbohci0: usbohci0 {
+                       #clock-cells = <0>;
+                       compatible = "allwinner,sunxi-periph-clock";
+                       clock-output-names = "usbohci0";
+               };
+               clk_usbohci1: usbohci1 {
+                       #clock-cells = <0>;
+                       compatible = "allwinner,sunxi-periph-clock";
+                       clock-output-names = "usbohci1";
+               };
+               clk_usbohci2: usbohci2 {
+                       #clock-cells = <0>;
+                       compatible = "allwinner,sunxi-periph-clock";
+                       clock-output-names = "usbohci2";
+               };
+               clk_ir0: ir0 {
+                       #clock-cells = <0>;
+                       compatible = "allwinner,sunxi-periph-clock";
+                       clock-output-names = "ir0";
+               };
+               clk_ir1: ir1 {
+                       #clock-cells = <0>;
+                       compatible = "allwinner,sunxi-periph-clock";
+                       clock-output-names = "ir1";
+               };
+               clk_de: de {
+                       #clock-cells = <0>;
+                       compatible = "allwinner,sunxi-periph-clock";
+                       assigned-clock-parents = <&clk_pll_de>;
+                       assigned-clock-rates = <297000000>;
+                       clock-output-names = "de";
+               };
+               clk_de_mp: de_mp {
+                       #clock-cells = <0>;
+                       compatible = "allwinner,sunxi-periph-clock";
+                       assigned-clock-parents = <&clk_pll_de>;
+                       assigned-clock-rates = <297000000>;
+                       clock-output-names = "de_mp";
+               };
+               clk_tcon_top: tcon_top {
+                       #clock-cells = <0>;
+                       compatible = "allwinner,sunxi-periph-clock";
+                       clock-output-names = "tcon_top";
+               };
+               clk_tcon0: tcon0 {
+                       #clock-cells = <0>;
+                       compatible = "allwinner,sunxi-periph-clock";
+                       assigned-clock-parents = <&clk_pll_mipi>;
+                       clock-output-names = "tcon0";
+               };
+               clk_tcon1: tcon1 {
+                       #clock-cells = <0>;
+                       compatible = "allwinner,sunxi-periph-clock";
+                       assigned-clock-parents = <&clk_pll_video0>;
+                       clock-output-names = "tcon1";
+               };
+               clk_tcon_tv0: tcon_tv0 {
+                       #clock-cells = <0>;
+                       compatible = "allwinner,sunxi-periph-clock";
+                       assigned-clock-parents = <&clk_pll_video1>;
+                       clock-output-names = "tcon_tv0";
+               };
+               clk_tcon_tv1: tcon_tv1 {
+                       #clock-cells = <0>;
+                       compatible = "allwinner,sunxi-periph-clock";
+                       assigned-clock-parents = <&clk_pll_video1>;
+                       clock-output-names = "tcon_tv1";
+               };
+               clk_deinterlace: deinterlace {
+                       #clock-cells = <0>;
+                       compatible = "allwinner,sunxi-periph-clock";
+                       clock-output-names = "deinterlace";
+               };
+               clk_csi_s: csi_s {
+                       #clock-cells = <0>;
+                       compatible = "allwinner,sunxi-periph-clock";
+                       clock-output-names = "csi_s";
+               };
+               clk_csi0_m: csi0_m {
+                       #clock-cells = <0>;
+                       compatible = "allwinner,sunxi-periph-clock";
+                       clock-output-names = "csi0_m";
+               };
+               clk_csi1_m: csi1_m {
+                       #clock-cells = <0>;
+                       compatible = "allwinner,sunxi-periph-clock";
+                       clock-output-names = "csi1_m";
+               };
+               clk_ve: ve {
+                       #clock-cells = <0>;
+                       compatible = "allwinner,sunxi-periph-clock";
+                       clock-output-names = "ve";
+               };
+               clk_adda: adda {
+                       #clock-cells = <0>;
+                       compatible = "allwinner,sunxi-periph-clock";
+                       clock-output-names = "adda";
+               };
+               clk_addax4: addax4 {
+                       #clock-cells = <0>;
+                       compatible = "allwinner,sunxi-periph-clock";
+                       clock-output-names = "addax4";
+               };
+               clk_avs: avs {
+                       #clock-cells = <0>;
+                       compatible = "allwinner,sunxi-periph-clock";
+                       clock-output-names = "avs";
+               };
+               clk_hdmi: hdmi {
+                       #clock-cells = <0>;
+                       compatible = "allwinner,sunxi-periph-clock";
+                       assigned-clock-parents = <&clk_pll_video1>;
+                       clock-output-names = "hdmi";
+               };
+               clk_hdmi_slow: hdmi_slow {
+                       #clock-cells = <0>;
+                       compatible = "allwinner,sunxi-periph-clock";
+                       clock-output-names = "hdmi_slow";
+               };
+               clk_mbus: mbus {
+                       #clock-cells = <0>;
+                       compatible = "allwinner,sunxi-periph-clock";
+                       assigned-clock-parents = <&clk_pll_periph0x2>;
+                       assigned-clock-rates = <400000000>;
+                       clock-output-names = "mbus";
+               };
+               clk_mipidsi: mipidsi {
+                       #clock-cells = <0>;
+                       compatible = "allwinner,sunxi-periph-clock";
+                       clock-output-names = "mipidsi";
+               };
+               clk_tve_top: tve_top {
+                       #clock-cells = <0>;
+                       compatible = "allwinner,sunxi-periph-clock";
+                       clock-output-names = "tve_top";
+               };
+               clk_tve0: tve0 {
+                       #clock-cells = <0>;
+                       compatible = "allwinner,sunxi-periph-clock";
+                       assigned-clock-parents = <&clk_pll_video0>;
+                       clock-output-names = "tve0";
+               };
+               clk_tve1: tve1 {
+                       #clock-cells = <0>;
+                       compatible = "allwinner,sunxi-periph-clock";
+                       assigned-clock-parents = <&clk_pll_video0>;
+                       clock-output-names = "tve1";
+               };
+               clk_tvd_top: tvd_top {
+                       #clock-cells = <0>;
+                       compatible = "allwinner,sunxi-periph-clock";
+                       clock-output-names = "tvd_top";
+               };
+               clk_tvd0: tvd0 {
+                       #clock-cells = <0>;
+                       compatible = "allwinner,sunxi-periph-clock";
+                       assigned-clock-parents = <&clk_pll_video0>;
+                       clock-output-names = "tvd0";
+               };
+               clk_tvd1: tvd1 {
+                       #clock-cells = <0>;
+                       compatible = "allwinner,sunxi-periph-clock";
+                       assigned-clock-parents = <&clk_pll_video0>;
+                       clock-output-names = "tvd1";
+               };
+               clk_tvd2: tvd2 {
+                       #clock-cells = <0>;
+                       compatible = "allwinner,sunxi-periph-clock";
+                       assigned-clock-parents = <&clk_pll_video0>;
+                       clock-output-names = "tvd2";
+               };
+               clk_tvd3: tvd3 {
+                       #clock-cells = <0>;
+                       compatible = "allwinner,sunxi-periph-clock";
+                       assigned-clock-parents = <&clk_pll_video0>;
+                       clock-output-names = "tvd3";
+               };
+               clk_outa: outa {
+                       #clock-cells = <0>;
+                       compatible = "allwinner,sunxi-periph-clock";
+                       assigned-clock-parents = <&clk_losc>;
+                       clock-output-names = "outa";
+               };
+               clk_outb: outb {
+                       #clock-cells = <0>;
+                       compatible = "allwinner,sunxi-periph-clock";
+                       clock-output-names = "outb";
+               };
+               clk_gpu: gpu {
+                       #clock-cells = <0>;
+                       compatible = "allwinner,sunxi-periph-clock";
+                       clock-output-names = "gpu";
+               };
+               clk_usbehci0: usbehci0 {
+                       #clock-cells = <0>;
+                       compatible = "allwinner,sunxi-periph-clock";
+                       clock-output-names = "usbehci0";
+               };
+               clk_usbehci1: usbehci1 {
+                       #clock-cells = <0>;
+                       compatible = "allwinner,sunxi-periph-clock";
+                       clock-output-names = "usbehci1";
+               };
+               clk_usbehci2: usbehci2 {
+                       #clock-cells = <0>;
+                       compatible = "allwinner,sunxi-periph-clock";
+                       clock-output-names = "usbehci2";
+               };
+               clk_usbohci012m: usbohci012m {
+                       #clock-cells = <0>;
+                       compatible = "allwinner,sunxi-periph-clock";
+                       clock-output-names = "usbohci012m";
+               };
+               clk_usbohci112m: usbohci112m {
+                       #clock-cells = <0>;
+                       compatible = "allwinner,sunxi-periph-clock";
+                       clock-output-names = "usbohci112m";
+               };
+               clk_usbohci212m: usbohci212m {
+                       #clock-cells = <0>;
+                       compatible = "allwinner,sunxi-periph-clock";
+                       clock-output-names = "usbohci212m";
+               };
+               clk_usbotg: usbotg {
+                       #clock-cells = <0>;
+                       compatible = "allwinner,sunxi-periph-clock";
+                       clock-output-names = "usbotg";
+               };
+               clk_gmac: gmac {
+                       #clock-cells = <0>;
+                       compatible = "allwinner,sunxi-periph-clock";
+                       clock-output-names = "gmac";
+               };
+               clk_emac: emac {
+                       #clock-cells = <0>;
+                       compatible = "allwinner,sunxi-periph-clock";
+                       clock-output-names = "emac";
+               };
+               clk_sdram: sdram {
+                       #clock-cells = <0>;
+                       compatible = "allwinner,sunxi-periph-clock";
+                       clock-output-names = "sdram";
+               };
+               clk_dma: dma {
+                       #clock-cells = <0>;
+                       compatible = "allwinner,sunxi-periph-clock";
+                       clock-output-names = "dma";
+               };
+               clk_lvds: lvds {
+                       #clock-cells = <0>;
+                       compatible = "allwinner,sunxi-periph-clock";
+                       clock-output-names = "lvds";
+               };
+               clk_uart0: uart0 {
+                       #clock-cells = <0>;
+                       compatible = "allwinner,sunxi-periph-clock";
+                       clock-output-names = "uart0";
+               };
+               clk_uart1: uart1 {
+                       #clock-cells = <0>;
+                       compatible = "allwinner,sunxi-periph-clock";
+                       clock-output-names = "uart1";
+               };
+               clk_uart2: uart2 {
+                       #clock-cells = <0>;
+                       compatible = "allwinner,sunxi-periph-clock";
+                       clock-output-names = "uart2";
+               };
+               clk_uart3: uart3 {
+                       #clock-cells = <0>;
+                       compatible = "allwinner,sunxi-periph-clock";
+                       clock-output-names = "uart3";
+               };
+               clk_uart4: uart4 {
+                       #clock-cells = <0>;
+                       compatible = "allwinner,sunxi-periph-clock";
+                       clock-output-names = "uart4";
+               };
+               clk_uart5: uart5 {
+                       #clock-cells = <0>;
+                       compatible = "allwinner,sunxi-periph-clock";
+                       clock-output-names = "uart5";
+               };
+               clk_uart6: uart6 {
+                       #clock-cells = <0>;
+                       compatible = "allwinner,sunxi-periph-clock";
+                       clock-output-names = "uart6";
+               };
+               clk_uart7: uart7 {
+                       #clock-cells = <0>;
+                       compatible = "allwinner,sunxi-periph-clock";
+                       clock-output-names = "uart7";
+               };
+               clk_scr: scr {
+                       #clock-cells = <0>;
+                       compatible = "allwinner,sunxi-periph-clock";
+                       clock-output-names = "scr";
+               };
+               clk_twi0: twi0 {
+                       #clock-cells = <0>;
+                       compatible = "allwinner,sunxi-periph-clock";
+                       clock-output-names = "twi0";
+               };
+               clk_twi1: twi1 {
+                       #clock-cells = <0>;
+                       compatible = "allwinner,sunxi-periph-clock";
+                       clock-output-names = "twi1";
+               };
+               clk_twi2: twi2 {
+                       #clock-cells = <0>;
+                       compatible = "allwinner,sunxi-periph-clock";
+                       clock-output-names = "twi2";
+               };
+               clk_twi3: twi3 {
+                       #clock-cells = <0>;
+                       compatible = "allwinner,sunxi-periph-clock";
+                       clock-output-names = "twi3";
+               };
+               clk_twi4: twi4 {
+                       #clock-cells = <0>;
+                       compatible = "allwinner,sunxi-periph-clock";
+                       clock-output-names = "twi4";
+               };
+               clk_pio: pio {
+                       #clock-cells = <0>;
+                       compatible = "allwinner,sunxi-periph-clock";
+                       clock-output-names = "pio";
+               };
+               clk_ps20: ps20 {
+                       #clock-cells = <0>;
+                       compatible = "allwinner,sunxi-periph-clock";
+                       clock-output-names = "ps20";
+               };
+               clk_ps21: ps21 {
+                       #clock-cells = <0>;
+                       compatible = "allwinner,sunxi-periph-clock";
+                       clock-output-names = "ps21";
+               };
+               clk_can: can {
+                       #clock-cells = <0>;
+                       compatible = "allwinner,sunxi-periph-clock";
+                       clock-output-names = "can";
+               };
+       };/*clocks end*/
+};
diff --git a/arch/arm/dts/sun8iw11p1-pinctrl.dtsi 
b/arch/arm/dts/sun8iw11p1-pinctrl.dtsi
new file mode 100644
index 0000000..d7d5814
--- /dev/null
+++ b/arch/arm/dts/sun8iw11p1-pinctrl.dtsi
@@ -0,0 +1,673 @@
+/*
+ * Allwinner sun8iw11p1 pin config info.
+ */
+
+/ {
+       soc@01c00000{
+               pio: pinctrl@01c20800 {
+                       compatible = "allwinner,sun8iw11p1-pinctrl";
+                       reg = <0x0 0x01c20800 0x0 0x400>;
+                       interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>;
+                       device_type = "pio";
+                       clocks = <&clk_pio>;
+                       gpio-controller;
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+                       #size-cells = <0>;
+                       #gpio-cells = <6>;
+
+                       vdevice_pins_a: vdevice@0 {
+                               allwinner,pins = "PI20", "PI21";
+                               allwinner,function = "vdevice";
+                               allwinner,muxsel = <4>;
+                               allwinner,drive = <1>;
+                               allwinner,pull = <1>;
+                               allwinner,data = <1>;
+                       };
+
+                       ir0_pins_a: ir0@0 {
+                               allwinner,pins = "PB4";
+                               allwinner,function = "ir0";
+                               allwinner,muxsel = <2>;
+                               allwinner,drive = <2>;
+                               allwinner,pull = <1>;
+                       };
+
+                       ir1_pins_a: ir1@0 {
+                               allwinner,pins = "PB23";
+                               allwinner,function = "ir1";
+                               allwinner,muxsel = <3>;
+                               allwinner,drive = <2>;
+                               allwinner,pull = <1>;
+                       };
+
+                       uart0_pins_a: uart0@0 {
+                               allwinner,pins = "PB22", "PB23";
+                               allwinner,pname = "uart0_tx", "uart0_rx";
+                               allwinner,function = "uart0";
+                               allwinner,muxsel = <2>;
+                               allwinner,drive = <1>;
+                               allwinner,pull = <1>;
+                       };
+
+                       uart0_pins_b: uart0@1 {
+                               allwinner,pins = "PB22", "PB23";
+                               allwinner,function = "io_disabled";
+                               allwinner,muxsel = <7>;
+                               allwinner,drive = <1>;
+                               allwinner,pull = <1>;
+                       };
+
+                       uart1_pins_a: uart1@0 {
+                               allwinner,pins = "PA10", "PA11", "PA12", 
"PA13", "PA14", "PA15", "PA16", "PA17";
+                               allwinner,pname = "uart1_tx", "uart1_rx", 
"uart1_rts", "uart1_cts", "uart1_dtr", "uart1_dsr", "uart1_dcd", "uart1_ring";
+                               allwinner,function = "uart1";
+                               allwinner,muxsel = <4>;
+                               allwinner,drive = <1>;
+                               allwinner,pull = <1>;
+                       };
+
+                       uart1_pins_b: uart1@1 {
+                               allwinner,pins = "PA10", "PA11", "PA12", 
"PA13", "PA14", "PA15", "PA16", "PA17";
+                               allwinner,function = "io_disabled";
+                               allwinner,muxsel = <7>;
+                               allwinner,drive = <1>;
+                               allwinner,pull = <1>;
+                       };
+
+                       uart2_pins_a: uart2@0 {
+                               allwinner,pins = "PA2", "PA3", "PA0", "PA1";
+                               allwinner,pname = "uart2_tx", "uart2_rx", 
"uart2_rts", "uart2_cts";
+                               allwinner,function = "uart2";
+                               allwinner,muxsel = <4>;
+                               allwinner,drive = <1>;
+                               allwinner,pull = <1>;
+                       };
+
+                       uart2_pins_b: uart2@1 {
+                               allwinner,pins = "PA3", "PA2", "PA1", "PA0";
+                               allwinner,function = "io_disabled";
+                               allwinner,muxsel = <7>;
+                               allwinner,drive = <1>;
+                               allwinner,pull = <1>;
+                       };
+
+                       uart3_pins_a: uart3@0 {
+                               allwinner,pins = "PG6", "PG7", "PG8", "PG9";
+                               allwinner,pname = "uart3_tx", "uart3_rx", 
"uart3_rts", "uart3_cts";
+                               allwinner,function = "uart3";
+                               allwinner,muxsel = <4>;
+                               allwinner,drive = <1>;
+                               allwinner,pull = <1>;
+                       };
+
+                       uart3_pins_b: uart3@1 {
+                               allwinner,pins = "PG6", "PG7", "PG8", "PG9";
+                               allwinner,function = "io_disabled";
+                               allwinner,muxsel = <7>;
+                               allwinner,drive = <1>;
+                               allwinner,pull = <1>;
+                       };
+
+                       uart4_pins_a: uart4@0 {
+                               allwinner,pins = "PG10", "PG11";
+                               allwinner,pname = "uart4_tx", "uart4_rx";
+                               allwinner,function = "uart4";
+                               allwinner,muxsel = <4>;
+                               allwinner,drive = <1>;
+                               allwinner,pull = <1>;
+                       };
+
+                       uart4_pins_b: uart4@1 {
+                               allwinner,pins = "PG10", "PG11";
+                               allwinner,function = "io_disabled";
+                               allwinner,muxsel = <7>;
+                               allwinner,drive = <1>;
+                               allwinner,pull = <1>;
+                       };
+
+                       uart5_pins_a: uart5@0 {
+                               allwinner,pins = "PH6", "PH7";
+                               allwinner,pname = "uart5_tx", "uart5_rx";
+                               allwinner,function = "uart5";
+                               allwinner,muxsel = <4>;
+                               allwinner,drive = <1>;
+                               allwinner,pull = <1>;
+                       };
+
+                       uart5_pins_b: uart5@1 {
+                               allwinner,pins = "PH6", "PH7";
+                               allwinner,function = "io_disabled";
+                               allwinner,muxsel = <3>;
+                               allwinner,drive = <1>;
+                               allwinner,pull = <1>;
+                       };
+
+                       uart6_pins_a: uart6@0 {
+                               allwinner,pins = "PA12", "PA13";
+                               allwinner,pname = "uart6_tx", "uart6_rx";
+                               allwinner,function = "uart6";
+                               allwinner,muxsel = <3>;
+                               allwinner,drive = <1>;
+                               allwinner,pull = <1>;
+                       };
+
+                       uart6_pins_b: uart6@1 {
+                               allwinner,pins = "PA12", "PA13";
+                               allwinner,function = "io_disabled";
+                               allwinner,muxsel = <7>;
+                               allwinner,drive = <1>;
+                               allwinner,pull = <1>;
+                       };
+
+                       uart7_pins_a: uart7@0 {
+                               allwinner,pins = "PA14", "PA15";
+                               allwinner,pname = "uart7_tx", "uart7_rx";
+                               allwinner,function = "uart7";
+                               allwinner,muxsel = <3>;
+                               allwinner,drive = <1>;
+                               allwinner,pull = <1>;
+                       };
+
+                       uart7_pins_b: uart7@1 {
+                               allwinner,pins = "PA14", "PA15";
+                               allwinner,function = "io_disabled";
+                               allwinner,muxsel = <7>;
+                               allwinner,drive = <1>;
+                               allwinner,pull = <1>;
+                       };
+
+                       can0_pins_a: can0@0 {
+                               allwinner,pins = "PH20", "PH21";
+                               allwinner,pname = "can0_tx", "can0_rx";
+                               allwinner,function = "can0";
+                               allwinner,muxsel = <4>;
+                               allwinner,drive = <1>;
+                               allwinner,pull = <0>;
+                       };
+
+                       can0_pins_b: can0@1 {
+                               allwinner,pins = "PH20", "PH21";
+                               allwinner,function = "io_disabled";
+                               allwinner,muxsel = <7>;
+                               allwinner,drive = <1>;
+                               allwinner,pull = <0>;
+                       };
+
+                       twi0_pins_a: twi0@0 {
+                               allwinner,pins = "PB0", "PB1";
+                               allwinner,pname = "twi0_scl", "twi0_sda";
+                               allwinner,function = "twi0";
+                               allwinner,muxsel = <2>;
+                               allwinner,drive = <1>;
+                               allwinner,pull = <0>;
+                       };
+
+                       twi0_pins_b: twi0@1 {
+                               allwinner,pins = "PB0", "PB1";
+                               allwinner,function = "io_disabled";
+                               allwinner,muxsel = <7>;
+                               allwinner,drive = <1>;
+                               allwinner,pull = <0>;
+                       };
+
+                       twi1_pins_a: twi1@0 {
+                               allwinner,pins = "PB18", "PB19";
+                               allwinner,pname = "twi1_scl", "twi1_sda";
+                               allwinner,function = "twi1";
+                               allwinner,muxsel = <2>;
+                               allwinner,drive = <1>;
+                               allwinner,pull = <0>;
+                       };
+
+                       twi1_pins_b: twi1@1 {
+                               allwinner,pins = "PB18", "PB19";
+                               allwinner,function = "io_disabled";
+                               allwinner,muxsel = <7>;
+                               allwinner,drive = <1>;
+                               allwinner,pull = <0>;
+                       };
+
+                       twi2_pins_a: twi2@0 {
+                               allwinner,pins = "PB20", "PB21";
+                               allwinner,pname = "twi2_scl", "twi2_sda";
+                               allwinner,function = "twi2";
+                               allwinner,muxsel = <2>;
+                               allwinner,drive = <1>;
+                               allwinner,pull = <0>;
+                       };
+
+                       twi2_pins_b: twi2@1 {
+                               allwinner,pins = "PB20", "PB21";
+                               allwinner,function = "io_disabled";
+                               allwinner,muxsel = <7>;
+                               allwinner,drive = <1>;
+                               allwinner,pull = <0>;
+                       };
+
+                       twi3_pins_a: twi3@0 {
+                               allwinner,pins = "PI0", "PI1";
+                               allwinner,pname = "twi3_scl", "twi3_sda";
+                               allwinner,function = "twi3";
+                               allwinner,muxsel = <3>;
+                               allwinner,drive = <1>;
+                               allwinner,pull = <0>;
+                       };
+
+                       twi3_pins_b: twi3@1 {
+                               allwinner,pins = "PI0", "PI1";
+                               allwinner,function = "io_disabled";
+                               allwinner,muxsel = <7>;
+                               allwinner,drive = <1>;
+                               allwinner,pull = <0>;
+                       };
+
+                       twi4_pins_a: twi4@0 {
+                               allwinner,pins = "PI2", "PI3";
+                               allwinner,pname = "twi4_scl", "twi4_sda";
+                               allwinner,function = "twi4";
+                               allwinner,muxsel = <3>;
+                               allwinner,drive = <1>;
+                               allwinner,pull = <0>;
+                       };
+
+                       twi4_pins_b: twi4@1 {
+                               allwinner,pins = "PI2", "PI3";
+                               allwinner,function = "io_disabled";
+                               allwinner,muxsel = <7>;
+                               allwinner,drive = <1>;
+                               allwinner,pull = <0>;
+                       };
+
+                       spi0_pins_a: spi0@0 {
+                               allwinner,pins = "PC0", "PC1", "PC2";
+                               allwinner,pname = "spi0_mosi", "spi0_miso", 
"spi0_sclk";
+                               allwinner,function = "spi0";
+                               allwinner,muxsel = <3>;
+                               allwinner,drive = <1>;
+                               allwinner,pull = <0>;
+                       };
+
+                       spi0_pins_b: spi0@1 {
+                               allwinner,pins = "PC23";
+                               allwinner,pname = "spi0_cs0";
+                               allwinner,function = "spi0";
+                               allwinner,muxsel = <3>;
+                               allwinner,drive = <1>;
+                               allwinner,pull = <1>;   // only CS should be 
pulled up
+                       };
+
+                       spi0_pins_c: spi0@2 {
+                               allwinner,pins = "PI14";
+                               allwinner,pname = "spi0_cs1";
+                               allwinner,function = "spi0";
+                               allwinner,muxsel = <2>;
+                               allwinner,drive = <1>;
+                               allwinner,pull = <1>;   // only CS should be 
pulled up
+                       };
+
+
+
+                       spi0_pins_d: spi0@3 {
+                               allwinner,pins = "PC0", "PC1", "PC2", "PC23", 
"PI14";
+                               allwinner,function = "io_disabled";
+                               allwinner,muxsel = <7>;
+                               allwinner,drive = <1>;
+                               allwinner,pull = <0>;
+                       };
+
+                       spi1_pins_a: spi1@0 {
+                               allwinner,pins = "PA2", "PA3", "PA1";
+                               allwinner,pname = "spi1_mosi", "spi1_miso", 
"spi1_sclk";
+                               allwinner,function = "spi1";
+                               allwinner,muxsel = <3>;
+                               allwinner,drive = <1>;
+                               allwinner,pull = <0>;
+                       };
+
+                       spi1_pins_b: spi1@1 {
+                               allwinner,pins = "PA0", "PA4";
+                               allwinner,pname = "spi1_cs0", "spi1_cs1";
+                               allwinner,function = "spi1";
+                               allwinner,muxsel = <3>;
+                               allwinner,drive = <1>;
+                               allwinner,pull = <1>;   // only CS should be 
pulled up
+                       };
+
+                       spi1_pins_c: spi1@2 {
+                               allwinner,pins = "PA2", "PA3", "PA1", "PA0", 
"PA4";
+                               allwinner,function = "io_disabled";
+                               allwinner,muxsel = <7>;
+                               allwinner,drive = <1>;
+                               allwinner,pull = <0>;
+                       };
+
+                       spi2_pins_a: spi2@0 {
+                               allwinner,pins = "PB16", "PB17", "PB15";
+                               allwinner,pname = "spi2_mosi", "spi2_miso", 
"spi2_sclk";
+                               allwinner,function = "spi2";
+                               allwinner,muxsel = <2>;
+                               allwinner,drive = <1>;
+                               allwinner,pull = <0>;
+                       };
+
+                       spi2_pins_b: spi2@1 {
+                               allwinner,pins = "PB14", "PB13";
+                               allwinner,pname = "spi2_cs0", "spi2_cs1";
+                               allwinner,function = "spi2";
+                               allwinner,muxsel = <2>;
+                               allwinner,drive = <1>;
+                               allwinner,pull = <1>;   // only CS should be 
pulled up
+                       };
+
+                       spi2_pins_c: spi2@2 {
+                               allwinner,pins = "PB16", "PB17", "PB15", 
"PB14", "PB13";
+                               allwinner,function = "io_disabled";
+                               allwinner,muxsel = <7>;
+                               allwinner,drive = <1>;
+                               allwinner,pull = <0>;
+                       };
+
+                       spi3_pins_a: spi3@0 {
+                               allwinner,pins = "PA7", "PA8", "PA6";
+                               allwinner,pname = "spi3_mosi", "spi3_miso", 
"spi3_sclk";
+                               allwinner,function = "spi3";
+                               allwinner,muxsel = <3>;
+                               allwinner,drive = <1>;
+                               allwinner,pull = <0>;
+                       };
+
+                       spi3_pins_b: spi3@1 {
+                               allwinner,pins = "PA5", "PA9";
+                               allwinner,pname = "spi3_cs0", "spi3_cs1";
+                               allwinner,function = "spi3";
+                               allwinner,muxsel = <3>;
+                               allwinner,drive = <1>;
+                               allwinner,pull = <1>;   // only CS should be 
pulled up
+                       };
+
+                       spi3_pins_c: spi3@2 {
+                               allwinner,pins = "PA7", "PA8", "PA6", "PA5", 
"PA9";
+                               allwinner,function = "io_disabled";
+                               allwinner,muxsel = <7>;
+                               allwinner,drive = <1>;
+                               allwinner,pull = <0>;
+                       };
+
+                       sdc0_pins_a: sdc0@0 {
+                               allwinner,pins = "PF0", "PF1", "PF2", 
"PF3","PF4","PF5";
+                               allwinner,function = "sdc0";
+                               allwinner,muxsel = <2>;
+                               allwinner,drive = <1>;
+                               allwinner,pull = <1>;
+                       };
+
+                       sdc0_pins_b: sdc0@1 {
+                               allwinner,pins = "PF0", "PF1", "PF2", 
"PF3","PF4","PF5";
+                               allwinner,function = "io_disabled";
+                               allwinner,muxsel = <7>;
+                               allwinner,drive = <1>;
+                               allwinner,pull = <1>;
+                       };
+
+                       sdc1_pins_a: sdc1@0 {
+                               allwinner,pins = "PG0", "PG1", "PG2", 
"PG3","PG4","PG5";
+                               allwinner,function = "sdc1";
+                               allwinner,muxsel = <2>;
+                               allwinner,drive = <3>;
+                               allwinner,pull = <1>;
+                       };
+
+                       sdc1_pins_b: sdc1@1 {
+                               allwinner,pins = "PG0", "PG1", "PG2", 
"PG3","PG4","PG5";
+                               allwinner,function = "io_disabled";
+                               allwinner,muxsel = <7>;
+                               allwinner,drive = <1>;
+                               allwinner,pull = <1>;
+                       };
+
+                       sdc2_pins_a: sdc2@0 {
+                               allwinner,pins = "PC5", "PC6","PC7", "PC8", 
"PC9","PC10","PC11","PC12","PC13","PC14","PC15","PC24";
+                               allwinner,function = "sdc2";
+                               allwinner,muxsel = <3>;
+                               allwinner,drive = <2>;
+                               allwinner,pull = <1>;
+                       };
+
+                       sdc2_pins_b: sdc2@1 {
+                               allwinner,pins = "PC5", "PC6","PC7", "PC8", 
"PC9","PC10","PC11","PC12","PC13","PC14","PC15","PC24";
+                               allwinner,function = "io_disabled";
+                               allwinner,muxsel = <7>;
+                               allwinner,drive = <1>;
+                               allwinner,pull = <1>;
+                       };
+
+                       sdc3_pins_a: sdc3@0 {
+                               allwinner,pins = "PI4", "PI5","PI6", "PI7", 
"PI8", "PI9";
+                               allwinner,function = "sdc3";
+                               allwinner,muxsel = <2>;
+                               allwinner,drive = <2>;
+                               allwinner,pull = <1>;
+                       };
+
+                       sdc3_pins_b: sdc3@1 {
+                               allwinner,pins = "PI4", "PI5","PI6", "PI7", 
"PI8", "PI9";
+                               allwinner,function = "io_disabled";
+                               allwinner,muxsel = <7>;
+                               allwinner,drive = <1>;
+                               allwinner,pull = <1>;
+                       };
+
+                       daudio0_pins_a: daudio0@0 {
+                               allwinner,pins = "PB6", "PB7", "PB8", "PB12";
+                               allwinner,function = "i2s0";
+                               allwinner,muxsel = <2>;
+                               allwinner,drive = <1>;
+                               allwinner,pull = <0>;
+                       };
+                       daudio0_pins_b: daudio0_sleep@0 {
+                               allwinner,pins = "PB6", "PB7", "PB8", "PB12";
+                               allwinner,function = "io_disabled";
+                               allwinner,muxsel = <7>;
+                               allwinner,drive = <1>;
+                               allwinner,pull = <0>;
+                       };
+                       daudio1_pins_a: daudio1@0 {
+                               allwinner,pins = "PA14", "PA15", "PA16", "PA17";
+                               allwinner,function = "i2s1";
+                               allwinner,muxsel = <6>;
+                               allwinner,drive = <1>;
+                               allwinner,pull = <0>;
+                       };
+                       daudio1_pins_b: daudio1_sleep@0 {
+                               allwinner,pins = "PA14", "PA15", "PA16", "PA17";
+                               allwinner,function = "io_disabled";
+                               allwinner,muxsel = <7>;
+                               allwinner,drive = <1>;
+                               allwinner,pull = <0>;
+                       };
+                       spdif_pins_a: spdif@0 {
+                               allwinner,pins = "PB12", "PB13";
+                               allwinner,function = "spdif0";
+                               allwinner,muxsel = <4>;
+                               allwinner,drive = <1>;
+                               allwinner,pull = <0>;
+                       };
+                       spdif_pins_b: spdif_sleep@0 {
+                               allwinner,pins = "PB12", "PB13";
+                               allwinner,function = "io_disabled";
+                               allwinner,muxsel = <7>;
+                               allwinner,drive = <1>;
+                               allwinner,pull = <0>;
+                       };
+
+                       csi0_pins_a: csi0@0 {
+                               allwinner,pins = 
"PE0","PE2","PE3","PE4","PE5","PE6","PE7","PE8","PE9","PE10","PE11";
+                               allwinner,pname = 
"csi0_pck","csi0_hsync","csi0_vsync","csi0_d0","csi0_d1","csi0_d2",
+                                                               
"csi0_d3","csi0_d4","csi0_d5","csi0_d6","csi0_d7";
+                               allwinner,function = "csi0";
+                               allwinner,muxsel = <3>;
+                               allwinner,drive = <1>;
+                               allwinner,pull = <0>;
+                               allwinner,data = <0>;
+                       };
+                       csi0_pins_b: csi0@1 {
+                               allwinner,pins = 
"PE0","PE2","PE3","PE4","PE5","PE6","PE7","PE8","PE9","PE10","PE11";
+                               allwinner,pname = 
"csi0_pck","csi0_hsync","csi0_vsync","csi0_d0","csi0_d1","csi0_d2",
+                                                               
"csi0_d3","csi0_d4","csi0_d5","csi0_d6","csi0_d7";
+                               allwinner,function = "io_disabled";
+                               allwinner,muxsel = <7>;
+                               allwinner,drive = <1>;
+                               allwinner,pull = <0>;
+                               allwinner,data = <0>;
+                       };
+
+                       csi1_pins_a: csi1@0 {
+                               allwinner,pins = 
"PG0","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11";
+                               allwinner,pname = 
"csi1_pck","csi1_hsync","csi1_vsync","csi1_d0","csi1_d1","csi1_d2",
+                                                               
"csi1_d3","csi1_d4","csi1_d5","csi1_d6","csi1_d7";
+                               allwinner,function = "csi1";
+                               allwinner,muxsel = <3>;
+                               allwinner,drive = <1>;
+                               allwinner,pull = <0>;
+                               allwinner,data = <0>;
+                       };
+                       csi1_pins_b: csi1@1 {
+                               allwinner,pins = 
"PG0","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11";
+                               allwinner,pname = 
"csi1_pck","csi1_hsync","csi1_vsync","csi1_d0","csi1_d1","csi1_d2",
+                                                               
"csi1_d3","csi1_d4","csi1_d5","csi1_d6","csi1_d7";
+                               allwinner,function = "io_disabled";
+                               allwinner,muxsel = <7>;
+                               allwinner,drive = <1>;
+                               allwinner,pull = <0>;
+                               allwinner,data = <0>;
+                       };
+
+                       scr_pins_a: smartcard@0 {
+                               allwinner,pins = "PH13", "PH14", "PH15", 
"PH16","PH17", "PH18", "PH19";
+                               allwinner,pname = "smc_rst", "smc_vppen", 
"smc_vppp", "smc_det", "smc_vccen", "smc_sck", "smc_sda";
+                               allwinner,function = "sim0";
+                               allwinner,muxsel = <5>;
+                               allwinner,drive = <1>;
+                               allwinner,pull = <1>;
+                       };
+
+                       scr_pins_b: smartcard@1 {
+                               allwinner,pins = "PH13", "PH14", "PH15", 
"PH16","PH17", "PH18", "PH19";
+                               allwinner,pname = "smc_rst", "smc_vppen", 
"smc_vppp", "smc_det", "smc_vccen", "smc_sck", "smc_sda";
+                               allwinner,function = "io_disabled";
+                               allwinner,muxsel = <7>;
+                               allwinner,drive = <0>;
+                               allwinner,pull = <0>;
+                       };
+
+                       nand0_pins_a: nand0@0 {
+                               allwinner,pins = "PC0",      "PC1",       
"PC2",       "PC5",       "PC8",      "PC9",      "PC10",     "PC11",     
"PC12",     "PC13",     "PC14",     "PC15",     "PC24";
+                               allwinner,pname= "nand0_we", "nand0_ale", 
"nand0_cle", "nand0_nre", "nand0_d0", "nand0_d1", "nand0_d2", "nand0_d3", 
"nand0_d4", "nand0_d5", "nand0_d6", "nand0_d7", "nand0_ndqs";
+                               allwinner,function = "nand0";
+                               allwinner,muxsel = <2>;
+                               allwinner,drive = <1>;
+                               allwinner,pull = <0>;
+                       };
+
+                       nand0_pins_b: nand0@1 {
+                               allwinner,pins = "PC3",       "PC4",       
"PC6",       "PC7",       "PC16",      "PC17",      "PC18",      "PC19",      
"PC20",      "PC21",      "PC22";
+                               allwinner,pname= "nand0_ce1", "nand0_ce0", 
"nand0_rb0", "nand0_rb1", "nand0_nwp", "nand0_ce2", "nand0_ce3", "nand0_ce4", 
"nand0_ce5", "nand0_ce6", "nand0_ce7";
+                               allwinner,function = "nand0";
+                               allwinner,muxsel = <2>;
+                               allwinner,drive = <1>;
+                               allwinner,pull = <1>;// only RB&CE should be 
pulled up
+                       };
+
+                       nand0_pins_c: nand0@2 {
+                               allwinner,pins ="PC0", "PC1", "PC2", "PC3", 
"PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", 
"PC14", "PC15", "PC16", "PC17", "PC18", "PC19", "PC20", "PC21", "PC22", "PC24";
+                               allwinner,function = "io_disabled";
+                               allwinner,muxsel = <7>;
+                               allwinner,drive = <1>;
+                               allwinner,pull = <0>;
+                       };
+
+                       gmac_pins_a: gmac@0 {
+                               allwinner,pins = "PA0", "PA1", "PA2", "PA3",
+                                               "PA4", "PA5", "PA6", "PA7",
+                                               "PA8", "PA9", "PA10", "PA11",
+                                               "PA11", "PA12", "PA13", "PA14",
+                                               "PA15", "PA16", "PA17";
+                               allwinner,function = "gmac0";
+                               allwinner,muxsel = <5>;
+                               allwinner,drive = <3>;
+                               allwinner,pull = <0>;
+                       };
+
+                       emac_pins_a: emac@0 {
+                               allwinner,pins = "PA0", "PA1", "PA2", "PA3",
+                                               "PA4", "PA5", "PA6", "PA7",
+                                               "PA8", "PA9", "PA10", "PA11",
+                                               "PA12", "PA13", "PA14", "PA15",
+                                               "PA16", "PA17";
+                               allwinner,function = "emac0";
+                               allwinner,muxsel = <2>;
+                               allwinner,drive = <3>;
+                               allwinner,pull = <0>;
+                       };
+
+                       emac_pins_b: emac@1 {
+                               allwinner,pins = "PH8", "PH9", "PH10", "PH11",
+                                               "PH14", "PH15", "PH16", "PH17",
+                                               "PH18", "PH19", "PH20", "PH21",
+                                               "PH22", "PH23", "PH24", "PH25",
+                                               "PH26", "PH27";
+                               allwinner,function = "emac0";
+                               allwinner,muxsel = <2>;
+                               allwinner,drive = <3>;
+                               allwinner,pull = <0>;
+                       };
+
+                       ps20_pins_a: ps20@0 {
+                               allwinner,pins = "PI20", "PI21";
+                               allwinner,pname = "ps2_sck0", "ps2_sda0";
+                               allwinner,function = "ps20";
+                               allwinner,muxsel = <2>;
+                               allwinner,drive = <1>;
+                               allwinner,pull = <1>;
+                       };
+                       ps21_pins_a: ps21@0 {
+                               allwinner,pins = "PH12", "PH13";
+                               allwinner,pname = "ps2_sck1", "ps2_sda1";
+                               allwinner,function = "ps21";
+                               allwinner,muxsel = <4>;
+                               allwinner,drive = <1>;
+                               allwinner,pull = <1>;
+                       };
+                       ps21_pins_b: ps21@1 {
+                               allwinner,pins = "PI14", "PI15";
+                               allwinner,pname = "ps2_sck1", "ps2_sda1";
+                               allwinner,function = "ps21";
+                               allwinner,muxsel = <3>;
+                               allwinner,drive = <1>;
+                               allwinner,pull = <1>;
+                       };
+            ts0_pins_a: ts0@0 {
+                allwinner,pins = 
"PE0","PE1","PE2","PE3","PE4","PE5","PE6","PE7","PE8","PE9","PE10","PE11";
+                allwinner,pname = 
"ts0_clk","ts0_err","ts0_sync","ts0_dvld","ts0_d0","ts0_d1","ts0_d2",
+                    "ts0_d3","ts0_d4","ts0_d5","ts0_d6","ts0_d7";
+                allwinner,function = "ts0";
+                allwinner,muxsel = <2>;
+                allwinner,drive = <1>;
+                allwinner,pull = <0>;
+                allwinner,data = <0>;
+            };
+            ts0_pins_b: ts0_sleep@0 {
+                allwinner,pins = 
"PE0","PE1","PE2","PE3","PE4","PE5","PE6","PE7","PE8","PE9","PE10","PE11";
+                allwinner,pname = 
"ts0_clk","ts0_err","ts0_sync","ts0_dvld","ts0_d0","ts0_d1","ts0_d2",
+                                "ts0_d3","ts0_d4","ts0_d5","ts0_d6","ts0_d7";
+                allwinner,function = "io_disabled";
+                allwinner,muxsel = <7>;
+                allwinner,drive = <1>;
+                allwinner,pull = <0>;
+                allwinner,data = <0>;
+            };
+
+               };
+       };
+};
diff --git a/arch/arm/dts/sun8iw11p1.dtsi b/arch/arm/dts/sun8iw11p1.dtsi
new file mode 100644
index 0000000..0eab9bf
--- /dev/null
+++ b/arch/arm/dts/sun8iw11p1.dtsi
@@ -0,0 +1,1842 @@
+/*
+ * Allwinner Technology CO., Ltd. sun8iw11p1 platform
+ *
+ * fpga support
+ * modify base on juno.dts & sun8iw10
+ */
+/* kernel used */
+/memreserve/ 0x43000000 0x00000800; /* super standby range        : 
[0x43000000~0x43000800], size = 2K  */
+
+#include <dt-bindings/interrupt-controller/arm-gic.h>
+#include <dt-bindings/gpio/gpio.h>
+#include "sun8iw11p1-clk.dtsi"
+#include "sun8iw11p1-pinctrl.dtsi"
+/ {
+       model = "sun8iw11p1";
+       compatible = "arm,sun8iw11p1", "arm,sun8iw11p1";
+       interrupt-parent = <&gic>;
+       #address-cells = <2>;
+       #size-cells = <2>;
+
+       aliases {
+               serial0 = &uart0;
+               serial1 = &uart1;
+               serial2 = &uart2;
+               serial3 = &uart3;
+               serial4 = &uart4;
+               serial5 = &uart5;
+               serial6 = &uart6;
+               serial7 = &uart7;
+               twi0 = &twi0;
+               twi1 = &twi1;
+               twi2 = &twi2;
+               twi3 = &twi3;
+               twi4 = &twi4;
+               ir0 = &ir0;
+               ir1 = &ir1;
+               spi0 = &spi0;
+               spi1 = &spi1;
+               spi2 = &spi2;
+               spi3 = &spi3;
+               gmac0 = &gmac0;
+               global_timer0  = &soc_timer0;
+               cci0 = &csi_cci0;
+               csi_res0 = &csi_res0;
+               csi_res1 = &csi_res1;
+               vfe0 = &csi0;
+               vfe1 = &csi1;
+               mmc0 = &sdc0;
+               mmc2 = &sdc2;
+               nand0 =&nand0;
+               disp = &disp;
+               lcd0 = &lcd0;
+               pwm = &pwm;
+               pwm0 = &pwm0;
+               tv0 = &tv0;
+               tv1 = &tv1;
+               hdmi = &hdmi;
+               tvd = &tvd;
+               boot_disp = &boot_disp;
+               charger0 = &charger0;
+               regulator0 = &regulator0;
+       };
+
+       chosen {
+               bootargs = "earlyprintk=sunxi-uart,0x01c28000 loglevel=8 
initcall_debug=1 console=ttyS0 init=/init";
+               linux,initrd-start = <0x0 0x0>;
+               linux,initrd-end = <0x0 0x0>;
+       };
+
+       cpus {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               cpu@0 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a7";
+                       reg = <0x0>;
+                       cpufreq_tbl = < 480000
+                                       600000
+                                       720000
+                                       816000
+                                       912000
+                                       1008000
+                                       1104000
+                                       1152000
+                                       1200000>;
+                       clock-latency = <2000000>;
+                       clock-frequency = <1008000000>;
+               };
+               cpu@1 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a7";
+                       reg = <0x1>;
+                       clock-frequency = <1008000000>;
+               };
+       };
+
+        gpu_mali400_0: gpu@0x01c40000 {
+                compatible = "arm,mali-400", "arm,mali-utgard";
+                reg = <0x0 0x01c40000 0x0 0x10000>;
+                interrupts = <GIC_SPI 69 4>, <GIC_SPI 70 4>, <GIC_SPI 71 4>, 
<GIC_SPI 72 4>, <GIC_SPI 74 4>, <GIC_SPI 75 4>;
+                interrupt-names = "IRQGP", "IRQGPMMU", "IRQPP0", "IRQPPMMU0", 
"IRQPP1", "IRQPPMMU1";
+                clocks = <&clk_pll_gpu>, <&clk_gpu>;
+        };
+
+
+
+       n_brom {
+               compatible = "allwinner,n-brom";
+               reg = <0x0 0x0 0x0 0xc000>;
+       };
+
+       s_brom {
+               compatible = "allwinner,s-brom";
+               reg = <0x0 0x0 0x0 0x10000>;
+       };
+
+       prcm {
+               compatible = "allwinner,prcm";
+               reg = <0x0 0x01f01400 0x0 0x400>;
+       };
+
+       cpuscfg {
+               compatible = "allwinner,cpuscfg";
+               reg = <0x0 0x01f01c00 0x0 0x400>;
+       };
+
+       ion {
+               compatible = "allwinner,sunxi-ion";
+               /*types is list here:
+                       ION_HEAP_TYPE_SYSTEM = 0,
+                       ION_HEAP_TYPE_SYSTEM_CONTIG = 1,
+                       ION_HEAP_TYPE_CARVEOUT = 2,
+                       ION_HEAP_TYPE_CHUNK = 3,
+                       ION_HEAP_TYPE_DMA = 4
+               **/
+               system_contig{
+                       type = <1>;
+                       name = "system_contig";
+               };
+               cma{
+                       type = <4>;
+                       name = "cma";
+               };
+               system{
+                       type = <0>;
+                       name = "system";
+               };
+       };
+
+       dram: dram {
+               compatible = "allwinner,dram";
+               clocks = <&clk_pll_ddr0>, <&clk_pll_ddr1>;
+               clock-names = "pll_ddr0", "pll_ddr1";
+               dram_clk        = <672>;
+               dram_type       = <3>;
+               dram_zq         = <0x003F3FDD>;
+               dram_odt_en     = <1>;
+               dram_para1      = <0x10f41000>;
+               dram_para2      = <0x00001200>;
+               dram_mr0        = <0x1A50>;
+               dram_mr1        = <0x40>;
+               dram_mr2        = <0x10>;
+               dram_mr3        = <0>;
+               dram_tpr0       = <0x04E214EA>;
+               dram_tpr1       = <0x004214AD>;
+               dram_tpr2       = <0x10A75030>;
+               dram_tpr3       = <0>;
+               dram_tpr4       = <0>;
+               dram_tpr5       = <0>;
+               dram_tpr6       = <0>;
+               dram_tpr7       = <0>;
+               dram_tpr8       = <0>;
+               dram_tpr9       = <0>;
+               dram_tpr10      = <0>;
+               dram_tpr11      = <0>;
+               dram_tpr12      = <168>;
+               dram_tpr13      = <0x823>;
+       };
+
+       memory@40000000 {
+               device_type = "memory";
+               reg = <0x00000000 0x40000000 0x00000000 0x40000000>;
+       };
+
+       gic: interrupt-controller@1c81000 {
+               compatible = "arm,cortex-a15-gic", "arm,cortex-a9-gic";
+               #interrupt-cells = <3>;
+               #address-cells = <0>;
+               device_type = "gic";
+               interrupt-controller;
+               reg = <0x0 0x01c81000 0 0x1000>, /* GIC Dist */
+                     <0x0 0x01c82000 0 0x2000>, /* GIC CPU */
+                         <0x0 0x01c84000 0 0x2000>, /* GIC VCPU Control */
+                         <0x0 0x01c86000 0 0x2000>; /* GIC VCPU */
+               interrupts = <GIC_PPI 9 0xf04>; /* GIC Maintenence IRQ */
+       };
+
+       sid: sunxi-sid@1c1B000 {
+               compatible = "allwinner,sunxi-sid";
+               device_type = "sid";
+               reg = <0x0 0x01c1B000 0 0x0200>;
+       };
+
+       chipid: sunxi-chipid@1c1B200 {
+               compatible = "allwinner,sunxi-chipid";
+               device_type = "chipid";
+               reg = <0x0 0x01c1B200 0 0x0200>;
+       };
+
+       timer {
+               compatible = "arm,armv7-timer";
+               interrupts = <GIC_PPI 13 0xff01>, /* Secure Phys IRQ */
+                            <GIC_PPI 14 0xff01>; /* Non-secure Phys IRQ */
+               clock-frequency = <24000000>;
+       };
+
+       wdt: watchdog@01c20ca0 {
+                compatible = "allwinner,sun4i-wdt";
+                reg = <0x0 0x01c20c90 0 0x18>;
+        };
+
+       pmu {
+               compatible = "arm,armv8-pmuv3";
+               interrupts = <GIC_SPI 120 4>,
+                            <GIC_SPI 121 4>,
+                            <GIC_SPI 122 4>,
+                            <GIC_SPI 123 4>;
+       };
+
+       dvfs_table: dvfs_table {
+               compatible = "allwinner,dvfs_table";
+               max_freq = <1200000000>;
+               min_freq = <480000000>;
+               lv_count = <8>;
+               lv1_freq = <1200000000>;
+               lv1_volt = <1300>;
+               lv2_freq = <1104000000>;
+               lv2_volt = <1240>;
+               lv3_freq = <1008000000>;
+               lv3_volt = <1160>;
+               lv4_freq = <912000000>;
+               lv4_volt = <1100>;
+               lv5_freq = <720000000>;
+               lv5_volt = <1000>;
+               lv6_freq = <0>;
+               lv6_volt = <1000>;
+               lv7_freq = <0>;
+               lv7_volt = <1000>;
+               lv8_freq = <0>;
+               lv8_volt = <1000>;
+       };
+
+       dramfreq {
+               compatible = "allwinner,sunxi-dramfreq";
+               reg = <0x0 0x01c62000 0x0 0x1000>,
+                               <0x0 0x01c63000 0x0 0x1000>,
+                               <0x0 0x01c20000 0x0 0x800>;
+               interrupts = <GIC_SPI 66 0x4>;
+               clocks = <&clk_pll_ddr0>,<&clk_pll_ddr1>,<&clk_ahb1>;
+               status = "okay";
+       };
+
+       uboot: uboot {
+       };
+
+       gpu_mali400_0: gpu@0x01c40000 {
+               compatible = "arm,mali-400", "arm,mali-utgard";
+               reg = <0x0 0x01c40000 0x0 0x10000>;
+               interrupts = <GIC_SPI 69 4>, <GIC_SPI 70 4>, <GIC_SPI 71 4>, 
<GIC_SPI 72 4>, <GIC_SPI 74 4>, <GIC_SPI 75 4>;
+               interrupt-names = "IRQGP", "IRQGPMMU", "IRQPP0", "IRQPPMMU0", 
"IRQPP1", "IRQPPMMU1";
+               clocks = <&clk_pll_gpu>, <&clk_gpu>;
+       };
+
+       soc: soc@01c00000 {
+               compatible = "simple-bus";
+               #address-cells = <2>;
+               #size-cells = <2>;
+               ranges;
+               device_type = "soc";
+
+               sram-controller@01c00000 {
+                       device_type = "sram-controller";
+                       compatible = "allwinner,sun4i-a10-sram-controller";
+                       reg = <0x0 0x01c00000 0x0 0x24>;
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+
+                       sram_a: sram@00000000 {
+                               compatible = "mmio-sram";
+                               reg = <0x00000000 0xc000>;
+                               #address-cells = <1>;
+                               #size-cells = <1>;
+                               ranges = <0 0x00000000 0xc000>;
+
+                               emac_sram: sram-section@8000 {
+                                       compatible = 
"allwinner,sun4i-a10-sram-a3-a4";
+                                       #size-cells = <1>;
+                                       reg = <0x8000 0x4000>;
+                                       status = "okay";
+                               };
+                       };
+
+                       sram_d: sram@00010000 {
+                               compatible = "mmio-sram";
+                               reg = <0x00010000 0x1000>;
+                               #address-cells = <1>;
+                               #size-cells = <1>;
+                               ranges = <0 0x00010000 0x1000>;
+
+                               otg_sram: sram-section@0000 {
+                                       compatible = 
"allwinner,sun4i-a10-sram-d";
+                                       #size-cells = <1>;
+                                       reg = <0x0000 0x1000>;
+                                       status = "disabled";
+                               };
+                       };
+               };
+
+               dma0:dma-controller@01c02000 {
+                       compatible = "allwinner,sun50i-dma";
+                       reg = <0x0 0x01c02000 0x0 0x1000>;
+                       interrupts = <GIC_SPI 27 4>;
+                       clocks = <&clk_dma>;
+                       #dma-cells = <1>;
+               };
+
+               mbus0:mbus-controller@01c62000 {
+                       compatible = "allwinner,sun8i-b100-mbus";
+                       reg = <0x0 0x01c62000 0x0 0x110>;
+                       #mbus-cells = <1>;
+               };
+
+               standby_space {
+                       compatible = "allwinner,standby_space";
+                       /* num    dst        offset     size                    
                        */
+                       space1 = <0x43000000 0x00000000 0x00000800>; /* super 
standby para space        */
+               };
+
+               soc_timer0: timer@1c20c00 {
+                       compatible = "allwinner,sunxi-timer";
+                       device_type = "timer";
+                       reg = <0x0 0x01c20c00 0x0 0x90>;
+                       interrupts = <GIC_SPI 22 IRQ_TYPE_EDGE_RISING>;
+                       clock-frequency = <24000000>;
+                       timer-prescale = <16>;
+               };
+
+               rtc: rtc@01c20400 {
+                       compatible = "allwinner,sun8iw11p1-rtc";
+                       device_type = "rtc";
+                       reg = <0x0 0x01c20400 0x0 0x1FC>;
+                       interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>;
+                       gpr_offset = <0x100>;
+                       gpr_len    = <4>;
+               };
+
+               ir0: ir@01c21800 {
+                       compatible = "allwinner,ir";
+                       reg = <0x0 0x01c21800 0x0 0x400>;
+                       interrupts = <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>;
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&ir0_pins_a>;
+                       clocks = <&clk_hosc>,<&clk_ir0>;
+                       supply = "";
+                       supply_vol = "";
+                       status = "okay";
+               };
+
+               ir1: ir@01c21c00 {
+                       compatible = "allwinner,ir";
+                       reg = <0x0 0x01c21c00 0x0 0x400>;
+                       interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>;
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&ir1_pins_a>;
+                       clocks = <&clk_hosc>,<&clk_ir1>;
+                       supply = "";
+                       supply_vol = "";
+                       status = "disabled";
+               };
+
+               ve:     ve@01c0e000 {
+                       compatible = "allwinner,sunxi-cedar-ve";
+                       reg = <0x0 0x01c0e000 0x0 0x1000>,
+                                       <0x0 0x01c00000 0x0 0x10>,
+                                       <0x0 0x01c20000 0x0 0x800>;
+                       interrupts = <GIC_SPI 53 4>;
+                       clocks = <&clk_pll_ve>,
+                                                       <&clk_ve>;
+
+               };
+
+               uart0: uart@01c28000 {
+                       compatible = "allwinner,sun8i-uart";
+                       device_type = "uart0";
+                       reg = <0x0 0x01c28000 0x0 0x400>;
+                       interrupts = <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&clk_uart0>;
+                       pinctrl-names = "default", "sleep";
+                       pinctrl-0 = <&uart0_pins_a>;
+                       pinctrl-1 = <&uart0_pins_b>;
+                       uart0_port = <0>;
+                       uart0_type = <2>;
+                       status = "disabled";
+               };
+
+               uart1: uart@01c28400 {
+                       compatible = "allwinner,sun8i-uart";
+                       device_type = "uart1";
+                       reg = <0x0 0x01c28400 0x0 0x400>;
+                       interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&clk_uart1>;
+                       pinctrl-names = "default", "sleep";
+                       pinctrl-0 = <&uart1_pins_a>;
+                       pinctrl-1 = <&uart1_pins_b>;
+                       uart1_port = <1>;
+                       uart1_type = <8>;
+                       status = "disabled";
+               };
+
+               uart2: uart@01c28800 {
+                       compatible = "allwinner,sun8i-uart";
+                       device_type = "uart2";
+                       reg = <0x0 0x01c28800 0x0 0x400>;
+                       interrupts = <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&clk_uart2>;
+                       pinctrl-names = "default", "sleep";
+                       pinctrl-0 = <&uart2_pins_a>;
+                       pinctrl-1 = <&uart2_pins_b>;
+                       uart2_port = <2>;
+                       uart2_type = <4>;
+                       status = "disabled";
+               };
+
+               uart3: uart@01c28c00 {
+                       compatible = "allwinner,sun8i-uart";
+                       device_type = "uart3";
+                       reg = <0x0 0x01c28c00 0x0 0x400>;
+                       interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&clk_uart3>;
+                       pinctrl-names = "default", "sleep";
+                       pinctrl-0 = <&uart3_pins_a>;
+                       pinctrl-1 = <&uart3_pins_b>;
+                       uart3_port = <3>;
+                       uart3_type = <4>;
+                       status = "disabled";
+               };
+
+               uart4: uart@01c29000 {
+                       compatible = "allwinner,sun8i-uart";
+                       device_type = "uart4";
+                       reg = <0x0 0x01c29000 0x0 0x400>;
+                       interrupts = <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&clk_uart4>;
+                       pinctrl-names = "default", "sleep";
+                       pinctrl-0 = <&uart4_pins_a>;
+                       pinctrl-1 = <&uart4_pins_b>;
+                       uart4_port = <4>;
+                       uart4_type = <2>;
+                       status = "disabled";
+               };
+
+               uart5: uart@01c29400 {
+                       compatible = "allwinner,sun8i-uart";
+                       device_type = "uart5";
+                       reg = <0x0 0x01c29400 0x0 0x400>;
+                       interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&clk_uart5>;
+                       pinctrl-names = "default", "sleep";
+                       pinctrl-0 = <&uart5_pins_a>;
+                       pinctrl-1 = <&uart5_pins_b>;
+                       uart5_port = <5>;
+                       uart5_type = <2>;
+                       status = "disabled";
+               };
+
+               uart6: uart@01c29800 {
+                       compatible = "allwinner,sun8i-uart";
+                       device_type = "uart6";
+                       reg = <0x0 0x01c29800 0x0 0x400>;
+                       interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&clk_uart6>;
+                       pinctrl-names = "default", "sleep";
+                       pinctrl-0 = <&uart6_pins_a>;
+                       pinctrl-1 = <&uart6_pins_b>;
+                       uart6_port = <6>;
+                       uart6_type = <2>;
+                       status = "disabled";
+               };
+
+               uart7: uart@01c29c00 {
+                       compatible = "allwinner,sun8i-uart";
+                       device_type = "uart7";
+                       reg = <0x0 0x01c29c00 0x0 0x400>;
+                       interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&clk_uart7>;
+                       pinctrl-names = "default", "sleep";
+                       pinctrl-0 = <&uart7_pins_a>;
+                       pinctrl-1 = <&uart7_pins_b>;
+                       uart7_port = <7>;
+                       uart7_type = <2>;
+                       status = "disabled";
+               };
+
+               can0: can@0x01c2bc00{
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       compatible = "allwinner,sunxi-can";
+                       device_type = "can0";
+                       reg = <0x0 0x01c2bc00 0x0 0x400>;
+                       interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&clk_can>;
+                       pinctrl-names = "default", "sleep";
+                       pinctrl-0 = <&can0_pins_a>;
+                       pinctrl-1 = <&can0_pins_b>;
+                       status = "disabled";
+               };
+
+               twi0: twi@0x01c2ac00{
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       compatible = "allwinner,sun8i-twi";
+                       device_type = "twi0";
+                       reg = <0x0 0x01c2ac00 0x0 0x400>;
+                       interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&clk_twi0>;
+                       clock-frequency = <400000>;
+                       pinctrl-names = "default", "sleep";
+                       pinctrl-0 = <&twi0_pins_a>;
+                       pinctrl-1 = <&twi0_pins_b>;
+                       status = "disabled";
+
+                       pmu0: pmu@0{
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>;
+                               status = "okay";
+
+                               powerkey0: powerkey@0{
+                                       status = "okay";
+                               };
+
+                               regulator0: regulator@0{
+                                       status = "okay";
+                               };
+
+                               axp_gpio0: axp_gpio@0{
+                                       gpio-controller;
+                                       #size-cells = <0>;
+                                       #gpio-cells = <6>;
+                                       status = "okay";
+                                       device_type = "axp_pio";
+                               };
+
+                               charger0: charger@0{
+                                       status = "okay";
+                               };
+                       };
+               };
+
+               twi1: twi@0x01c2b000{
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       compatible = "allwinner,sun8i-twi";
+                       device_type = "twi1";
+                       reg = <0x0 0x01c2b000 0x0 0x400>;
+                       interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&clk_twi1>;
+                       clock-frequency = <200000>;
+                       pinctrl-names = "default", "sleep";
+                       pinctrl-0 = <&twi1_pins_a>;
+                       pinctrl-1 = <&twi1_pins_b>;
+                       status = "disabled";
+               };
+
+               twi2: twi@0x01c2b400{
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       compatible = "allwinner,sun50i-twi";
+                       device_type = "twi2";
+                       reg = <0x0 0x01c2b400 0x0 0x400>;
+                       interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&clk_twi2>;
+                       clock-frequency = <200000>;
+                       pinctrl-names = "default", "sleep";
+                       pinctrl-0 = <&twi2_pins_a>;
+                       pinctrl-1 = <&twi2_pins_b>;
+                       status = "disabled";
+               };
+
+               twi3: twi@0x01c2b800{
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       compatible = "allwinner,sun8i-twi";
+                       device_type = "twi3";
+                       reg = <0x0 0x01c2b800 0x0 0x400>;
+                       interrupts = <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&clk_twi3>;
+                       clock-frequency = <200000>;
+                       pinctrl-names = "default", "sleep";
+                       pinctrl-0 = <&twi3_pins_a>;
+                       pinctrl-1 = <&twi3_pins_b>;
+                       status = "disabled";
+               };
+
+               twi4: twi@0x01c2c000{
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       compatible = "allwinner,sun8i-twi";
+                       device_type = "twi4";
+                       reg = <0x0 0x01c2c000 0x0 0x400>;
+                       interrupts = <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&clk_twi4>;
+                       clock-frequency = <200000>;
+                       pinctrl-names = "default", "sleep";
+                       pinctrl-0 = <&twi4_pins_a>;
+                       pinctrl-1 = <&twi4_pins_b>;
+                       status = "disabled";
+               };
+
+               spi0: spi@01c05000 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       compatible = "allwinner,sun8i-spi";
+                       device_type = "spi0";
+                       reg = <0x0 0x01c05000 0x0 0x1000>;
+                       interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&clk_pll_periph0>, <&clk_spi0>;
+                       clock-frequency = <100000000>;
+                       pinctrl-names = "default", "sleep";
+                       pinctrl-0 = <&spi0_pins_a &spi0_pins_b &spi0_pins_c>;
+                       pinctrl-1 = <&spi0_pins_d>;
+                       spi0_cs_number = <2>;
+                       spi0_cs_bitmap = <3>;
+                       status = "disabled";
+               };
+
+               spi1: spi@01c06000 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       compatible = "allwinner,sun8i-spi";
+                       device_type = "spi1";
+                       reg = <0x0 0x01c06000 0x0 0x1000>;
+                       interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&clk_pll_periph0>, <&clk_spi1>;
+                       clock-frequency = <100000000>;
+                       pinctrl-names = "default", "sleep";
+                       pinctrl-0 = <&spi1_pins_a &spi1_pins_b>;
+                       pinctrl-1 = <&spi1_pins_c>;
+                       spi1_cs_number = <2>;
+                       spi1_cs_bitmap = <3>;
+                       status = "disabled";
+               };
+
+               spi2: spi@01c17000 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       compatible = "allwinner,sun8i-spi";
+                       device_type = "spi2";
+                       reg = <0x0 0x01c17000 0x0 0x1000>;
+                       interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&clk_pll_periph0>, <&clk_spi2>;
+                       clock-frequency = <100000000>;
+                       pinctrl-names = "default", "sleep";
+                       pinctrl-0 = <&spi2_pins_a &spi2_pins_b>;
+                       pinctrl-1 = <&spi2_pins_c>;
+                       spi2_cs_number = <2>;
+                       spi2_cs_bitmap = <3>;
+                       status = "disabled";
+               };
+
+               spi3: spi@01c1F000 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       compatible = "allwinner,sun8i-spi";
+                       device_type = "spi3";
+                       reg = <0x0 0x01c1F000 0x0 0x1000>;
+                       interrupts = <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&clk_pll_periph0>, <&clk_spi3>;
+                       clock-frequency = <100000000>;
+                       pinctrl-names = "default", "sleep";
+                       pinctrl-0 = <&spi3_pins_a &spi3_pins_b>;
+                       pinctrl-1 = <&spi3_pins_c>;
+                       spi3_cs_number = <2>;
+                       spi3_cs_bitmap = <3>;
+                       status = "disabled";
+               };
+
+        ts0@01c04000 {
+            compatible = "allwinner,sun50i-tsc";
+            device_type = "ts0";
+            reg = <0x0 0x01c04000 0x0 0x1000>;
+            interrupts = <GIC_SPI 81 4>;
+            clocks = <&clk_pll_periph0>,<&clk_ts>;
+            pinctrl-names = "default", "sleep";
+            pinctrl-0 = <&ts0_pins_a>;
+            pinctrl-1 = <&ts0_pins_b>;
+            status = "okay";
+        };
+
+               usbc0:usbc0@0 {
+                       device_type         = "usbc0";
+                       compatible          = "allwinner,sunxi-otg-manager";
+                       usb_port_type       = <2>;
+                       usb_detect_type     = <1>;
+                       usb_detect_mode     = <0>;
+                       usb_id_gpio;
+                       usb_det_vbus_gpio;
+                       usb_drv_vbus_gpio;
+                       usb_host_init_state = <0>;
+                       usb_regulator_io    = "nocare";
+                       usb_wakeup_suspend  = <0>;
+                       usb_luns            = <3>;
+                       usb_serial_unique   = <0>;
+                       usb_serial_number   = "20080411";
+                       rndis_wceis         = <1>;
+                       status              = "okay";
+               };
+
+               udc:udc-controller@0x01c13000 {
+                       compatible          = "allwinner,sunxi-udc";
+                       reg                 = <0x0 0x01c13000 0x0 0x1000>, 
/*udc base*/
+                                             <0x0 0x01c00000 0x0 0x100>; 
/*sram base*/
+                       interrupts          = <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks              = <&clk_usbphy0>, <&clk_usbotg>;
+                       status              = "okay";
+               };
+
+               ehci0:ehci0-controller@0x01c14000 {
+                       compatible          = "allwinner,sunxi-ehci0";
+                       reg                 = <0x0 0x01c14000 0x0 0xFFF>, 
/*hci0 base*/
+                                             <0x0 0x01c00000 0x0 0x100>, 
/*sram base*/
+                                             <0x0 0x01c13000 0x0 0x1000>; 
/*otg base*/
+                       interrupts          = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks              = <&clk_usbphy0>, <&clk_usbehci0>;
+                       hci_ctrl_no         = <0>;
+                       status              = "okay";
+               };
+
+               ohci0:ohci0-controller@0x01c14400 {
+                       compatible          = "allwinner,sunxi-ohci0";
+                       reg                 = <0x0 0x01c14000 0x0 0xFFF>, 
/*hci0 base*/
+                                             <0x0 0x01c00000 0x0 0x100>, 
/*sram base*/
+                                             <0x0 0x01c13000 0x0 0x1000>; 
/*otg base*/
+                       interrupts          = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks              = <&clk_usbphy0>, <&clk_usbohci0>, 
<&clk_usbohci012m>, <&clk_hoscx2>, <&clk_hosc>, <&clk_losc>;
+                       hci_ctrl_no         = <0>;
+                       status              = "okay";
+               };
+
+               usbc1:usbc1@0 {
+                       device_type         = "usbc1";
+                       usb_drv_vbus_gpio;
+                       usb_host_init_state = <1>;
+                       usb_regulator_io    = "nocare";
+                       usb_wakeup_suspend  = <0>;
+                       status              = "okay";
+               };
+
+               ehci1:ehci1-controller@0x01c19000 {
+                       compatible          = "allwinner,sunxi-ehci1";
+                       reg                 = <0x0 0x01c19000 0x0 0xFFF>, 
/*hci1 base*/
+                                             <0x0 0x01c00000 0x0 0x100>, 
/*sram base*/
+                                             <0x0 0x01c13000 0x0 0x1000>; 
/*otg base*/
+                       interrupts          = <GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks              = <&clk_usbphy1>, <&clk_usbehci1>;
+                       hci_ctrl_no         = <1>;
+                       status              = "okay";
+               };
+
+               ohci1:ohci1-controller@0x01c19400 {
+                       compatible          = "allwinner,sunxi-ohci1";
+                       reg                 = <0x0 0x01c19000 0x0 0xFFF>, 
/*hci1 base*/
+                                             <0x0 0x01c00000 0x0 0x100>, 
/*sram base*/
+                                             <0x0 0x01c13000 0x0 0x1000>; 
/*otg base*/
+                       interrupts          = <GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks              = <&clk_usbphy1>, <&clk_usbohci1>, 
<&clk_usbohci112m>, <&clk_hoscx2>, <&clk_hosc>, <&clk_losc>;
+                       hci_ctrl_no         = <1>;
+                       status              = "okay";
+               };
+
+               usbc2:usbc2@0 {
+                       device_type         = "usbc2";
+                       usb_drv_vbus_gpio;
+                       usb_host_init_state = <1>;
+                       usb_regulator_io    = "nocare";
+                       usb_wakeup_suspend  = <0>;
+                       status              = "okay";
+               };
+
+               ehci2:ehci2-controller@0x01c1c000 {
+                       compatible          = "allwinner,sunxi-ehci2";
+                       reg                 = <0x0 0x01c1c000 0x0 0xFFF>, 
/*hci2 base*/
+                                             <0x0 0x01c00000 0x0 0x100>, 
/*sram base*/
+                                             <0x0 0x01c13000 0x0 0x1000>; 
/*otg base*/
+                       interrupts          = <GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks              = <&clk_usbphy2>, <&clk_usbehci2>;
+                       hci_ctrl_no         = <2>;
+                       status              = "okay";
+               };
+
+               ohci2:ohci2-controller@0x01c1c400 {
+                       compatible          = "allwinner,sunxi-ohci2";
+                       reg                 = <0x0 0x01c1c000 0x0 0xFFF>, 
/*hci2 base*/
+                                             <0x0 0x01c00000 0x0 0x100>, 
/*sram base*/
+                                             <0x0 0x01c13000 0x0 0x1000>; 
/*otg base*/
+                       interrupts          = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks              = <&clk_usbphy2>, <&clk_usbohci2>, 
<&clk_usbohci212m>, <&clk_hoscx2>, <&clk_hosc>, <&clk_losc>;
+                       hci_ctrl_no         = <2>;
+                       status              = "okay";
+               };
+
+               codec:codec@0x01c22c00 {
+                       compatible = "allwinner,sunxi-internal-codec";
+                       reg = <0x0 0x01c22c00 0x0 0x2bc>,/*digital baseadress*/
+                             <0x0 0x01c22f00 0x0 0x4>;/*analog baseadress*/
+                       clocks = <&clk_pll_audio>,<&clk_adda>;
+                       headphonevol =  <0x3b>;
+                       spkervol =  <0x1b>;
+                       maingain =  <0x4>;
+                       hp_dirused = <0x0>;
+                       pa_sleep_time = <0x15e>;
+                       status = "okay";
+               };
+
+               cpudai:cpudai0-controller@0x01c22c00 {
+                       compatible = "allwinner,sunxi-internal-cpudai";
+                       reg = <0x0 0x01c22c00 0x0 0x2bc>;/*digital baseadress*/
+                       status = "okay";
+               };
+
+               daudio0:daudio@0x01c22000 {
+                       compatible = "allwinner,sunxi-daudio";
+                       reg = <0x0 0x01c22000 0x0 0x70>;
+                       clocks = <&clk_pll_audio>,<&clk_i2s0>;
+                       pinctrl-names = "default","sleep";
+                       pinctrl-0 = <&daudio0_pins_a>;
+                       pinctrl-1 = <&daudio0_pins_b>;
+                       pcm_lrck_period =  <0x20>;
+                       pcm_lrckr_period =  <0x01>;
+                       slot_width_select =  <0x20>;
+                       pcm_lsb_first =  <0x0>;
+                       tx_data_mode =  <0x0>;
+                       rx_data_mode =  <0x0>;
+                       daudio_master =  <0x04>;
+                       audio_format =  <0x01>;
+                       signal_inversion =  <0x01>;
+                       frametype =  <0x0>;
+                       tdm_config =  <0x01>;
+                       mclk_div = <0x0>;
+                       tdm_num = <0x0>;
+                       status = "okay";
+               };
+               daudio1:daudio@0x01c22400 {
+                       compatible = "allwinner,sunxi-daudio";
+                       reg = <0x0 0x01c22400 0x0 0x70>;
+                       pinctrl-names = "default","sleep";
+                       pinctrl-0 = <&daudio1_pins_a>;
+                       pinctrl-1 = <&daudio1_pins_b>;
+                       clocks = <&clk_pll_audio>,<&clk_i2s1>;
+                       pcm_lrck_period =  <0x20>;
+                       pcm_lrckr_period =  <0x01>;
+                       slot_width_select =  <0x20>;
+                       pcm_lsb_first =  <0x0>;
+                       tx_data_mode =  <0x0>;
+                       rx_data_mode =  <0x0>;
+                       daudio_master =  <0x04>;
+                       audio_format =  <0x01>;
+                       signal_inversion =  <0x01>;
+                       frametype =  <0x0>;
+                       tdm_config =  <0x01>;
+                       mclk_div = <0x0>;
+                       tdm_num = <0x1>;
+                       status = "okay";
+               };
+               audiohdmi:daudio@0x01c22800{
+                       compatible = "allwinner,sunxi-tdmhdmi";
+                       reg = <0x0 0x01c22800 0x0 0x58>;
+                       clocks = <&clk_pll_audio>,<&clk_i2s2>;
+                       status = "okay";
+               };
+               spdif:spdif-controller@0x01c21000{
+                       compatible = "allwinner,sunxi-spdif";
+                       reg = <0x0 0x01c21000 0x0 0x38>;
+                       clocks = <&clk_pll_audio>,<&clk_spdif>;
+                       pinctrl-names = "default","sleep";
+                       pinctrl-0 = <&spdif_pins_a>;
+                       pinctrl-1 = <&spdif_pins_b>;
+                       status = "okay";
+               };
+               sndcodec:sound@0 {
+                       compatible = "allwinner,sunxi-codec-machine";
+                       interrupts = <GIC_SPI 28 4>;
+                       sunxi,cpudai-controller = <&cpudai>;
+                       sunxi,audio-codec = <&codec>;
+                       hp_detect_case = <0x00>;
+                       /* jack_det_gpio = <&pio PH 12 1 0 1 0>; */
+                       /* invert: 0->high is plug_in, 1->high is plug_out */
+                       jack_invert = <1>;
+                       status = "okay";
+               };
+               snddaudio0:sound@1{
+                       compatible = "allwinner,sunxi-daudio0-machine";
+                       sunxi,daudio0-controller = <&daudio0>;
+                       status = "okay";
+               };
+               snddaudio1:sound@2{
+                       compatible = "allwinner,sunxi-daudio1-machine";
+                       sunxi,daudio1-controller = <&daudio1>;
+                       status = "okay";
+               };
+               sndhdmi:sound@3{
+                       compatible = "allwinner,sunxi-hdmi-machine";
+                       sunxi,hdmi-controller = <&audiohdmi>;
+                       status = "okay";
+               };
+               sndspdif:sound@4{
+                       compatible = "allwinner,sunxi-spdif-machine";
+                       sunxi,spdif-controller = <&spdif>;
+                       status = "okay";
+               };
+
+               sdc0: sdmmc@01c0f000 {
+                       compatible = "allwinner,sunxi-mmc-v4p1x";
+                       device_type = "sdc0";
+                       reg = <0x0 0x01c0f000 0x0 0x1000>; /* only sdmmc0 */
+                       interrupts = <GIC_SPI 32 0x0104>;  /*  */
+                       clocks = 
<&clk_hosc>,<&clk_pll_periph1x2>,<&clk_sdmmc0_mod>,<&clk_sdmmc0_bus>,<&clk_sdmmc0_rst>;
+                       clock-names = "osc24m","pll_periph","mmc","ahb","rst";
+                       pinctrl-names = "default","sleep";
+                       pinctrl-0 = <&sdc0_pins_a>;
+                       pinctrl-1 = <&sdc0_pins_b>;
+                       max-frequency = <50000000>;
+                       bus-width = <4>;
+                       /*cd-inverted*/
+                       cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>; /* PF6 .mul_sel 
= 0, .pull = 1, .drv_level = 2, .data = 0 */ /* TODO latter bit 1: open drain */
+                       /* vmmc-supply = <&reg_3p3v>;*/
+                       /* vqmc-supply = <&reg_3p3v>;*/
+                       /* vdmc-supply = <&reg_3p3v>;*/
+                       /*vmmc = "vcc-card";*/
+                       /*vqmc = "";*/
+                       /*vdmc = "";*/
+                       /*sd-uhs-sdr50;*/
+                       /*sd-uhs-ddr50;*/
+                       /*cap-sdio-irq;*/
+                       /*keep-power-in-suspend;*/
+                       /*ignore-pm-notify;*/
+                       /*sunxi-power-save-mode;*/
+                       /*sunxi-dly-400k = <1 0 0 0>; */
+                       /*sunxi-dly-26M  = <1 0 0 0>;*/
+                       /*sunxi-dly-52M  = <1 0 0 0 1>;*/
+                       /*sunxi-dly-52M-ddr4  = <1 0 0 0>;*/
+                       /*sunxi-dly-52M-ddr8  = <1 0 0 0>;*/
+                       /*sunxi-dly-104M  = <1 0 0 0>;*/
+                       /*sunxi-dly-208M  = <1 0 0 0>;*/
+                       /*sunxi-dly-104M-ddr  = <1 0 0 0>;*/
+                       /*sunxi-dly-208M-ddr  = <1 0 0 0>;*/
+
+                       status = "okay";
+                       /*status = "disabled";*/
+               };
+
+               sdc2: sdmmc@01C11000 {
+                       compatible = "allwinner,sunxi-mmc-v4p5x";
+                       device_type = "sdc2";
+                       reg = <0x0 0x01C11000 0x0 0x1000>;
+                       interrupts = <GIC_SPI 34 0x0104>;  /*  */
+                       clocks = 
<&clk_hosc>,<&clk_pll_periph1x2>,<&clk_sdmmc2_mod>,<&clk_sdmmc2_bus>,<&clk_sdmmc2_rst>;
+           clock-names = "osc24m","pll_periph","mmc","ahb","rst";
+      pinctrl-names = "default","sleep";
+                       pinctrl-0 = <&sdc2_pins_a>;
+                       pinctrl-1 = <&sdc2_pins_b>;
+                               bus-width = <8>;
+                       /*mmc-ddr-1_8v;*/
+                       /*mmc-hs200-1_8v;*/
+                       /*mmc-hs400-1_8v;*/
+                       /*non-removable;*/
+                       /*max-frequency = <200000000>;*/
+                       max-frequency = <50000000>;
+
+                       /*-- speed mode --*/
+                       /*sm0: DS26_SDR12*/
+                       /*sm1: HSSDR52_SDR25*/
+                       /*sm2: HSDDR52_DDR50*/
+                       /*sm3: HS200_SDR104*/
+                       /*sm4: HS400*/
+                       /*-- frequency point --
+                       /*f0: CLK_400K*/
+                       /*f1: CLK_25M*/
+                       /*f2: CLK_50M*/
+                       /*f3: CLK_100M*/
+                       /*f4: CLK_150M*/
+                       /*f5: CLK_200M*/
+
+                       sdc_tm4_sm0_freq0 = <0>;
+                       sdc_tm4_sm0_freq1 = <0>;
+                       sdc_tm4_sm1_freq0 = <0x00000000>;
+                       sdc_tm4_sm1_freq1 = <0>;
+                       sdc_tm4_sm2_freq0 = <0x00000000>;
+                       sdc_tm4_sm2_freq1 = <0>;
+                       sdc_tm4_sm3_freq0 = <0x05000000>;
+                       sdc_tm4_sm3_freq1 = <0x00000005>;
+                       sdc_tm4_sm4_freq0 = <0x00050000>;
+                       sdc_tm4_sm4_freq1 = <0x00000004>;
+
+                       /*vmmc-supply = <&reg_3p3v>;*/
+                       /*vqmc-supply = <&reg_3p3v>;*/
+                       /*vdmc-supply = <&reg_3p3v>;*/
+                       /*vmmc = "vcc-card";*/
+                       /*vqmc = "";*/
+                       /*vdmc = "";*/
+           /*sunxi-power-save-mode;*/
+                       /*status = "disabled";*/
+                       status = "okay";
+
+       };
+
+               sdc1: sdmmc@1C10000 {
+                       compatible = "allwinner,sunxi-mmc-v4p1x";
+                       device_type = "sdc1";
+                       reg = <0x0 0x1C10000 0x0 0x1000>;
+                       interrupts = <GIC_SPI 33 0x0104>;  /*  */
+                       clocks = 
<&clk_hosc>,<&clk_pll_periph1x2>,<&clk_sdmmc1_mod>,<&clk_sdmmc1_bus>,<&clk_sdmmc1_rst>;
+                       clock-names = "osc24m","pll_periph","mmc","ahb","rst";
+                       pinctrl-names = "default","sleep";
+                       pinctrl-0 = <&sdc1_pins_a>;
+                       pinctrl-1 = <&sdc1_pins_b>;
+                       max-frequency = <50000000>;
+                       bus-width = <4>;
+                       /*broken-cd;*/
+                       /*cd-inverted*/
+                       /*cd-gpios = <&pio 6 6 6 1 2 0>;*/
+                       /* vmmc-supply = <&reg_3p3v>;*/
+                       /* vqmc-supply = <&reg_3p3v>;*/
+                       /* vdmc-supply = <&reg_3p3v>;*/
+                       /*vmmc = "vcc-card";*/
+                       /*vqmc = "";*/
+                       /*vdmc = "";*/
+                       /*sd-uhs-sdr50;*/
+                       /*sd-uhs-ddr50;*/
+                       /*sd-uhs-sdr104;*/
+                       /*cap-sdio-irq;*/
+                       /*keep-power-in-suspend;*/
+                       /*ignore-pm-notify;*/
+                       /*sunxi-power-save-mode;*/
+                       /*sunxi-dly-400k = <1 0 0 0 0>; */
+                       /*sunxi-dly-26M  = <1 0 0 0 0>;*/
+                       /*sunxi-dly-52M  = <1 0 0 0 0>;*/
+                       sunxi-dly-52M-ddr4  = <1 0 0 0 2>;
+                       /*sunxi-dly-52M-ddr8  = <1 0 0 0 0>;*/
+                       sunxi-dly-104M  = <1 0 0 0 1>;
+                       /*sunxi-dly-208M  = <1 1 0 0 0>;*/
+                       sunxi-dly-208M  = <1 0 0 0 1>;
+                       /*sunxi-dly-104M-ddr  = <1 0 0 0 0>;*/
+                       /*sunxi-dly-208M-ddr  = <1 0 0 0 0>;*/
+
+
+                       /*status = "okay";*/
+                       status = "disabled";
+               };
+
+
+               sdc3: sdmmc@01C12000 {
+                       compatible = "allwinner,sunxi-mmc-v4p1x";
+                       device_type = "sdc3";
+                       reg = <0x0 0x01C12000 0x0 0x1000>;
+                       interrupts = <GIC_SPI 35 0x0104>;  /*  */
+                       clocks = 
<&clk_hosc>,<&clk_pll_periph1x2>,<&clk_sdmmc3_mod>,<&clk_sdmmc3_bus>,<&clk_sdmmc3_rst>;
+                       clock-names = "osc24m","pll_periph","mmc","ahb","rst";
+                       pinctrl-names = "default","sleep";
+                       pinctrl-0 = <&sdc3_pins_a>;
+                       pinctrl-1 = <&sdc3_pins_b>;
+                       max-frequency = <50000000>;
+                       bus-width = <4>;
+                       /*broken-cd;*/
+                       /*cd-inverted*/
+                       /*cd-gpios = <&pio PG 6 6 1 2 0>;*/
+                       /* vmmc-supply = <&reg_3p3v>;*/
+                       /* vqmc-supply = <&reg_3p3v>;*/
+                       /* vdmc-supply = <&reg_3p3v>;*/
+                       /*vmmc = "vcc-card";*/
+                       /*vqmc = "";*/
+                       /*vdmc = "";*/
+                       /*sd-uhs-sdr50;*/
+                       /*sd-uhs-ddr50;*/
+                       /*sd-uhs-sdr104;*/
+                       /*cap-sdio-irq;*/
+                       /*keep-power-in-suspend;*/
+                       /*ignore-pm-notify;*/
+                       /*sunxi-power-save-mode;*/
+                       /*sunxi-dly-400k = <1 0 0 0 0>; */
+                       /*sunxi-dly-26M  = <1 0 0 0 0>;*/
+                       /*sunxi-dly-52M  = <1 0 0 0 0>;*/
+                       sunxi-dly-52M-ddr4  = <1 0 0 0 2>;
+                       /*sunxi-dly-52M-ddr8  = <1 0 0 0 0>;*/
+                       sunxi-dly-104M  = <1 0 0 0 1>;
+                       /*sunxi-dly-208M  = <1 1 0 0 0>;*/
+                       sunxi-dly-208M  = <1 0 0 0 1>;
+                       /*sunxi-dly-104M-ddr  = <1 0 0 0 0>;*/
+                       /*sunxi-dly-208M-ddr  = <1 0 0 0 0>;*/
+
+
+                       /*status = "okay";*/
+                       status = "disabled";
+               };
+
+               disp: disp@01000000 {
+                       compatible = "allwinner,sun50i-disp";
+                       reg = <0x0 0x01000000 0x0 0x00300000>,/*de*/
+                               <0x0 0x01c70000 0x0 0xfff>,/*tcon top*/
+                               <0x0 0x01c71000 0x0 0xfff>,/*tcon0*/
+                               <0x0 0x01c72000 0x0 0xfff>,/*tcon1*/
+                               <0x0 0x01c73000 0x0 0xfff>,/*tcon2*/
+                               <0x0 0x01c74000 0x0 0xfff>,/*tcon3*/
+                               <0x0 0x01ca0000 0x0 0x10fc>;/*dsi*/
+                       interrupts = <GIC_SPI 44 0x0104>, <GIC_SPI 45 0x0104>,
+                               <GIC_SPI 51 0x0104>, <GIC_SPI 52 0x0104>,
+                               <GIC_SPI 57 0x0104>;/* for dsi */
+                       clocks = <&clk_de>,<&clk_tcon_top>,
+                                               <&clk_tcon0>,<&clk_tcon1>,
+                                               
<&clk_tcon_tv0>,<&clk_tcon_tv1>,<&clk_lvds>,<&clk_mipidsi>;
+                       boot_disp = <0>;
+                       fb_base = <0>;
+
+                       status = "okay";
+               };
+
+               hdmi: hdmi@01ee0000 {
+                       compatible = "allwinner,sunxi-hdmi";
+                       reg = <0x0 0x01ee0000 0x0 0x20000>;
+                       clocks = <&clk_hdmi>,<&clk_hdmi_slow>;
+               };
+
+               lcd0: lcd0@01c0c000 {
+                       compatible = "allwinner,sunxi-lcd0";
+                       pinctrl-names = "active","sleep";
+
+                       status = "okay";
+               };
+
+               tv0: tv0@01c94000 {
+                       compatible = "allwinner,sunxi-tv";
+                       reg = <0x0 0x01c90000 0x0 0x100>,
+                               <0x0 0x01c94000 0x0 0x3fc>;
+                       clocks = <&clk_tve_top>,<&clk_tve0>;
+                       device_type = "tv0";
+                       pinctrl-names = "active","sleep";
+                       status = "disabled";
+               };
+
+               tv1: tv1@01c98000 {
+                       compatible = "allwinner,sunxi-tv";
+                       reg = <0x0 0x01c90000 0x0 0x100>,
+                               <0x0 0x01c98000 0x0 0x3fc>;
+                       clocks = <&clk_tve_top>,<&clk_tve1>;
+                       device_type = "tv1";
+                       pinctrl-names = "active","sleep";
+                       status = "disabled";
+               };
+
+               tvd: tvd@01c30000 {
+                       compatible = "allwinner,sunxi-tvd";
+                       reg = <0x0 0x01c30000 0x0 0x00010000>;/*tvd_top*/
+                       clocks = <&clk_tvd_top>;
+                       interrupts = <GIC_SPI 61 0x0104>;
+                       tvd-number = <4>;
+                       tvds = <&tvd0>, <&tvd1>, <&tvd2>, <&tvd3>;
+                       status = "okay";
+               };
+
+               tvd0: tvd0@01c31000 {
+                       compatible = "allwinner,sunxi-tvd0";
+                       reg = <0x0 0x01c31000 0x0 0x00010000>;
+                       interrupts = <GIC_SPI 97 0x0104>;
+                       clocks = <&clk_tvd0>;
+                       tvd_used = <1>;
+                       tvd_if = <0>;
+                       status = "okay";
+               };
+
+               tvd1: tvd1@01c32000 {
+                       compatible = "allwinner,sunxi-tvd1";
+                       reg = <0x0 0x01c32000 0x0 0x00010000>;
+                       interrupts = <GIC_SPI 98 0x0104>;
+                       clocks = <&clk_tvd1>;
+                       tvd_used = <1>;
+                       tvd_if = <0>;
+                       status = "okay";
+               };
+
+               tvd2: tvd2@01c33000 {
+                       compatible = "allwinner,sunxi-tvd2";
+                       reg = <0x0 0x01c33000 0x0 0x00010000>;
+                       interrupts = <GIC_SPI 99 0x0104>;
+                       clocks = <&clk_tvd2>;
+                       tvd_used = <1>;
+                       tvd_if = <0>;
+                       status = "okay";
+               };
+
+               tvd3: tvd3@01c34000 {
+                       compatible = "allwinner,sunxi-tvd3";
+                       reg = <0x0 0x01c34000 0x0 0x00010000>;
+                       interrupts = <GIC_SPI 100 0x0104>;
+                       clocks = <&clk_tvd3>;
+                       tvd_used = <1>;
+                       tvd_if = <0>;
+                       status = "okay";
+               };
+
+               soc_tr: tr@01000000 {
+                       compatible = "allwinner,sun8iw11-tr";
+                       reg = <0x0 0x01000000 0x0 0x000200bc>;
+                       interrupts = <GIC_SPI 96 0x0104>;
+                       clocks = <&clk_de>;
+                       status = "okay";
+               };
+
+               g2d: g2d@01e80000 {
+                       compatible = "allwinner,sunxi-g2d";
+                       reg = <0x0 0x01e80000 0x0 0x800>;
+                       interrupts = <GIC_SPI 46 0x0104>;
+                       clocks = <&clk_de_mp>;
+                       status = "okay";
+               };
+
+               pwm: pwm@01c23400 {
+                       compatible = "allwinner,sunxi-pwm";
+                       reg = <0x0 0x01c23400 0x0 0x154>;
+                       pwm-number = <1>;
+                       pwm-base = <0x0>;
+                       pwms = <&pwm0>, <&pwm1>;
+               };
+
+               pwm0: pwm0@01c23400 {
+                       compatible = "allwinner,sunxi-pwm0";
+                       pinctrl-names = "active", "sleep";
+                       reg_base = <0x01c23400>;
+                       reg_peci_offset = <0x00>;
+                       reg_peci_shift = <0x00>;
+                       reg_peci_width = <0x01>;
+
+                       reg_pis_offset = <0x04>;
+                       reg_pis_shift = <0x00>;
+                       reg_pis_width = <0x01>;
+
+                       reg_crie_offset = <0x10>;
+                       reg_crie_shift = <0x00>;
+                       reg_crie_width = <0x01>;
+
+                       reg_cfie_offset = <0x10>;
+                       reg_cfie_shift = <0x01>;
+                       reg_cfie_width = <0x01>;
+
+                       reg_cris_offset = <0x14>;
+                       reg_cris_shift = <0x00>;
+                       reg_cris_width = <0x01>;
+
+                       reg_cfis_offset = <0x14>;
+                       reg_cfis_shift = <0x01>;
+                       reg_cfis_width = <0x01>;
+
+                       reg_clk_src_offset = <0x20>;
+                       reg_clk_src_shift = <0x07>;
+                       reg_clk_src_width = <0x02>;
+
+                       reg_bypass_offset = <0x20>;
+                       reg_bypass_shift = <0x05>;
+                       reg_bypass_width = <0x01>;
+
+                       reg_clk_gating_offset = <0x20>;
+                       reg_clk_gating_shift = <0x04>;
+                       reg_clk_gating_width = <0x01>;
+
+                       reg_clk_div_m_offset = <0x20>;
+                       reg_clk_div_m_shift = <0x00>;
+                       reg_clk_div_m_width = <0x04>;
+
+                       reg_pdzintv_offset = <0x30>;
+                       reg_pdzintv_shift = <0x08>;
+                       reg_pdzintv_width = <0x08>;
+
+                       reg_dz_en_offset = <0x30>;
+                       reg_dz_en_shift = <0x00>;
+                       reg_dz_en_width = <0x01>;
+
+                       reg_enable_offset = <0x40>;
+                       reg_enable_shift = <0x00>;
+                       reg_enable_width = <0x01>;
+
+                       reg_cap_en_offset = <0x44>;
+                       reg_cap_en_shift = <0x00>;
+                       reg_cap_en_width = <0x01>;
+
+                       reg_period_rdy_offset = <0x60>;
+                       reg_period_rdy_shift = <0x0b>;
+                       reg_period_rdy_width = <0x01>;
+
+                       reg_pul_start_offset = <0x60>;
+                       reg_pul_start_shift = <0x0a>;
+                       reg_pul_start_width = <0x01>;
+
+                       reg_mode_offset = <0x60>;
+                       reg_mode_shift = <0x09>;
+                       reg_mode_width = <0x01>;
+
+                       reg_act_sta_offset = <0x60>;
+                       reg_act_sta_shift = <0x08>;
+                       reg_act_sta_width = <0x01>;
+
+                       reg_prescal_offset = <0x60>;
+                       reg_prescal_shift = <0x00>;
+                       reg_prescal_width = <0x08>;
+
+                       reg_entire_offset = <0x64>;
+                       reg_entire_shift = <0x10>;
+                       reg_entire_width = <0x10>;
+
+                       reg_active_offset = <0x64>;
+                       reg_active_shift = <0x00>;
+                       reg_active_width = <0x10>;
+               };
+
+               pwm1: pwm1@01c23400 {
+                       compatible = "allwinner,sunxi-pwm1";
+                       pinctrl-names = "active", "sleep";
+                       reg_base = <0x01c23400>;
+                       reg_peci_offset = <0x00>;
+                       reg_peci_shift = <0x01>;
+                       reg_peci_width = <0x01>;
+
+                       reg_pis_offset = <0x04>;
+                       reg_pis_shift = <0x01>;
+                       reg_pis_width = <0x01>;
+
+                       reg_crie_offset = <0x10>;
+                       reg_crie_shift = <0x00>;
+                       reg_crie_width = <0x01>;
+
+                       reg_cfie_offset = <0x10>;
+                       reg_cfie_shift = <0x01>;
+                       reg_cfie_width = <0x01>;
+
+                       reg_cris_offset = <0x14>;
+                       reg_cris_shift = <0x01>;
+                       reg_cris_width = <0x01>;
+
+                       reg_cfis_offset = <0x14>;
+                       reg_cfis_shift = <0x01>;
+                       reg_cfis_width = <0x01>;
+
+                       reg_clk_src_offset = <0x20>;
+                       reg_clk_src_shift = <0x07>;
+                       reg_clk_src_width = <0x02>;
+
+                       reg_bypass_offset = <0x20>;
+                       reg_bypass_shift = <0x06>;
+                       reg_bypass_width = <0x01>;
+
+                       reg_clk_gating_offset = <0x20>;
+                       reg_clk_gating_shift = <0x04>;
+                       reg_clk_gating_width = <0x01>;
+
+                       reg_clk_div_m_offset = <0x20>;
+                       reg_clk_div_m_shift = <0x00>;
+                       reg_clk_div_m_width = <0x04>;
+
+                       reg_pdzintv_offset = <0x30>;
+                       reg_pdzintv_shift = <0x08>;
+                       reg_pdzintv_width = <0x08>;
+
+                       reg_dz_en_offset = <0x30>;
+                       reg_dz_en_shift = <0x00>;
+                       reg_dz_en_width = <0x01>;
+
+                       reg_enable_offset = <0x40>;
+                       reg_enable_shift = <0x01>;
+                       reg_enable_width = <0x01>;
+
+                       reg_cap_en_offset = <0x44>;
+                       reg_cap_en_shift = <0x01>;
+                       reg_cap_en_width = <0x01>;
+
+                       reg_period_rdy_offset = <0x80>;
+                       reg_period_rdy_shift = <0x0b>;
+                       reg_period_rdy_width = <0x01>;
+
+                       reg_pul_start_offset = <0x80>;
+                       reg_pul_start_shift = <0x0a>;
+                       reg_pul_start_width = <0x01>;
+
+                       reg_mode_offset = <0x80>;
+                       reg_mode_shift = <0x09>;
+                       reg_mode_width = <0x01>;
+
+                       reg_act_sta_offset = <0x80>;
+                       reg_act_sta_shift = <0x08>;
+                       reg_act_sta_width = <0x01>;
+
+                       reg_prescal_offset = <0x80>;
+                       reg_prescal_shift = <0x00>;
+                       reg_prescal_width = <0x08>;
+
+                       reg_entire_offset = <0x84>;
+                       reg_entire_shift = <0x10>;
+                       reg_entire_width = <0x10>;
+
+                       reg_active_offset = <0x84>;
+                       reg_active_shift = <0x00>;
+                       reg_active_width = <0x10>;
+               };
+
+               boot_disp: boot_disp {
+                       compatible = "allwinner,boot_disp";
+               };
+
+               csi_cci0:cci@0x01cb3000 {
+                       compatible = "allwinner,sunxi-csi_cci";
+                       reg = <0x0 0x01cb3000 0x0 0x1000>;      
/*0x01cb3000--0x01cb4000*/
+                       interrupts = <GIC_SPI 85 4>;/*SUNXI_IRQ_CSI0_CCI 
(SUNXI_GIC_START + 85) = 117*/
+                       status = "disabled";
+               };
+               csi_res0:csi_res@0x01c09000 {
+                       compatible = "allwinner,sunxi-csi";
+                       reg = <0x0 0x01c09000 0x0 
0x1000>;/*0x01c09000--0x01c0a000*/
+                       clocks                          = <&clk_csi_s>, 
<&clk_csi0_m>,
+                                                       
<&clk_pll_periph0>,<&clk_hosc>;
+                       clocks-index            = <0 1 0xff 2 3 0xff>;
+                       status = "okay";
+               };
+               csi_res1:csi_res@0X01c1d000 {
+                       compatible = "allwinner,sunxi-csi";
+                       reg = <0x0 0X01c1d000 0x0 
0x1000>;/*0X01c1d000--0x01c0e000*/
+                       clocks                          = <&clk_csi_s>, 
<&clk_csi1_m>,
+                                                       
<&clk_pll_periph0>,<&clk_hosc>;
+                       clocks-index            = <0 1 0xff 2 3 0xff>;
+                       status = "okay";
+               };
+               csi0:vfe@0 {
+                       device_type= "csi0";
+                       compatible = "allwinner,sunxi-vfe";
+                       interrupts = <GIC_SPI 42 4>;/*SUNXI_IRQ_CSI0 
(SUNXI_GIC_START + 42 ) = 74*/
+                       pinctrl-names           = "default","sleep";
+                       pinctrl-0               = <&csi0_pins_a>;
+                       pinctrl-1               = <&csi0_pins_b>;
+                       cci_sel                 = <0>;
+                       csi_sel                 = <0>;
+                       mipi_sel                = <0>;
+                       isp_sel                 = <0>;
+                       csi0_sensor_list        = <0>;
+                       csi0_mck                = <&pio 4 1 GPIO_ACTIVE_HIGH>; 
/*PE1 .mul_sel = 1, .pull = 0, .drv_level = 1, .data = 0*/
+                       status = "okay";
+                       csi0_dev0:dev@0{
+                               csi0_dev0_mname         = "ov5640";
+                               csi0_dev0_twi_addr      = <0x78>;
+                               csi0_dev0_twi_id        = <1>;
+                               csi0_dev0_pos           = "rear";
+                               csi0_dev0_isp_used      = <1>;
+                               csi0_dev0_fmt           = <0>;
+                               csi0_dev0_stby_mode     = <0>;
+                               csi0_dev0_vflip         = <0>;
+                               csi0_dev0_hflip         = <0>;
+                               csi0_dev0_iovdd         = "iovdd-csi";
+                               csi0_dev0_iovdd_vol     = <2800000>;
+                               csi0_dev0_avdd          = "avdd-csi";
+                               csi0_dev0_avdd_vol      = <2800000>;
+                               csi0_dev0_dvdd          = "dvdd-csi-18";
+                               csi0_dev0_dvdd_vol      = <1500000>;
+                               csi0_dev0_afvdd         = "afvcc-csi";
+                               csi0_dev0_afvdd_vol     = <2800000>;
+                               csi0_dev0_power_en      = <>;
+                               csi0_dev0_reset         = <&pio 7 13 
GPIO_ACTIVE_HIGH>; /*PH13 .mul_sel = 1, .pull = 0, .drv_level = 1, .data = 0*/
+                               csi0_dev0_pwdn          = <&pio 7 16 
GPIO_ACTIVE_HIGH>; /*PH16 .mul_sel = 1, .pull = 0, .drv_level = 1, .data = 0*/
+                               csi0_dev0_flash_en      = <>;
+                               csi0_dev0_flash_mode    = <>;
+                               csi0_dev0_af_pwdn       = <>;
+                               csi0_dev0_act_used      = <0>;
+                               csi0_dev0_act_name      = "ad5820_act";
+                               csi0_dev0_act_slave     = <0x18>;
+                               status  = "okay";
+                       };
+
+               };
+               csi1:vfe@1 {
+                       device_type= "csi1";
+                       compatible = "allwinner,sunxi-vfe";
+                       interrupts = <GIC_SPI 43 4>;/*SUNXI_IRQ_CSI1 
(SUNXI_GIC_START + 43 ) = 75*/
+                       pinctrl-names           = "default","sleep";
+                       pinctrl-0               = <&csi1_pins_a>;
+                       pinctrl-1               = <&csi1_pins_b>;
+                       cci_sel                 = <0>;
+                       csi_sel                 = <1>;
+                       mipi_sel                = <0>;
+                       isp_sel                 = <0>;
+                       csi1_sensor_list        = <0>;
+                       csi1_mck                = <&pio 6 1 GPIO_ACTIVE_HIGH>; 
/*PG1 .mul_sel = 1, .pull = 0, .drv_level = 1, .data = 0*/
+                       status = "okay";
+                       csi1_dev0:dev@0{
+                               csi1_dev0_mname         = "ov5640";
+                               csi1_dev0_twi_addr      = <0x78>;
+                               csi1_dev0_twi_id        = <1>;
+                               csi1_dev0_pos           = "front";
+                               csi1_dev0_isp_used      = <1>;
+                               csi1_dev0_fmt           = <0>;
+                               csi1_dev0_stby_mode     = <0>;
+                               csi1_dev0_vflip         = <0>;
+                               csi1_dev0_hflip         = <0>;
+                               csi1_dev0_iovdd         = "iovdd-csi";
+                               csi1_dev0_iovdd_vol     = <2800000>;
+                               csi1_dev0_avdd          = "avdd-csi";
+                               csi1_dev0_avdd_vol      = <2800000>;
+                               csi1_dev0_dvdd          = "dvdd-csi-18";
+                               csi1_dev0_dvdd_vol      = <1500000>;
+                               csi1_dev0_afvdd         = "afvcc-csi";
+                               csi1_dev0_afvdd_vol     = <2800000>;
+                               csi1_dev0_power_en      = <>;
+                               csi1_dev0_reset         = <&pio 7 14 
GPIO_ACTIVE_HIGH>; /*PH14 .mul_sel = 1, .pull = 0, .drv_level = 1, .data = 0*/
+                               csi1_dev0_pwdn          = <&pio 7 17 
GPIO_ACTIVE_HIGH>; /*PH17 .mul_sel = 1, .pull = 0, .drv_level = 1, .data = 0*/
+                               csi1_dev0_flash_en      = <>;
+                               csi1_dev0_flash_mode    = <>;
+                               csi1_dev0_af_pwdn       = <>;
+                               csi1_dev0_act_used      = <0>;
+                               csi1_dev0_act_name      = "ad5820_act";
+                               csi1_dev0_act_slave     = <0x18>;
+                               status  = "okay";
+                       };
+               };
+               Vdevice: vdevice@0{
+                       compatible = "allwinner,sun8i-vdevice";
+                       device_type = "Vdevice";
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&vdevice_pins_a>;
+                       /* FIXME test-gpios = <&pio PH 0 1 2 2 1>; */
+                       status = "okay";
+               };
+               cryptoengine: ce@1c15000 {
+                       compatible = "allwinner,sunxi-ce";
+                       device_name = "ce";
+                       reg = <0x0 0x01c15000 0x0 0x80>, /* non-secure space */
+                                 <0x0 0x01c15800 0x0 0x80>; /* secure space */
+                       interrupts = <GIC_SPI 94 0xff01>, /* non-secure space */
+                                                <GIC_SPI 80 0xff01>; /* secure 
space */
+                       clock-frequency = <300000000>; /* 300MHz */
+                       clocks = <&clk_ce>, <&clk_pll_periph0x2>;
+               };
+               di:deinterlace@0x01400000{
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       compatible = "allwinner,sunxi-deinterlace";
+                       reg = <0x0 0x01400000 0x0 0x77c>;
+                       interrupts = <GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&clk_deinterlace> ,<&clk_pll_periph0>;
+                       status = "okay";
+               };
+               smc:smartcard@0x01c2c400{
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       compatible = "allwinner,sunxi-scr";
+                       reg = <0x0 0x01c2c400 0x0 0x400>;
+                       interrupts = <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&clk_scr>, <&clk_apb2>;
+                       clock-frequency = <24000000>;
+                       pinctrl-names = "default", "sleep";
+                       pinctrl-0 = <&scr_pins_a>;
+                       pinctrl-1 = <&scr_pins_b>;
+                       status = "okay";
+               };
+               nmi:nmi@0{
+                       compatible = "allwinner,sunxi-nmi";
+                       reg = <0x0 0x01c00030 0x0 0x0c>;
+                       nmi_irq_ctrl = <0x00>;
+                       nmi_irq_en = <0x08>;
+                       nmi_irq_status = <0x04>;
+                       status = "okay";
+               };
+
+               nand0:nand0@01c03000 {
+                       compatible = "allwinner,sun8iw11-nand";
+                       device_type = "nand0";
+                       reg = <0x0 0x01c03000 0x0 0x1000>; /* nand0 */
+                       interrupts = <GIC_SPI 37 0x04>;
+                       clocks = <&clk_pll_periph0>,<&clk_nand>;
+                       pinctrl-names = "default", "sleep";
+                       pinctrl-0 = <&nand0_pins_a &nand0_pins_b>;
+                       pinctrl-1 = <&nand0_pins_c>;
+                       nand0_regulator1 = "vcc-nand";
+                       nand0_regulator2 = "none";
+                       nand0_cache_level = <0x55aaaa55>;
+                       nand0_flush_cache_num = <0x55aaaa55>;
+                       nand0_capacity_level = <0x55aaaa55>;
+                       nand0_id_number_ctl = <0x55aaaa55>;
+                       nand0_print_level = <0x55aaaa55>;
+                       nand0_p0 = <0x55aaaa55>;
+                       nand0_p1 = <0x55aaaa55>;
+                       nand0_p2 = <0x55aaaa55>;
+                       nand0_p3 = <0x55aaaa55>;
+                       status = "disabled";
+               };
+
+               sunxi_thermal_sensor:thermal_sensor{
+                       compatible = "allwinner,thermal_sensor";
+                       reg = <0x0 0x01c24c00 0x0 0x84>;
+                       interrupts = <GIC_SPI 36 IRQ_TYPE_NONE>;
+                       clocks = <&clk_hosc>,<&clk_ths>;
+                       sensor_num = <2>;
+                       shut_temp= <120>;
+                       status = "okay";
+
+                       combine0:combine0{
+                               #thermal-sensor-cells = <1>;
+                               combine_cnt = <2>;
+                               combine_type = "max";
+                               combine_chn = <0 1>;
+                       };
+               };
+
+               cpu_budget_cooling:cpu_budget_cool{
+                       compatible = "allwinner,budget_cooling";
+                       #cooling-cells = <2>;
+                       status = "okay";
+                       state_cnt = <7>;
+                       cluster_num = <1>;
+                       state0 = <1200000 4>;
+                       state1 = <1104000 4>;
+                       state2 = <1008000 4>;
+                       state3 = <912000 4>;
+                       state4 = <720000 4>;
+                       state5 = <720000 2>;
+                       state6 = <720000 1>;
+               };
+
+               gpu_cooling:gpu_cooling{
+                       compatible = "allwinner,gpu_cooling";
+                       reg = <0x0 0x0 0x0 0x0>;
+                       #cooling-cells = <2>;
+                       status = "okay";
+                       state_cnt = <4>;
+                       state0 = <360>;
+                       state1 = <312>;
+                       state2 = <240>;
+                       state3 = <144>;
+               };
+
+               thermal-zones{
+                       soc_thermal{
+
+                               polling-delay-passive = <1000>;
+                               polling-delay = <10000>;
+                               thermal-sensors = <&combine0 0>;
+
+                               trips{
+                                       cpu_trip0:t0{
+                                               temperature = <95>;
+                                               type = "passive";
+                                               hysteresis = <0>;
+                                       };
+                                       cpu_trip1:t1{
+                                               temperature = <105>;
+                                               type = "passive";
+                                               hysteresis = <0>;
+                                       };
+                                       cpu_trip2:t2{
+                                               temperature = <112>;
+                                               type = "passive";
+                                               hysteresis = <0>;
+                                       };
+                                       cpu_trip3:t3{
+                                               temperature = <115>;
+                                               type = "passive";
+                                               hysteresis = <0>;
+                                       };
+                                       gpu_trip0:t4{
+                                               temperature = <90>;
+                                               type = "passive";
+                                               hysteresis = <0>;
+                                       };
+                                       gpu_trip1:t5{
+                                               temperature = <100>;
+                                               type = "passive";
+                                               hysteresis = <0>;
+                                       };
+                                       gpu_trip2:t6{
+                                               temperature = <110>;
+                                               type = "passive";
+                                               hysteresis = <0>;
+                                       };
+                                       crt_trip:t7{
+                                               temperature = <120>;
+                                               type = "critical";
+                                               hysteresis = <0>;
+                                       };
+                               };
+
+                               cooling-maps{
+                                       bind0{
+                                               contribution = <0>;
+                                               trip = <&cpu_trip0>;
+                                               cooling-device = 
<&cpu_budget_cooling 1 1>;
+                                       };
+                                       bind1{
+                                               contribution = <0>;
+                                               trip = <&cpu_trip1>;
+                                               cooling-device = 
<&cpu_budget_cooling 2 2>;
+                                       };
+                                       bind2{
+                                               contribution = <0>;
+                                               trip = <&cpu_trip2>;
+                                               cooling-device = 
<&cpu_budget_cooling 3 3>;
+                                       };
+                                       bind3{
+                                               contribution = <0>;
+                                               trip = <&cpu_trip3>;
+                                               cooling-device = 
<&cpu_budget_cooling 4 6>;
+                                       };
+                                       bind4{
+                                               contribution = <0>;
+                                               trip = <&gpu_trip0>;
+                                               cooling-device = <&gpu_cooling 
1 1>;
+                                       };
+                                       bind5{
+                                               contribution = <0>;
+                                               trip = <&gpu_trip1>;
+                                               cooling-device = <&gpu_cooling 
2 2>;
+                                       };
+                                       bind6{
+                                               contribution = <0>;
+                                               trip = <&gpu_trip2>;
+                                               cooling-device = <&gpu_cooling 
3 3>;
+                                       };
+                               };
+                       };
+               };
+
+               keyboard0:keyboard{
+                       compatible = "allwinner,keyboard_2000mv";
+                       reg = <0x0 0x01c24400 0x0 0x400>;
+                       interrupts = <GIC_SPI 31 IRQ_TYPE_NONE>;
+                       status = "okay";
+                       key_cnt = <5>;
+                       key1 = <240 115>;
+                       key2 = <500 114>;
+                       key3 = <700 139>;
+                       key4 = <890 28>;
+                       key5 = <2000 102>;
+               };
+               keypad0:keypad{
+                       compatible = "allwinner,keypad";
+                       reg = <0x0 0x01c23000 0x0 0x400>;
+                       interrupts = <GIC_SPI 21 IRQ_TYPE_NONE>;
+                       clocks = <&clk_losc>,<&clk_keypad>;
+                       keypad_power_key_code = <0x00>;
+
+                       /* need to add keypad pinctrl */
+                       /* pinctrl-names = "default"; */
+                       /* pinctrl-0 = <&keypad pinctrl>; */
+                       status = "okay";
+               };
+               sata:sata@01c18000{
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       compatible = "allwinner,sun8i-sata";
+                       device_type = "sata";
+                       reg = <0x0 0x01c18000 0x0 0x200>;
+                       interrupts = <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&clk_pll_sata>, <&clk_sata>;
+                       sata_regulator0="vdd-sata-25";
+                       sata_regulator1="vdd-sata-12";
+                       sata_power_en;
+                       status = "okay";
+               };
+
+               ps20: ps2@01c2a000 {
+                       compatible = "allwinner,sun4i-a10-ps2";
+                       reg = <0x0 0x01c2a000 0x0 0x400>;
+                       interrupts = <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&clk_ps20>;
+                       pinctrl-names = "default", "sleep";
+                       pinctrl-0 = <&ps20_pins_a>;
+                       status = "disabled";
+               };
+
+               ps21: ps2@01c2a400 {
+                       compatible = "allwinner,sun4i-a10-ps2";
+                       reg = <0x0 0x01c2a400 0x0 0x400>;
+                       interrupts = <GIC_SPI 63 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&clk_ps21>;
+                       pinctrl-names = "default", "sleep";
+                       pinctrl-0 = <&ps21_pins_a>;
+                       status = "disabled";
+               };
+
+               gmac0: eth@01c50000 {
+                       compatible = "allwinner,sunxi-gmac";
+                       reg = <0x0 0x01c50000 0x0 0x40000>,
+                           <0x0 0x01c20164 0x0 0x04>;
+                       pinctrl-names = "default";
+                       pinctrl-0     = <&gmac_pins_a>;
+                       interrupts      = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "gmacirq";
+                       clocks   = <&clk_gmac>;
+                       clock-names = "gmac";
+                       phy-mode = "mii";
+                       tx-delay = <7>;
+                       rx-delay = <31>;
+                       phy-rst;
+                       gmac_power1 = "";
+                       gmac_power2 = "";
+                       gmac_power3 = "";
+                       status = "disabled";
+               };
+
+               emac0: eth@01c0B000 {
+                       compatible = "allwinner,sun4i-emac";
+                       reg = <0x0 0x01c0b000 0x0 0x0c000>;
+                       pinctrl-names = "default";
+                       pinctrl-0     = <&emac_pins_a>;
+                       interrupts      = <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "emacirq";
+                       clocks   = <&clk_emac>;
+                       clock-names = "emac";
+                       phy = <&phy1>;
+                       phy-rst;
+                       allwinner,sram = <&emac_sram 1>;
+                       emac_power1 = "";
+                       emac_power2 = "";
+                       emac_power3 = "";
+                       status = "disabled";
+               };
+
+               mdio: mdio@01c0b080 {
+                       compatible = "allwinner,sun4i-a10-mdio";
+                       reg = <0x0 0x01c0b080 0x0 0x14>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       status = "okay";
+
+                       phy1: ethernet-phy@1 {
+                               reg = <1>;
+                       };
+               };
+       };
+};
diff --git a/configs/BananapiM2U_defconfig b/configs/BananapiM2U_defconfig
new file mode 100644
index 0000000..5b5944f
--- /dev/null
+++ b/configs/BananapiM2U_defconfig
@@ -0,0 +1,24 @@
+CONFIG_ARM=y
+CONFIG_ARCH_SUNXI=y
+# CONFIG_SPL_I2C_SUPPORT is not set
+CONFIG_MACH_SUN8I_R40=y
+CONFIG_DRAM_CLK=576
+CONFIG_DRAM_ZQ=3881979
+CONFIG_VIDEO_COMPOSITE=y
+CONFIG_GMAC_TX_DELAY=3
+CONFIG_DEFAULT_DEVICE_TREE="sun8i-r40-bananapi-m2u"
+CONFIG_AHCI=y
+# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
+CONFIG_SYS_EXTRA_OPTIONS="SUNXI_GMAC,RGMII"
+CONFIG_SPL=y
+# CONFIG_CMD_IMLS is not set
+# CONFIG_CMD_FLASH is not set
+# CONFIG_CMD_FPGA is not set
+# CONFIG_SPL_DOS_PARTITION is not set
+# CONFIG_SPL_ISO_PARTITION is not set
+# CONFIG_SPL_EFI_PARTITION is not set
+CONFIG_NETCONSOLE=y
+CONFIG_ETH_DESIGNWARE=y
+CONFIG_USB_EHCI_HCD=y
+CONFIG_SYS_CLK_FREQ=1008000000
+CONFIG_I2C1_ENABLE=y

-- 
You received this message because you are subscribed to the Google Groups 
"linux-sunxi" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to linux-sunxi+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to