ARM: dts: sun5i: Update A10s/A13/gr8/r8 dts(i) files from Linux-v4.18-rc3
authorJagan Teki <jagan@amarulasolutions.com>
Sat, 4 Aug 2018 19:10:08 +0000 (00:40 +0530)
committerJagan Teki <jagan@amarulasolutions.com>
Fri, 28 Sep 2018 16:39:24 +0000 (22:09 +0530)
Update all A10s/A13/gr8/r8devicetree dtsi and dtsi files from
Linux-v4.18-rc3 with below commit:
commit 190e3138f9577885691540dca59c2f07540bde04
Merge: cafc87023b0d a7affb13b271
Author: Arnd Bergmann <arnd@arndb.de>
Date:   Tue Mar 27 14:58:00 2018 +0200

    Merge tag 'sunxi-h3-h5-for-4.17' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/sunxi/linux into next/dt

Signed-off-by: Jagan Teki <jagan@amarulasolutions.com>
22 files changed:
arch/arm/dts/sun5i-a10s-auxtek-t003.dts
arch/arm/dts/sun5i-a10s-auxtek-t004.dts
arch/arm/dts/sun5i-a10s-mk802.dts
arch/arm/dts/sun5i-a10s-olinuxino-micro.dts
arch/arm/dts/sun5i-a10s-r7-tv-dongle.dts
arch/arm/dts/sun5i-a10s-wobo-i5.dts
arch/arm/dts/sun5i-a10s.dtsi
arch/arm/dts/sun5i-a13-empire-electronix-d709.dts
arch/arm/dts/sun5i-a13-hsg-h702.dts
arch/arm/dts/sun5i-a13-inet-98v-rev2.dts
arch/arm/dts/sun5i-a13-olinuxino-micro.dts
arch/arm/dts/sun5i-a13-olinuxino.dts
arch/arm/dts/sun5i-a13-utoo-p66.dts
arch/arm/dts/sun5i-a13.dtsi
arch/arm/dts/sun5i-gr8-chip-pro.dts
arch/arm/dts/sun5i-gr8.dtsi
arch/arm/dts/sun5i-r8-chip.dts
arch/arm/dts/sun5i-r8.dtsi
arch/arm/dts/sun5i-reference-design-tablet.dtsi
arch/arm/dts/sun5i.dtsi
include/dt-bindings/clock/sun5i-ccu.h [new file with mode: 0644]
include/dt-bindings/reset/sun5i-ccu.h [new file with mode: 0644]

index d4ad02182353e5d90c5e33c51d263022a2cbbfe2..39504d720efc9c71dae786f1dcb3f862f8ba469f 100644 (file)
@@ -44,7 +44,6 @@
 #include "sun5i-a10s.dtsi"
 #include "sunxi-common-regulators.dtsi"
 #include <dt-bindings/gpio/gpio.h>
-#include <dt-bindings/pinctrl/sun4i-a10.h>
 
 / {
        model = "Auxtek t003 A10s hdmi tv-stick";
@@ -94,8 +93,7 @@
        pinctrl-0 = <&mmc0_pins_a>, <&mmc0_cd_pin_t003>;
        vmmc-supply = <&reg_vcc3v3>;
        bus-width = <4>;
-       cd-gpios = <&pio 6 1 GPIO_ACTIVE_HIGH>; /* PG1 */
-       cd-inverted;
+       cd-gpios = <&pio 6 1 GPIO_ACTIVE_LOW>; /* PG1 */
        status = "okay";
 };
 
 
 &pio {
        mmc0_cd_pin_t003: mmc0_cd_pin@0 {
-               allwinner,pins = "PG1";
-               allwinner,function = "gpio_in";
-               allwinner,drive = <SUN4I_PINCTRL_10_MA>;
-               allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
+               pins = "PG1";
+               function = "gpio_in";
+               bias-pull-up;
        };
 
        led_pins_t003: led_pins@0 {
-               allwinner,pins = "PB2";
-               allwinner,function = "gpio_out";
-               allwinner,drive = <SUN4I_PINCTRL_20_MA>;
-               allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
+               pins = "PB2";
+               function = "gpio_out";
+               drive-strength = <20>;
        };
 };
 
        status = "okay";
 };
 
-&usb0_vbus_pin_a {
-       allwinner,pins = "PG13";
-};
-
-&usb1_vbus_pin_a {
-       allwinner,pins = "PB10";
-};
-
 &usb_otg {
        dr_mode = "host";
        status = "okay";
index a790ec8adb75263c1a20e70d6737c184a51a6736..8d4fb9331212dc22d2e1d30de352b9a93b68197f 100644 (file)
@@ -44,7 +44,6 @@
 #include "sun5i-a10s.dtsi"
 #include "sunxi-common-regulators.dtsi"
 #include <dt-bindings/gpio/gpio.h>
-#include <dt-bindings/pinctrl/sun4i-a10.h>
 
 / {
        model = "Auxtek t004 A10s hdmi tv-stick";
        pinctrl-0 = <&mmc0_pins_a>, <&mmc0_cd_pin_t004>;
        vmmc-supply = <&reg_vcc3v3>;
        bus-width = <4>;
-       cd-gpios = <&pio 6 1 GPIO_ACTIVE_HIGH>; /* PG1 */
-       cd-inverted;
+       cd-gpios = <&pio 6 1 GPIO_ACTIVE_LOW>; /* PG1 */
        status = "okay";
 };
 
        status = "okay";
 };
 
+&otg_sram {
+       status = "okay";
+};
+
 &pio {
+       usb0_id_detect_pin: usb0_id_detect_pin@0 {
+               pins = "PG12";
+               function = "gpio_in";
+               bias-pull-up;
+       };
+
        mmc0_cd_pin_t004: mmc0_cd_pin@0 {
-               allwinner,pins = "PG1";
-               allwinner,function = "gpio_in";
-               allwinner,drive = <SUN4I_PINCTRL_10_MA>;
-               allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
+               pins = "PG1";
+               function = "gpio_in";
+               bias-pull-up;
        };
 
        mmc1_vcc_en_pin_t004: mmc1_vcc_en_pin@0 {
-               allwinner,pins = "PB18";
-               allwinner,function = "gpio_out";
-               allwinner,drive = <SUN4I_PINCTRL_10_MA>;
-               allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
+               pins = "PB18";
+               function = "gpio_out";
        };
 
        led_pins_t004: led_pins@0 {
-               allwinner,pins = "PB2";
-               allwinner,function = "gpio_out";
-               allwinner,drive = <SUN4I_PINCTRL_20_MA>;
-               allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
+               pins = "PB2";
+               function = "gpio_out";
+               drive-strength = <20>;
        };
 };
 
        status = "okay";
 };
 
-&usb1_vbus_pin_a {
-       allwinner,pins = "PG13";
+&usb_otg {
+       dr_mode = "otg";
+       status = "okay";
 };
 
 &usbphy {
+       pinctrl-names = "default";
+       pinctrl-0 = <&usb0_id_detect_pin>;
+       usb0_id_det-gpio = <&pio 6 12 GPIO_ACTIVE_HIGH>; /* PG12 */
        usb1_vbus-supply = <&reg_usb1_vbus>;
        status = "okay";
 };
index 23b0114eb4db4c9d6262e181a243695d8dd8a3a5..dd7fd5c3d76f19cda44da9c5b2a3e730dcccd2ad 100644 (file)
@@ -92,8 +92,7 @@
        pinctrl-0 = <&mmc0_pins_a>, <&mmc0_cd_pin_mk802>;
        vmmc-supply = <&reg_vcc3v3>;
        bus-width = <4>;
-       cd-gpios = <&pio 6 1 GPIO_ACTIVE_HIGH>; /* PG1 */
-       cd-inverted;
+       cd-gpios = <&pio 6 1 GPIO_ACTIVE_LOW>; /* PG1 */
        status = "okay";
 };
 
 
 &pio {
        led_pins_mk802: led_pins@0 {
-               allwinner,pins = "PB2";
-               allwinner,function = "gpio_out";
-               allwinner,drive = <SUN4I_PINCTRL_10_MA>;
-               allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
+               pins = "PB2";
+               function = "gpio_out";
        };
 
        mmc0_cd_pin_mk802: mmc0_cd_pin@0 {
-               allwinner,pins = "PG1";
-               allwinner,function = "gpio_in";
-               allwinner,drive = <SUN4I_PINCTRL_10_MA>;
-               allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
+               pins = "PG1";
+               function = "gpio_in";
+               bias-pull-up;
        };
 
        usb1_vbus_pin_mk802: usb1_vbus_pin@0 {
-               allwinner,pins = "PB10";
-               allwinner,function = "gpio_out";
-               allwinner,drive = <SUN4I_PINCTRL_10_MA>;
-               allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
+               pins = "PB10";
+               function = "gpio_out";
        };
 };
 
 };
 
 &usb_otg {
-       dr_mode = "otg";
+       dr_mode = "peripheral";
        status = "okay";
 };
 
index aef91476f9aec0dcc880079a3c8f9112fa3f134c..2c902ed2c87af65cadaddf0cc848a09f1936d3a5 100644 (file)
@@ -48,7 +48,6 @@
 
 #include <dt-bindings/gpio/gpio.h>
 #include <dt-bindings/input/input.h>
-#include <dt-bindings/pinctrl/sun4i-a10.h>
 
 / {
        model = "Olimex A10s-Olinuxino Micro";
                stdout-path = "serial0:115200n8";
        };
 
+       connector {
+               compatible = "hdmi-connector";
+               type = "a";
+
+               port {
+                       hdmi_con_in: endpoint {
+                               remote-endpoint = <&hdmi_out_con>;
+                       };
+               };
+       };
+
        leds {
                compatible = "gpio-leds";
                pinctrl-names = "default";
        };
 };
 
+&be0 {
+       status = "okay";
+};
+
 &ehci0 {
        status = "okay";
 };
 
 &emac {
        pinctrl-names = "default";
-       pinctrl-0 = <&emac_pins_a>;
+       pinctrl-0 = <&emac_pins_b>;
        phy = <&phy1>;
        status = "okay";
 };
        status = "okay";
 };
 
+&hdmi {
+       status = "okay";
+};
+
+&hdmi_out {
+       hdmi_out_con: endpoint {
+               remote-endpoint = <&hdmi_con_in>;
+       };
+};
+
 &i2c0 {
        pinctrl-names = "default";
        pinctrl-0 = <&i2c0_pins_a>;
        pinctrl-0 = <&mmc0_pins_a>, <&mmc0_cd_pin_olinuxino_micro>;
        vmmc-supply = <&reg_vcc3v3>;
        bus-width = <4>;
-       cd-gpios = <&pio 6 1 GPIO_ACTIVE_HIGH>; /* PG1 */
-       cd-inverted;
+       cd-gpios = <&pio 6 1 GPIO_ACTIVE_LOW>; /* PG1 */
        status = "okay";
 };
 
        pinctrl-0 = <&mmc1_pins_a>, <&mmc1_cd_pin_olinuxino_micro>;
        vmmc-supply = <&reg_vcc3v3>;
        bus-width = <4>;
-       cd-gpios = <&pio 6 13 GPIO_ACTIVE_HIGH>; /* PG13 */
-       cd-inverted;
+       cd-gpios = <&pio 6 13 GPIO_ACTIVE_LOW>; /* PG13 */
        status = "okay";
 };
 
 
 &pio {
        mmc0_cd_pin_olinuxino_micro: mmc0_cd_pin@0 {
-               allwinner,pins = "PG1";
-               allwinner,function = "gpio_in";
-               allwinner,drive = <SUN4I_PINCTRL_10_MA>;
-               allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
+               pins = "PG1";
+               function = "gpio_in";
+               bias-pull-up;
        };
 
        mmc1_cd_pin_olinuxino_micro: mmc1_cd_pin@0 {
-               allwinner,pins = "PG13";
-               allwinner,function = "gpio_in";
-               allwinner,drive = <SUN4I_PINCTRL_10_MA>;
-               allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
+               pins = "PG13";
+               function = "gpio_in";
+               bias-pull-up;
        };
 
        led_pins_olinuxino: led_pins@0 {
-               allwinner,pins = "PE3";
-               allwinner,function = "gpio_out";
-               allwinner,drive = <SUN4I_PINCTRL_20_MA>;
-               allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
+               pins = "PE3";
+               function = "gpio_out";
+               drive-strength = <20>;
        };
 
        usb1_vbus_pin_olinuxino_m: usb1_vbus_pin@0 {
-               allwinner,pins = "PB10";
-               allwinner,function = "gpio_out";
-               allwinner,drive = <SUN4I_PINCTRL_10_MA>;
-               allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
+               pins = "PB10";
+               function = "gpio_out";
        };
 
        usb0_id_detect_pin: usb0_id_detect_pin@0 {
-               allwinner,pins = "PG12";
-               allwinner,function = "gpio_in";
-               allwinner,drive = <SUN4I_PINCTRL_10_MA>;
-               allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
+               pins = "PG12";
+               function = "gpio_in";
+               bias-pull-up;
        };
 };
 
 
 &spi2 {
        pinctrl-names = "default";
-       pinctrl-0 = <&spi2_pins_a>,
-                   <&spi2_cs0_pins_a>;
+       pinctrl-0 = <&spi2_pins_b>,
+                   <&spi2_cs0_pins_b>;
+       status = "okay";
+};
+
+&tcon0 {
        status = "okay";
 };
 
 
 &uart2 {
        pinctrl-names = "default";
-       pinctrl-0 = <&uart2_pins_a>;
+       pinctrl-0 = <&uart2_pins_b>;
        status = "okay";
 };
 
        status = "okay";
 };
 
-&usb0_vbus_pin_a {
-       allwinner,pins = "PG11";
-};
-
 &usbphy {
        pinctrl-names = "default";
        pinctrl-0 = <&usb0_id_detect_pin>;
index 3b057983c74a1f5e68a8fe7941fba3419d4fa5b4..034853d1c08f5c95fe0cca17389f68aa03b71915 100644 (file)
@@ -45,7 +45,6 @@
 #include "sunxi-common-regulators.dtsi"
 
 #include <dt-bindings/gpio/gpio.h>
-#include <dt-bindings/pinctrl/sun4i-a10.h>
 
 / {
        model = "R7 A10s hdmi tv-stick";
@@ -81,8 +80,7 @@
        pinctrl-0 = <&mmc0_pins_a>, <&mmc0_cd_pin_r7>;
        vmmc-supply = <&reg_vcc3v3>;
        bus-width = <4>;
-       cd-gpios = <&pio 6 1 GPIO_ACTIVE_HIGH>; /* PG1 */
-       cd-inverted;
+       cd-gpios = <&pio 6 1 GPIO_ACTIVE_LOW>; /* PG1 */
        status = "okay";
 };
 
 
 &pio {
        mmc0_cd_pin_r7: mmc0_cd_pin@0 {
-               allwinner,pins = "PG1";
-               allwinner,function = "gpio_in";
-               allwinner,drive = <SUN4I_PINCTRL_10_MA>;
-               allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
+               pins = "PG1";
+               function = "gpio_in";
+               bias-pull-up;
        };
 
        led_pins_r7: led_pins@0 {
-               allwinner,pins = "PB2";
-               allwinner,function = "gpio_out";
-               allwinner,drive = <SUN4I_PINCTRL_20_MA>;
-               allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
+               pins = "PB2";
+               function = "gpio_out";
+               drive-strength = <20>;
        };
 
        usb1_vbus_pin_r7: usb1_vbus_pin@0 {
-               allwinner,pins = "PG13";
-               allwinner,function = "gpio_out";
-               allwinner,drive = <SUN4I_PINCTRL_10_MA>;
-               allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
+               pins = "PG13";
+               function = "gpio_out";
        };
 };
 
index b5de75f4c710e0c45c4a57ec2b254f5b805c8725..3f68ef5d92a0240d1790e7753bc5f8f5aec5bf96 100644 (file)
@@ -46,7 +46,6 @@
 
 #include <dt-bindings/gpio/gpio.h>
 #include <dt-bindings/interrupt-controller/irq.h>
-#include <dt-bindings/pinctrl/sun4i-a10.h>
 
 / {
        model = "A10s-Wobo i5";
@@ -95,7 +94,7 @@
 
 &emac {
        pinctrl-names = "default";
-       pinctrl-0 = <&emac_pins_b>;
+       pinctrl-0 = <&emac_pins_a>;
        phy = <&phy1>;
        status = "okay";
 };
        pinctrl-0 = <&mmc0_pins_a>, <&mmc0_cd_pin_wobo_i5>;
        vmmc-supply = <&reg_vcc3v3>;
        bus-width = <4>;
-       cd-gpios = <&pio 1 3 GPIO_ACTIVE_HIGH>; /* PB3 */
-       cd-inverted;
+       cd-gpios = <&pio 1 3 GPIO_ACTIVE_LOW>; /* PB3 */
        status = "okay";
 };
 
 
 &pio {
        led_pins_wobo_i5: led_pins@0 {
-               allwinner,pins = "PB2";
-               allwinner,function = "gpio_out";
-               allwinner,drive = <SUN4I_PINCTRL_10_MA>;
-               allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
+               pins = "PB2";
+               function = "gpio_out";
        };
 
        mmc0_cd_pin_wobo_i5: mmc0_cd_pin@0 {
-               allwinner,pins = "PB3";
-               allwinner,function = "gpio_in";
-               allwinner,drive = <SUN4I_PINCTRL_10_MA>;
-               allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
+               pins = "PB3";
+               function = "gpio_in";
+               bias-pull-up;
        };
 
        emac_power_pin_wobo: emac_power_pin@0 {
-               allwinner,pins = "PA02";
-               allwinner,function = "gpio_out";
-               allwinner,drive = <SUN4I_PINCTRL_10_MA>;
-               allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
+               pins = "PA02";
+               function = "gpio_out";
        };
 };
 
        status = "okay";
 };
 
-&usb1_vbus_pin_a {
-       allwinner,pins = "PG12";
-};
-
 &usbphy {
        usb1_vbus-supply = <&reg_usb1_vbus>;
        status = "okay";
index c41a2ba34dde902c8a352bd3715dfa6c827b5887..316cb8b2945b114224d2c75ffa65a3d6a07f3300 100644 (file)
@@ -47,7 +47,6 @@
 #include "sun5i.dtsi"
 
 #include <dt-bindings/dma/sun4i-a10.h>
-#include <dt-bindings/pinctrl/sun4i-a10.h>
 
 / {
        interrupt-parent = <&intc>;
                #size-cells = <1>;
                ranges;
 
-               framebuffer@0 {
+               framebuffer@2 {
                        compatible = "allwinner,simple-framebuffer",
                                     "simple-framebuffer";
                        allwinner,pipeline = "de_be0-lcd0-hdmi";
-                       clocks = <&pll3>, <&pll5 1>, <&ahb_gates 36>,
-                                <&ahb_gates 43>, <&ahb_gates 44>;
-                       status = "disabled";
-               };
-
-               framebuffer@1 {
-                       compatible = "allwinner,simple-framebuffer",
-                                    "simple-framebuffer";
-                       allwinner,pipeline = "de_be0-lcd0";
-                       clocks = <&pll3>, <&pll5 1>, <&ahb_gates 36>,
-                                <&ahb_gates 44>;
+                       clocks = <&ccu CLK_AHB_LCD>, <&ccu CLK_AHB_HDMI>,
+                                <&ccu CLK_AHB_DE_BE>, <&ccu CLK_DRAM_DE_BE>,
+                                <&ccu CLK_DE_BE>, <&ccu CLK_HDMI>;
                        status = "disabled";
                };
+       };
 
-               framebuffer@2 {
-                       compatible = "allwinner,simple-framebuffer",
-                                    "simple-framebuffer";
-                       allwinner,pipeline = "de_be0-lcd0-tve0";
-                       clocks = <&pll3>, <&pll5 1>, <&ahb_gates 34>,
-                                <&ahb_gates 36>, <&ahb_gates 44>;
-                       status = "disabled";
-               };
+       display-engine {
+               compatible = "allwinner,sun5i-a10s-display-engine";
+               allwinner,pipelines = <&fe0>;
        };
 
-       clocks {
-               ahb_gates: clk@01c20060 {
-                       #clock-cells = <1>;
-                       compatible = "allwinner,sun5i-a10s-ahb-gates-clk";
-                       reg = <0x01c20060 0x8>;
-                       clocks = <&ahb>;
-                       clock-indices = <0>, <1>,
-                                       <2>, <5>, <6>,
-                                       <7>, <8>, <9>,
-                                       <10>, <13>,
-                                       <14>, <17>, <18>,
-                                       <20>, <21>, <22>,
-                                       <26>, <28>, <32>,
-                                       <34>, <36>, <40>,
-                                       <43>, <44>,
-                                       <46>, <51>,
-                                       <52>;
-                       clock-output-names = "ahb_usbotg", "ahb_ehci",
-                                            "ahb_ohci", "ahb_ss", "ahb_dma",
-                                            "ahb_bist", "ahb_mmc0", "ahb_mmc1",
-                                            "ahb_mmc2", "ahb_nand",
-                                            "ahb_sdram", "ahb_emac", "ahb_ts",
-                                            "ahb_spi0", "ahb_spi1", "ahb_spi2",
-                                            "ahb_gps", "ahb_stimer", "ahb_ve",
-                                            "ahb_tve", "ahb_lcd", "ahb_csi",
-                                            "ahb_hdmi", "ahb_de_be",
-                                            "ahb_de_fe", "ahb_iep",
-                                            "ahb_mali400";
-               };
+       soc@1c00000 {
+               hdmi: hdmi@1c16000 {
+                       compatible = "allwinner,sun5i-a10s-hdmi";
+                       reg = <0x01c16000 0x1000>;
+                       interrupts = <58>;
+                       clocks = <&ccu CLK_AHB_HDMI>, <&ccu CLK_HDMI>,
+                                <&ccu CLK_PLL_VIDEO0_2X>,
+                                <&ccu CLK_PLL_VIDEO1_2X>;
+                       clock-names = "ahb", "mod", "pll-0", "pll-1";
+                       dmas = <&dma SUN4I_DMA_NORMAL 16>,
+                              <&dma SUN4I_DMA_NORMAL 16>,
+                              <&dma SUN4I_DMA_DEDICATED 24>;
+                       dma-names = "ddc-tx", "ddc-rx", "audio-tx";
+                       status = "disabled";
 
-               apb0_gates: clk@01c20068 {
-                       #clock-cells = <1>;
-                       compatible = "allwinner,sun5i-a10s-apb0-gates-clk";
-                       reg = <0x01c20068 0x4>;
-                       clocks = <&apb0>;
-                       clock-indices = <0>, <3>,
-                                       <5>, <6>,
-                                       <10>;
-                       clock-output-names = "apb0_codec", "apb0_iis",
-                                            "apb0_pio", "apb0_ir",
-                                            "apb0_keypad";
-               };
+                       ports {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
 
-               apb1_gates: clk@01c2006c {
-                       #clock-cells = <1>;
-                       compatible = "allwinner,sun5i-a10s-apb1-gates-clk";
-                       reg = <0x01c2006c 0x4>;
-                       clocks = <&apb1>;
-                       clock-indices = <0>, <1>,
-                                       <2>, <16>,
-                                       <17>, <18>,
-                                       <19>;
-                       clock-output-names = "apb1_i2c0", "apb1_i2c1",
-                                            "apb1_i2c2", "apb1_uart0",
-                                            "apb1_uart1", "apb1_uart2",
-                                            "apb1_uart3";
-               };
-       };
+                               hdmi_in: port@0 {
+                                       reg = <0>;
 
-       soc@01c00000 {
-               emac: ethernet@01c0b000 {
-                       compatible = "allwinner,sun4i-a10-emac";
-                       reg = <0x01c0b000 0x1000>;
-                       interrupts = <55>;
-                       clocks = <&ahb_gates 17>;
-                       allwinner,sram = <&emac_sram 1>;
-                       status = "disabled";
-               };
+                                       hdmi_in_tcon0: endpoint {
+                                               remote-endpoint = <&tcon0_out_hdmi>;
+                                       };
+                               };
 
-               mdio: mdio@01c0b080 {
-                       compatible = "allwinner,sun4i-a10-mdio";
-                       reg = <0x01c0b080 0x14>;
-                       status = "disabled";
-                       #address-cells = <1>;
-                       #size-cells = <0>;
+                               hdmi_out: port@1 {
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+                                       reg = <1>;
+                               };
+                       };
                };
 
-               pwm: pwm@01c20e00 {
+               pwm: pwm@1c20e00 {
                        compatible = "allwinner,sun5i-a10s-pwm";
                        reg = <0x01c20e00 0xc>;
-                       clocks = <&osc24M>;
+                       clocks = <&ccu CLK_HOSC>;
                        #pwm-cells = <3>;
                        status = "disabled";
                };
-
-               uart0: serial@01c28000 {
-                       compatible = "snps,dw-apb-uart";
-                       reg = <0x01c28000 0x400>;
-                       interrupts = <1>;
-                       reg-shift = <2>;
-                       reg-io-width = <4>;
-                       clocks = <&apb1_gates 16>;
-                       status = "disabled";
-               };
-
-               uart2: serial@01c28800 {
-                       compatible = "snps,dw-apb-uart";
-                       reg = <0x01c28800 0x400>;
-                       interrupts = <3>;
-                       reg-shift = <2>;
-                       reg-io-width = <4>;
-                       clocks = <&apb1_gates 18>;
-                       status = "disabled";
-               };
        };
 };
 
+&ccu {
+       compatible = "allwinner,sun5i-a10s-ccu";
+};
+
 &pio {
        compatible = "allwinner,sun5i-a10s-pinctrl";
 
        uart0_pins_a: uart0@0 {
-               allwinner,pins = "PB19", "PB20";
-               allwinner,function = "uart0";
-               allwinner,drive = <SUN4I_PINCTRL_10_MA>;
-               allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
+               pins = "PB19", "PB20";
+               function = "uart0";
        };
 
-       uart2_pins_a: uart2@0 {
-               allwinner,pins = "PC18", "PC19";
-               allwinner,function = "uart2";
-               allwinner,drive = <SUN4I_PINCTRL_10_MA>;
-               allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
+       uart2_pins_b: uart2@1 {
+               pins = "PC18", "PC19";
+               function = "uart2";
        };
 
-       emac_pins_a: emac0@0 {
-               allwinner,pins = "PA0", "PA1", "PA2",
+       emac_pins_b: emac0@1 {
+               pins = "PA0", "PA1", "PA2",
                                "PA3", "PA4", "PA5", "PA6",
                                "PA7", "PA8", "PA9", "PA10",
                                "PA11", "PA12", "PA13", "PA14",
                                "PA15", "PA16";
-               allwinner,function = "emac";
-               allwinner,drive = <SUN4I_PINCTRL_10_MA>;
-               allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
-       };
-
-       emac_pins_b: emac0@1 {
-               allwinner,pins = "PD6", "PD7", "PD10",
-                               "PD11", "PD12", "PD13", "PD14",
-                               "PD15", "PD18", "PD19", "PD20",
-                               "PD21", "PD22", "PD23", "PD24",
-                               "PD25", "PD26", "PD27";
-               allwinner,function = "emac";
-               allwinner,drive = <SUN4I_PINCTRL_10_MA>;
-               allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
+               function = "emac";
        };
 
        mmc1_pins_a: mmc1@0 {
-               allwinner,pins = "PG3", "PG4", "PG5",
+               pins = "PG3", "PG4", "PG5",
                                 "PG6", "PG7", "PG8";
-               allwinner,function = "mmc1";
-               allwinner,drive = <SUN4I_PINCTRL_30_MA>;
-               allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
+               function = "mmc1";
+               drive-strength = <30>;
        };
 
-       spi2_pins_a: spi2@0 {
-               allwinner,pins = "PB12", "PB13", "PB14";
-               allwinner,function = "spi2";
-               allwinner,drive = <SUN4I_PINCTRL_10_MA>;
-               allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
+       spi2_pins_b: spi2@1 {
+               pins = "PB12", "PB13", "PB14";
+               function = "spi2";
        };
 
-       spi2_cs0_pins_a: spi2_cs0@0 {
-               allwinner,pins = "PB11";
-               allwinner,function = "spi2";
-               allwinner,drive = <SUN4I_PINCTRL_10_MA>;
-               allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
+       spi2_cs0_pins_b: spi2_cs0@1 {
+               pins = "PB11";
+               function = "spi2";
        };
 };
 
 &sram_a {
-       emac_sram: sram-section@8000 {
-               compatible = "allwinner,sun4i-a10-sram-a3-a4";
-               reg = <0x8000 0x4000>;
-               status = "disabled";
+};
+
+&tcon0_out {
+       tcon0_out_hdmi: endpoint@2 {
+               reg = <2>;
+               remote-endpoint = <&hdmi_in_tcon0>;
+               allwinner,tcon-channel = <1>;
        };
 };
index 6efbba6d40a9101144e6f091bdf4d967c6f16bcd..378214d8316ed3c810da3e14796d260dc1849dc5 100644 (file)
@@ -46,7 +46,6 @@
 #include <dt-bindings/gpio/gpio.h>
 #include <dt-bindings/input/input.h>
 #include <dt-bindings/interrupt-controller/irq.h>
-#include <dt-bindings/pinctrl/sun4i-a10.h>
 #include <dt-bindings/pwm/pwm.h>
 
 / {
        pinctrl-0 = <&mmc0_pins_a>, <&mmc0_cd_pin_d709>;
        vmmc-supply = <&reg_vcc3v3>;
        bus-width = <4>;
-       cd-gpios = <&pio 6 0 GPIO_ACTIVE_HIGH>; /* PG0 */
-       cd-inverted;
+       cd-gpios = <&pio 6 0 GPIO_ACTIVE_LOW>; /* PG0 */
        status = "okay";
 };
 
 
 &pio {
        mmc0_cd_pin_d709: mmc0_cd_pin@0 {
-               allwinner,pins = "PG0";
-               allwinner,function = "gpio_in";
-               allwinner,drive = <SUN4I_PINCTRL_10_MA>;
-               allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
+               pins = "PG0";
+               function = "gpio_in";
+               bias-pull-up;
        };
 
        usb0_vbus_detect_pin: usb0_vbus_detect_pin@0 {
-               allwinner,pins = "PG1";
-               allwinner,function = "gpio_in";
-               allwinner,drive = <SUN4I_PINCTRL_10_MA>;
-               allwinner,pull = <SUN4I_PINCTRL_PULL_DOWN>;
+               pins = "PG1";
+               function = "gpio_in";
+               bias-pull-down;
        };
 
        usb0_id_detect_pin: usb0_id_detect_pin@0 {
-               allwinner,pins = "PG2";
-               allwinner,function = "gpio_in";
-               allwinner,drive = <SUN4I_PINCTRL_10_MA>;
-               allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
+               pins = "PG2";
+               function = "gpio_in";
+               bias-pull-up;
        };
 };
 
        status = "okay";
 };
 
-&usb0_vbus_pin_a {
-       allwinner,pins = "PG12";
-};
-
 &usbphy {
        pinctrl-names = "default";
        pinctrl-0 = <&usb0_id_detect_pin>, <&usb0_vbus_detect_pin>;
index 3724b988064eba83f152669407bd127801a23160..7ee0c3f6d7a1bf33441dfb24dd8be40404b1e601 100644 (file)
@@ -46,7 +46,6 @@
 
 #include <dt-bindings/gpio/gpio.h>
 #include <dt-bindings/input/input.h>
-#include <dt-bindings/pinctrl/sun4i-a10.h>
 
 / {
        model = "HSG H702";
        pinctrl-0 = <&mmc0_pins_a>, <&mmc0_cd_pin_h702>;
        vmmc-supply = <&reg_vcc3v3>;
        bus-width = <4>;
-       cd-gpios = <&pio 6 0 GPIO_ACTIVE_HIGH>; /* PG0 */
-       cd-inverted;
+       cd-gpios = <&pio 6 0 GPIO_ACTIVE_LOW>; /* PG0 */
        status = "okay";
 };
 
 
 &pio {
        mmc0_cd_pin_h702: mmc0_cd_pin@0 {
-               allwinner,pins = "PG0";
-               allwinner,function = "gpio_in";
-               allwinner,drive = <SUN4I_PINCTRL_10_MA>;
-               allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
+               pins = "PG0";
+               function = "gpio_in";
+               bias-pull-up;
        };
 
        usb0_id_detect_pin: usb0_id_detect_pin@0 {
-               allwinner,pins = "PG2";
-               allwinner,function = "gpio_in";
-               allwinner,drive = <SUN4I_PINCTRL_10_MA>;
-               allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
+               pins = "PG2";
+               function = "gpio_in";
+               bias-pull-up;
        };
 
        usb0_vbus_detect_pin: usb0_vbus_detect_pin@0 {
-               allwinner,pins = "PG1";
-               allwinner,function = "gpio_in";
-               allwinner,drive = <SUN4I_PINCTRL_10_MA>;
-               allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
+               pins = "PG1";
+               function = "gpio_in";
        };
 };
 
 };
 
 &reg_usb0_vbus {
-       pinctrl-0 = <&usb0_vbus_pin_a>;
        gpio = <&pio 6 12 GPIO_ACTIVE_HIGH>; /* PG12 */
        status = "okay";
 };
        status = "okay";
 };
 
-&usb0_vbus_pin_a {
-       allwinner,pins = "PG12";
-};
-
 &usbphy {
        pinctrl-names = "default";
        pinctrl-0 = <&usb0_id_detect_pin>, <&usb0_vbus_detect_pin>;
index 1b11ec95ae5312546bfd92ba5d1fc09080e5a9fe..439ae3b537dfa184258c484eb49f877af13a5889 100644 (file)
 
 /dts-v1/;
 #include "sun5i-a13.dtsi"
-#include "sunxi-common-regulators.dtsi"
-#include <dt-bindings/gpio/gpio.h>
-#include <dt-bindings/input/input.h>
-#include <dt-bindings/interrupt-controller/irq.h>
-#include <dt-bindings/pinctrl/sun4i-a10.h>
+#include "sun5i-reference-design-tablet.dtsi"
 
 / {
        model = "INet-98V Rev 02";
        compatible = "primux,inet98v-rev2", "allwinner,sun5i-a13";
-
-       aliases {
-               serial0 = &uart1;
-       };
-
-       chosen {
-               stdout-path = "serial0:115200n8";
-       };
-
-};
-
-&cpu0 {
-       cpu-supply = <&reg_dcdc2>;
-};
-
-&ehci0 {
-       status = "okay";
-};
-
-&i2c0 {
-       pinctrl-names = "default";
-       pinctrl-0 = <&i2c0_pins_a>;
-       status = "okay";
-
-       axp209: pmic@34 {
-               reg = <0x34>;
-               interrupts = <0>;
-       };
-};
-
-#include "axp209.dtsi"
-
-&i2c1 {
-       pinctrl-names = "default";
-       pinctrl-0 = <&i2c1_pins_a>;
-       status = "okay";
-
-       pcf8563: rtc@51 {
-               compatible = "nxp,pcf8563";
-               reg = <0x51>;
-       };
-};
-
-&lradc {
-       vref-supply = <&reg_ldo2>;
-       status = "okay";
-
-       button@200 {
-               label = "Volume Up";
-               linux,code = <KEY_VOLUMEUP>;
-               channel = <0>;
-               voltage = <200000>;
-       };
-
-       button@400 {
-               label = "Volume Down";
-               linux,code = <KEY_VOLUMEDOWN>;
-               channel = <0>;
-               voltage = <400000>;
-       };
-};
-
-&mmc0 {
-       pinctrl-names = "default";
-       pinctrl-0 = <&mmc0_pins_a>, <&mmc0_cd_pin_inet98fv2>;
-       vmmc-supply = <&reg_vcc3v3>;
-       bus-width = <4>;
-       cd-gpios = <&pio 6 0 GPIO_ACTIVE_HIGH>; /* PG0 */
-       cd-inverted;
-       status = "okay";
-};
-
-&otg_sram {
-       status = "okay";
-};
-
-&pio {
-       mmc0_cd_pin_inet98fv2: mmc0_cd_pin@0 {
-               allwinner,pins = "PG0";
-               allwinner,function = "gpio_in";
-               allwinner,drive = <SUN4I_PINCTRL_10_MA>;
-               allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
-       };
-
-       usb0_vbus_detect_pin: usb0_vbus_detect_pin@0 {
-               allwinner,pins = "PG1";
-               allwinner,function = "gpio_in";
-               allwinner,drive = <SUN4I_PINCTRL_10_MA>;
-               allwinner,pull = <SUN4I_PINCTRL_PULL_DOWN>;
-       };
-
-       usb0_id_detect_pin: usb0_id_detect_pin@0 {
-               allwinner,pins = "PG2";
-               allwinner,function = "gpio_in";
-               allwinner,drive = <SUN4I_PINCTRL_10_MA>;
-               allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
-       };
-};
-
-&reg_dcdc2 {
-       regulator-always-on;
-       regulator-min-microvolt = <1000000>;
-       regulator-max-microvolt = <1400000>;
-       regulator-name = "vdd-cpu";
-};
-
-&reg_dcdc3 {
-       regulator-always-on;
-       regulator-min-microvolt = <1250000>;
-       regulator-max-microvolt = <1250000>;
-       regulator-name = "vdd-int-pll";
-};
-
-&reg_ldo1 {
-       regulator-name = "vdd-rtc";
-};
-
-&reg_ldo2 {
-       regulator-always-on;
-       regulator-min-microvolt = <3000000>;
-       regulator-max-microvolt = <3000000>;
-       regulator-name = "avcc";
-};
-
-&reg_ldo3 {
-       regulator-min-microvolt = <3300000>;
-       regulator-max-microvolt = <3300000>;
-       regulator-name = "vcc-wifi";
-};
-
-&reg_usb0_vbus {
-       gpio = <&pio 6 12 GPIO_ACTIVE_HIGH>; /* PG12 */
-       status = "okay";
-};
-
-&uart1 {
-       pinctrl-names = "default";
-       pinctrl-0 = <&uart1_pins_b>;
-       status = "okay";
-};
-
-&usb_otg {
-       dr_mode = "otg";
-       status = "okay";
-};
-
-&usb0_vbus_pin_a {
-       allwinner,pins = "PG12";
-};
-
-&usbphy {
-       pinctrl-names = "default";
-       pinctrl-0 = <&usb0_id_detect_pin>, <&usb0_vbus_detect_pin>;
-       usb0_id_det-gpio = <&pio 6 2 GPIO_ACTIVE_HIGH>; /* PG2 */
-       usb0_vbus_det-gpio = <&pio 6 1 GPIO_ACTIVE_HIGH>; /* PG1 */
-       usb0_vbus-supply = <&reg_usb0_vbus>;
-       usb1_vbus-supply = <&reg_ldo3>;
-       status = "okay";
 };
index 081329e2b80b45810e4673c3bbf759fbd455ad36..aa4b34fd912697ebaa4f69ca50e2c60374295c34 100644 (file)
@@ -46,7 +46,6 @@
 #include "sunxi-common-regulators.dtsi"
 
 #include <dt-bindings/gpio/gpio.h>
-#include <dt-bindings/pinctrl/sun4i-a10.h>
 
 / {
        model = "Olimex A13-Olinuxino Micro";
        pinctrl-0 = <&mmc0_pins_a>, <&mmc0_cd_pin_olinuxinom>;
        vmmc-supply = <&reg_vcc3v3>;
        bus-width = <4>;
-       cd-gpios = <&pio 6 0 GPIO_ACTIVE_HIGH>; /* PG0 */
-       cd-inverted;
+       cd-gpios = <&pio 6 0 GPIO_ACTIVE_LOW>; /* PG0 */
        status = "okay";
 };
 
 
 &pio {
        mmc0_cd_pin_olinuxinom: mmc0_cd_pin@0 {
-               allwinner,pins = "PG0";
-               allwinner,function = "gpio_in";
-               allwinner,drive = <SUN4I_PINCTRL_10_MA>;
-               allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
+               pins = "PG0";
+               function = "gpio_in";
+               bias-pull-up;
        };
 
        led_pins_olinuxinom: led_pins@0 {
-               allwinner,pins = "PG9";
-               allwinner,function = "gpio_out";
-               allwinner,drive = <SUN4I_PINCTRL_20_MA>;
-               allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
+               pins = "PG9";
+               function = "gpio_out";
+               drive-strength = <20>;
        };
 
        usb0_id_detect_pin: usb0_id_detect_pin@0 {
-               allwinner,pins = "PG2";
-               allwinner,function = "gpio_in";
-               allwinner,drive = <SUN4I_PINCTRL_10_MA>;
-               allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
+               pins = "PG2";
+               function = "gpio_in";
+               bias-pull-up;
        };
 
        usb0_vbus_detect_pin: usb0_vbus_detect_pin@0 {
-               allwinner,pins = "PG1";
-               allwinner,function = "gpio_in";
-               allwinner,drive = <SUN4I_PINCTRL_10_MA>;
-               allwinner,pull = <SUN4I_PINCTRL_PULL_DOWN>;
+               pins = "PG1";
+               function = "gpio_in";
+               bias-pull-down;
        };
 
        usb0_vbus_pin_olinuxinom: usb0_vbus_pin@0 {
-               allwinner,pins = "PG12";
-               allwinner,function = "gpio_out";
-               allwinner,drive = <SUN4I_PINCTRL_10_MA>;
-               allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
+               pins = "PG12";
+               function = "gpio_out";
        };
 
        usb1_vbus_pin_olinuxinom: usb1_vbus_pin@0 {
-               allwinner,pins = "PG11";
-               allwinner,function = "gpio_out";
-               allwinner,drive = <SUN4I_PINCTRL_10_MA>;
-               allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
+               pins = "PG11";
+               function = "gpio_out";
        };
 };
 
index b3c234c65ea19bb1f69984f350db0dad7ceea440..437ad913a373061021a46543c78f03afb89f8396 100644 (file)
@@ -48,7 +48,6 @@
 
 #include <dt-bindings/gpio/gpio.h>
 #include <dt-bindings/input/input.h>
-#include <dt-bindings/pinctrl/sun4i-a10.h>
 
 / {
        model = "Olimex A13-Olinuxino";
                        default-state = "on";
                };
        };
+
+       bridge {
+               compatible = "dumb-vga-dac";
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               ports {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       port@0 {
+                               reg = <0>;
+
+                               vga_bridge_in: endpoint {
+                                       remote-endpoint = <&tcon0_out_vga>;
+                               };
+                       };
+
+                       port@1 {
+                               reg = <1>;
+
+                               vga_bridge_out: endpoint {
+                                       remote-endpoint = <&vga_con_in>;
+                               };
+                       };
+               };
+       };
+
+       vga {
+               compatible = "vga-connector";
+
+               port {
+                       vga_con_in: endpoint {
+                               remote-endpoint = <&vga_bridge_out>;
+                       };
+               };
+       };
+};
+
+&be0 {
+       status = "okay";
+};
+
+&codec {
+       status = "okay";
 };
 
 &ehci0 {
        pinctrl-0 = <&mmc0_pins_a>, <&mmc0_cd_pin_olinuxino>;
        vmmc-supply = <&reg_vcc3v3>;
        bus-width = <4>;
-       cd-gpios = <&pio 6 0 GPIO_ACTIVE_HIGH>; /* PG0 */
-       cd-inverted;
+       cd-gpios = <&pio 6 0 GPIO_ACTIVE_LOW>; /* PG0 */
        status = "okay";
 };
 
 
 &pio {
        mmc0_cd_pin_olinuxino: mmc0_cd_pin@0 {
-               allwinner,pins = "PG0";
-               allwinner,function = "gpio_in";
-               allwinner,drive = <SUN4I_PINCTRL_10_MA>;
-               allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
+               pins = "PG0";
+               function = "gpio_in";
+               bias-pull-up;
        };
 
        led_pins_olinuxino: led_pins@0 {
-               allwinner,pins = "PG9";
-               allwinner,function = "gpio_out";
-               allwinner,drive = <SUN4I_PINCTRL_20_MA>;
-               allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
+               pins = "PG9";
+               function = "gpio_out";
+               drive-strength = <20>;
        };
 
        usb0_id_detect_pin: usb0_id_detect_pin@0 {
-               allwinner,pins = "PG2";
-               allwinner,function = "gpio_in";
-               allwinner,drive = <SUN4I_PINCTRL_10_MA>;
-               allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
+               pins = "PG2";
+               function = "gpio_in";
+               bias-pull-up;
        };
 
        usb0_vbus_detect_pin: usb0_vbus_detect_pin@0 {
-               allwinner,pins = "PG1";
-               allwinner,function = "gpio_in";
-               allwinner,drive = <SUN4I_PINCTRL_10_MA>;
-               allwinner,pull = <SUN4I_PINCTRL_PULL_DOWN>;
+               pins = "PG1";
+               function = "gpio_in";
+               bias-pull-down;
        };
 
        usb1_vbus_pin_olinuxino: usb1_vbus_pin@0 {
-               allwinner,pins = "PG11";
-               allwinner,function = "gpio_out";
-               allwinner,drive = <SUN4I_PINCTRL_10_MA>;
-               allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
+               pins = "PG11";
+               function = "gpio_out";
        };
 };
 
        status = "okay";
 };
 
+&tcon0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&lcd_rgb666_pins>;
+       status = "okay";
+};
+
+&tcon0_out {
+       tcon0_out_vga: endpoint@0 {
+               reg = <0>;
+               remote-endpoint = <&vga_bridge_in>;
+       };
+};
+
 &uart1 {
        pinctrl-names = "default";
        pinctrl-0 = <&uart1_pins_b>;
        status = "okay";
 };
 
-&usb0_vbus_pin_a {
-       allwinner,pins = "PG12";
-};
-
 &usbphy {
        pinctrl-names = "default";
        pinctrl-0 = <&usb0_id_detect_pin>, <&usb0_vbus_detect_pin>;
index a8b0bcc0451486f28689656884fc3431bba4f0ea..bfdd38d6bfccc6af92e7225d3713ca103243e53f 100644 (file)
 };
 
 &codec_pa_pin {
-       allwinner,pins = "PG3";
-};
-
-&i2c1 {
-       icn8318: touchscreen@40 {
-               compatible = "chipone,icn8318";
-               reg = <0x40>;
-               interrupt-parent = <&pio>;
-               interrupts = <6 9 IRQ_TYPE_EDGE_FALLING>; /* EINT9 (PG9) */
-               pinctrl-names = "default";
-               pinctrl-0 = <&ts_wake_pin_p66>;
-               wake-gpios = <&pio 1 3 GPIO_ACTIVE_HIGH>; /* PB3 */
-               touchscreen-size-x = <800>;
-               touchscreen-size-y = <480>;
-               touchscreen-inverted-x;
-               touchscreen-swapped-x-y;
-       };
+       pins = "PG3";
 };
 
 &mmc2 {
 
 &pio {
        i2c_lcd_pins: i2c_lcd_pin@0 {
-               allwinner,pins = "PG10", "PG12";
-               allwinner,function = "gpio_out";
-               allwinner,drive = <SUN4I_PINCTRL_10_MA>;
-               allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
-       };
-
-       ts_wake_pin_p66: ts_wake_pin@0 {
-               allwinner,pins = "PB3";
-               allwinner,function = "gpio_out";
-               allwinner,drive = <SUN4I_PINCTRL_10_MA>;
-               allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
+               pins = "PG10", "PG12";
+               function = "gpio_out";
+               bias-pull-up;
        };
-
 };
 
 &reg_usb0_vbus {
        gpio = <&pio 1 4 GPIO_ACTIVE_HIGH>; /* PB4 */
 };
 
+&touchscreen {
+       compatible = "chipone,icn8318";
+       reg = <0x40>;
+       /* The P66 uses a different EINT then the reference design */
+       interrupts = <6 9 IRQ_TYPE_EDGE_FALLING>; /* EINT9 (PG9) */
+       /* The icn8318 binding expects wake-gpios instead of power-gpios */
+       wake-gpios = <&pio 1 3 GPIO_ACTIVE_HIGH>; /* PB3 */
+       touchscreen-size-x = <800>;
+       touchscreen-size-y = <480>;
+       touchscreen-inverted-x;
+       touchscreen-swapped-x-y;
+       status = "okay";
+};
+
 &uart1 {
        /* The P66 uses the uart pins as gpios */
        status = "disabled";
 };
 
 &usb0_vbus_pin_a {
-       allwinner,pins = "PB4";
+       pins = "PB4";
 };
index e012890e0cf2f9b998697deaacff1fca74a56769..b1d827765530f9369916825e3fd499fd3f34e1dc 100644 (file)
 
 #include "sun5i.dtsi"
 
-#include <dt-bindings/pinctrl/sun4i-a10.h>
 #include <dt-bindings/thermal/thermal.h>
 
 / {
        interrupt-parent = <&intc>;
 
-       chosen {
-               #address-cells = <1>;
-               #size-cells = <1>;
-               ranges;
-
-               framebuffer@0 {
-                       compatible = "allwinner,simple-framebuffer",
-                                    "simple-framebuffer";
-                       allwinner,pipeline = "de_be0-lcd0";
-                       clocks = <&ahb_gates 36>, <&ahb_gates 44>, <&de_be_clk>,
-                                <&tcon_ch0_clk>, <&dram_gates 26>;
-                       status = "disabled";
-               };
-       };
-
        thermal-zones {
                cpu_thermal {
                        /* milliseconds */
@@ -84,7 +68,7 @@
                        trips {
                                cpu_alert0: cpu_alert0 {
                                        /* milliCelsius */
-                                       temperature = <850000>;
+                                       temperature = <85000>;
                                        hysteresis = <2000>;
                                        type = "passive";
                                };
                };
        };
 
-       clocks {
-               ahb_gates: clk@01c20060 {
-                       #clock-cells = <1>;
-                       compatible = "allwinner,sun5i-a13-ahb-gates-clk";
-                       reg = <0x01c20060 0x8>;
-                       clocks = <&ahb>;
-                       clock-indices = <0>, <1>,
-                                       <2>, <5>, <6>,
-                                       <7>, <8>, <9>,
-                                       <10>, <13>,
-                                       <14>, <20>,
-                                       <21>, <22>,
-                                       <28>, <32>, <34>,
-                                       <36>, <40>, <44>,
-                                       <46>, <51>,
-                                       <52>;
-                       clock-output-names = "ahb_usbotg", "ahb_ehci",
-                                            "ahb_ohci", "ahb_ss", "ahb_dma",
-                                            "ahb_bist", "ahb_mmc0", "ahb_mmc1",
-                                            "ahb_mmc2", "ahb_nand",
-                                            "ahb_sdram", "ahb_spi0",
-                                            "ahb_spi1", "ahb_spi2",
-                                            "ahb_stimer", "ahb_ve", "ahb_tve",
-                                            "ahb_lcd", "ahb_csi", "ahb_de_be",
-                                            "ahb_de_fe", "ahb_iep",
-                                            "ahb_mali400";
-               };
-
-               apb0_gates: clk@01c20068 {
-                       #clock-cells = <1>;
-                       compatible = "allwinner,sun5i-a13-apb0-gates-clk";
-                       reg = <0x01c20068 0x4>;
-                       clocks = <&apb0>;
-                       clock-indices = <0>, <5>,
-                                       <6>;
-                       clock-output-names = "apb0_codec", "apb0_pio",
-                                            "apb0_ir";
-               };
-
-               apb1_gates: clk@01c2006c {
-                       #clock-cells = <1>;
-                       compatible = "allwinner,sun5i-a13-apb1-gates-clk";
-                       reg = <0x01c2006c 0x4>;
-                       clocks = <&apb1>;
-                       clock-indices = <0>, <1>,
-                                       <2>, <17>,
-                                       <19>;
-                       clock-output-names = "apb1_i2c0", "apb1_i2c1",
-                                            "apb1_i2c2", "apb1_uart1",
-                                            "apb1_uart3";
-               };
-
-               dram_gates: clk@01c20100 {
-                       #clock-cells = <1>;
-                       compatible = "allwinner,sun5i-a13-dram-gates-clk",
-                                    "allwinner,sun4i-a10-gates-clk";
-                       reg = <0x01c20100 0x4>;
-                       clocks = <&pll5 0>;
-                       clock-indices = <0>,
-                                       <1>,
-                                       <25>,
-                                       <26>,
-                                       <29>,
-                                       <31>;
-                       clock-output-names = "dram_ve",
-                                            "dram_csi",
-                                            "dram_de_fe",
-                                            "dram_de_be",
-                                            "dram_ace",
-                                            "dram_iep";
-               };
-
-               de_be_clk: clk@01c20104 {
-                       #clock-cells = <0>;
-                       #reset-cells = <0>;
-                       compatible = "allwinner,sun4i-a10-display-clk";
-                       reg = <0x01c20104 0x4>;
-                       clocks = <&pll3>, <&pll7>, <&pll5 1>;
-                       clock-output-names = "de-be";
-               };
-
-               de_fe_clk: clk@01c2010c {
-                       #clock-cells = <0>;
-                       #reset-cells = <0>;
-                       compatible = "allwinner,sun4i-a10-display-clk";
-                       reg = <0x01c2010c 0x4>;
-                       clocks = <&pll3>, <&pll7>, <&pll5 1>;
-                       clock-output-names = "de-fe";
-               };
-
-               tcon_ch0_clk: clk@01c20118 {
-                       #clock-cells = <0>;
-                       #reset-cells = <1>;
-                       compatible = "allwinner,sun4i-a10-tcon-ch0-clk";
-                       reg = <0x01c20118 0x4>;
-                       clocks = <&pll3>, <&pll7>, <&pll3x2>, <&pll7x2>;
-                       clock-output-names = "tcon-ch0-sclk";
-               };
-
-               tcon_ch1_clk: clk@01c2012c {
-                       #clock-cells = <0>;
-                       compatible = "allwinner,sun4i-a10-tcon-ch1-clk";
-                       reg = <0x01c2012c 0x4>;
-                       clocks = <&pll3>, <&pll7>, <&pll3x2>, <&pll7x2>;
-                       clock-output-names = "tcon-ch1-sclk";
-               };
-       };
-
        display-engine {
                compatible = "allwinner,sun5i-a13-display-engine";
                allwinner,pipelines = <&fe0>;
        };
 
-       soc@01c00000 {
-               tcon0: lcd-controller@01c0c000 {
-                       compatible = "allwinner,sun5i-a13-tcon";
-                       reg = <0x01c0c000 0x1000>;
-                       interrupts = <44>;
-                       resets = <&tcon_ch0_clk 1>;
-                       reset-names = "lcd";
-                       clocks = <&ahb_gates 36>,
-                                <&tcon_ch0_clk>,
-                                <&tcon_ch1_clk>;
-                       clock-names = "ahb",
-                                     "tcon-ch0",
-                                     "tcon-ch1";
-                       clock-output-names = "tcon-pixel-clock";
-                       status = "disabled";
-
-                       ports {
-                               #address-cells = <1>;
-                               #size-cells = <0>;
-
-                               tcon0_in: port@0 {
-                                       #address-cells = <1>;
-                                       #size-cells = <0>;
-                                       reg = <0>;
-
-                                       tcon0_in_be0: endpoint@0 {
-                                               reg = <0>;
-                                               remote-endpoint = <&be0_out_tcon0>;
-                                       };
-                               };
-
-                               tcon0_out: port@1 {
-                                       #address-cells = <1>;
-                                       #size-cells = <0>;
-                                       reg = <1>;
-                               };
-                       };
-               };
-
-               pwm: pwm@01c20e00 {
+       soc@1c00000 {
+               pwm: pwm@1c20e00 {
                        compatible = "allwinner,sun5i-a13-pwm";
                        reg = <0x01c20e00 0xc>;
-                       clocks = <&osc24M>;
+                       clocks = <&ccu CLK_HOSC>;
                        #pwm-cells = <3>;
                        status = "disabled";
                };
 
-               fe0: display-frontend@01e00000 {
-                       compatible = "allwinner,sun5i-a13-display-frontend";
-                       reg = <0x01e00000 0x20000>;
-                       interrupts = <47>;
-                       clocks = <&ahb_gates 46>, <&de_fe_clk>,
-                                <&dram_gates 25>;
-                       clock-names = "ahb", "mod",
-                                     "ram";
-                       resets = <&de_fe_clk>;
-                       status = "disabled";
-
-                       ports {
-                               #address-cells = <1>;
-                               #size-cells = <0>;
-
-                               fe0_out: port@1 {
-                                       #address-cells = <1>;
-                                       #size-cells = <0>;
-                                       reg = <1>;
-
-                                       fe0_out_be0: endpoint@0 {
-                                               reg = <0>;
-                                               remote-endpoint = <&be0_in_fe0>;
-                                       };
-                               };
-                       };
-               };
-
-               be0: display-backend@01e60000 {
-                       compatible = "allwinner,sun5i-a13-display-backend";
-                       reg = <0x01e60000 0x10000>;
-                       clocks = <&ahb_gates 44>, <&de_be_clk>,
-                                <&dram_gates 26>;
-                       clock-names = "ahb", "mod",
-                                     "ram";
-                       resets = <&de_be_clk>;
-                       status = "disabled";
-
-                       assigned-clocks = <&de_be_clk>;
-                       assigned-clock-rates = <300000000>;
-
-                       ports {
-                               #address-cells = <1>;
-                               #size-cells = <0>;
-
-                               be0_in: port@0 {
-                                       #address-cells = <1>;
-                                       #size-cells = <0>;
-                                       reg = <0>;
-
-                                       be0_in_fe0: endpoint@0 {
-                                               reg = <0>;
-                                               remote-endpoint = <&fe0_out_be0>;
-                                       };
-                               };
-
-                               be0_out: port@1 {
-                                       #address-cells = <1>;
-                                       #size-cells = <0>;
-                                       reg = <1>;
-
-                                       be0_out_tcon0: endpoint@0 {
-                                               reg = <0>;
-                                               remote-endpoint = <&tcon0_in_be0>;
-                                       };
-                               };
-                       };
-               };
        };
 };
 
+&ccu {
+       compatible = "allwinner,sun5i-a13-ccu";
+};
+
 &cpu0 {
        clock-latency = <244144>; /* 8 32k periods */
        operating-points = <
                432000  1200000
                >;
        #cooling-cells = <2>;
-       cooling-min-level = <0>;
-       cooling-max-level = <5>;
 };
 
 &pio {
        compatible = "allwinner,sun5i-a13-pinctrl";
-
-       lcd_rgb666_pins: lcd_rgb666@0 {
-               allwinner,pins = "PD2", "PD3", "PD4", "PD5", "PD6", "PD7",
-                                "PD10", "PD11", "PD12", "PD13", "PD14", "PD15",
-                                "PD18", "PD19", "PD20", "PD21", "PD22", "PD23",
-                                "PD24", "PD25", "PD26", "PD27";
-               allwinner,function = "lcd0";
-               allwinner,drive = <SUN4I_PINCTRL_10_MA>;
-               allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
-       };
-
-       uart1_pins_a: uart1@0 {
-               allwinner,pins = "PE10", "PE11";
-               allwinner,function = "uart1";
-               allwinner,drive = <SUN4I_PINCTRL_10_MA>;
-               allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
-       };
-
-       uart1_pins_b: uart1@1 {
-               allwinner,pins = "PG3", "PG4";
-               allwinner,function = "uart1";
-               allwinner,drive = <SUN4I_PINCTRL_10_MA>;
-               allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
-       };
 };
index 92a2dc6250a571317816fc03a633138ae429cc72..c55b11a4d3c7f59988381a2afc130324a51fb598 100644 (file)
 
 &pio {
        usb0_id_pin_chip_pro: usb0-id-pin@0 {
-               allwinner,pins = "PG2";
-               allwinner,function = "gpio_in";
-               allwinner,drive = <SUN4I_PINCTRL_10_MA>;
-               allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
+               pins = "PG2";
+               function = "gpio_in";
        };
 
        wifi_reg_on_pin_chip_pro: wifi-reg-on-pin@0 {
-               allwinner,pins = "PB10";
-               allwinner,function = "gpio_out";
-               allwinner,drive = <SUN4I_PINCTRL_10_MA>;
-               allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
+               pins = "PB10";
+               function = "gpio_out";
        };
 };
 
 &pwm {
        pinctrl-names = "default";
-       pinctrl-0 = <&pwm0_pins_a>, <&pwm1_pins>;
+       pinctrl-0 = <&pwm0_pins>, <&pwm1_pins>;
        status = "disabled";
 };
 
 
 &uart1 {
        pinctrl-names = "default";
-       pinctrl-0 = <&uart1_pins_a>, <&uart1_cts_rts_pins_a>;
+       pinctrl-0 = <&uart1_pins_b>, <&uart1_cts_rts_pins_a>;
        status = "okay";
 };
 
index ea86d4d58db62df70e7966e511cd6280c31579fc..ef0b7446a99d1113e9baa797d689c4950177743d 100644 (file)
  *     OTHER DEALINGS IN THE SOFTWARE.
  */
 
-#include <dt-bindings/clock/sun4i-a10-pll2.h>
+#include "sun5i.dtsi"
+
+#include <dt-bindings/clock/sun5i-ccu.h>
 #include <dt-bindings/dma/sun4i-a10.h>
-#include <dt-bindings/pinctrl/sun4i-a10.h>
+#include <dt-bindings/reset/sun5i-ccu.h>
 
 / {
-       interrupt-parent = <&intc>;
-       #address-cells = <1>;
-       #size-cells = <1>;
-
-       cpus {
-               #address-cells = <1>;
-               #size-cells = <0>;
-
-               cpu0: cpu@0 {
-                       device_type = "cpu";
-                       compatible = "arm,cortex-a8";
-                       reg = <0x0>;
-                       clocks = <&cpu>;
-               };
-       };
-
-       clocks {
-               #address-cells = <1>;
-               #size-cells = <1>;
-               ranges;
-
-               /*
-                * This is a dummy clock, to be used as placeholder on
-                * other mux clocks when a specific parent clock is not
-                * yet implemented. It should be dropped when the driver
-                * is complete.
-                */
-               dummy: dummy {
-                       #clock-cells = <0>;
-                       compatible = "fixed-clock";
-                       clock-frequency = <0>;
-               };
-
-               osc24M: clk@01c20050 {
-                       #clock-cells = <0>;
-                       compatible = "allwinner,sun4i-a10-osc-clk";
-                       reg = <0x01c20050 0x4>;
-                       clock-frequency = <24000000>;
-                       clock-output-names = "osc24M";
-               };
-
-               osc3M: osc3M-clk {
-                       compatible = "fixed-factor-clock";
-                       #clock-cells = <0>;
-                       clock-div = <8>;
-                       clock-mult = <1>;
-                       clocks = <&osc24M>;
-                       clock-output-names = "osc3M";
-               };
-
-               osc32k: clk@0 {
-                       #clock-cells = <0>;
-                       compatible = "fixed-clock";
-                       clock-frequency = <32768>;
-                       clock-output-names = "osc32k";
-               };
-
-               pll1: clk@01c20000 {
-                       #clock-cells = <0>;
-                       compatible = "allwinner,sun4i-a10-pll1-clk";
-                       reg = <0x01c20000 0x4>;
-                       clocks = <&osc24M>;
-                       clock-output-names = "pll1";
-               };
-
-               pll2: clk@01c20008 {
-                       #clock-cells = <1>;
-                       compatible = "allwinner,sun5i-a13-pll2-clk";
-                       reg = <0x01c20008 0x8>;
-                       clocks = <&osc24M>;
-                       clock-output-names = "pll2-1x", "pll2-2x",
-                                            "pll2-4x", "pll2-8x";
-               };
-
-               pll3: clk@01c20010 {
-                       #clock-cells = <0>;
-                       compatible = "allwinner,sun4i-a10-pll3-clk";
-                       reg = <0x01c20010 0x4>;
-                       clocks = <&osc3M>;
-                       clock-output-names = "pll3";
-               };
-
-               pll3x2: pll3x2-clk {
-                       compatible = "allwinner,sun4i-a10-pll3-2x-clk";
-                       #clock-cells = <0>;
-                       clock-div = <1>;
-                       clock-mult = <2>;
-                       clocks = <&pll3>;
-                       clock-output-names = "pll3-2x";
-               };
-
-               pll4: clk@01c20018 {
-                       #clock-cells = <0>;
-                       compatible = "allwinner,sun4i-a10-pll1-clk";
-                       reg = <0x01c20018 0x4>;
-                       clocks = <&osc24M>;
-                       clock-output-names = "pll4";
-               };
-
-               pll5: clk@01c20020 {
-                       #clock-cells = <1>;
-                       compatible = "allwinner,sun4i-a10-pll5-clk";
-                       reg = <0x01c20020 0x4>;
-                       clocks = <&osc24M>;
-                       clock-output-names = "pll5_ddr", "pll5_other";
-               };
-
-               pll6: clk@01c20028 {
-                       #clock-cells = <1>;
-                       compatible = "allwinner,sun4i-a10-pll6-clk";
-                       reg = <0x01c20028 0x4>;
-                       clocks = <&osc24M>;
-                       clock-output-names = "pll6_sata", "pll6_other", "pll6";
-               };
-
-               pll7: clk@01c20030 {
-                       #clock-cells = <0>;
-                       compatible = "allwinner,sun4i-a10-pll3-clk";
-                       reg = <0x01c20030 0x4>;
-                       clocks = <&osc3M>;
-                       clock-output-names = "pll7";
-               };
-
-               pll7x2: pll7x2-clk {
-                       compatible = "allwinner,sun4i-a10-pll3-2x-clk";
-                       #clock-cells = <0>;
-                       clock-div = <1>;
-                       clock-mult = <2>;
-                       clocks = <&pll7>;
-                       clock-output-names = "pll7-2x";
-               };
-
-               /* dummy is 200M */
-               cpu: cpu@01c20054 {
-                       #clock-cells = <0>;
-                       compatible = "allwinner,sun4i-a10-cpu-clk";
-                       reg = <0x01c20054 0x4>;
-                       clocks = <&osc32k>, <&osc24M>, <&pll1>, <&dummy>;
-                       clock-output-names = "cpu";
-               };
-
-               axi: axi@01c20054 {
-                       #clock-cells = <0>;
-                       compatible = "allwinner,sun4i-a10-axi-clk";
-                       reg = <0x01c20054 0x4>;
-                       clocks = <&cpu>;
-                       clock-output-names = "axi";
-               };
-
-               ahb: ahb@01c20054 {
-                       #clock-cells = <0>;
-                       compatible = "allwinner,sun5i-a13-ahb-clk";
-                       reg = <0x01c20054 0x4>;
-                       clocks = <&axi>, <&cpu>, <&pll6 1>;
-                       clock-output-names = "ahb";
-                       /*
-                        * Use PLL6 as parent, instead of CPU/AXI
-                        * which has rate changes due to cpufreq
-                        */
-                       assigned-clocks = <&ahb>;
-                       assigned-clock-parents = <&pll6 1>;
-               };
-
-               apb0: apb0@01c20054 {
-                       #clock-cells = <0>;
-                       compatible = "allwinner,sun4i-a10-apb0-clk";
-                       reg = <0x01c20054 0x4>;
-                       clocks = <&ahb>;
-                       clock-output-names = "apb0";
-               };
-
-               apb1: clk@01c20058 {
-                       #clock-cells = <0>;
-                       compatible = "allwinner,sun4i-a10-apb1-clk";
-                       reg = <0x01c20058 0x4>;
-                       clocks = <&osc24M>, <&pll6 1>, <&osc32k>;
-                       clock-output-names = "apb1";
-               };
-
-               axi_gates: clk@01c2005c {
-                       #clock-cells = <1>;
-                       compatible = "allwinner,sun4i-a10-gates-clk";
-                       reg = <0x01c2005c 0x4>;
-                       clocks = <&axi>;
-                       clock-indices = <0>;
-                       clock-output-names = "axi_dram";
-               };
-
-               ahb_gates: clk@01c20060 {
-                       #clock-cells = <1>;
-                       compatible = "allwinner,sun5i-a13-ahb-gates-clk";
-                       reg = <0x01c20060 0x8>;
-                       clocks = <&ahb>;
-                       clock-indices = <0>, <1>,
-                                       <2>, <5>, <6>,
-                                       <7>, <8>, <9>,
-                                       <10>, <13>,
-                                       <14>, <17>, <20>,
-                                       <21>, <22>,
-                                       <28>, <32>, <34>,
-                                       <36>, <40>, <44>,
-                                       <46>, <51>,
-                                       <52>;
-                       clock-output-names = "ahb_usbotg", "ahb_ehci",
-                                            "ahb_ohci", "ahb_ss", "ahb_dma",
-                                            "ahb_bist", "ahb_mmc0", "ahb_mmc1",
-                                            "ahb_mmc2", "ahb_nand",
-                                            "ahb_sdram", "ahb_emac", "ahb_spi0",
-                                            "ahb_spi1", "ahb_spi2",
-                                            "ahb_hstimer", "ahb_ve", "ahb_tve",
-                                            "ahb_lcd", "ahb_csi", "ahb_de_be",
-                                            "ahb_de_fe", "ahb_iep",
-                                            "ahb_mali400";
-               };
-
-               apb0_gates: clk@01c20068 {
-                       #clock-cells = <1>;
-                       compatible = "allwinner,sun4i-a10-gates-clk";
-                       reg = <0x01c20068 0x4>;
-                       clocks = <&apb0>;
-                       clock-indices = <0>, <3>,
-                                       <5>, <6>;
-                       clock-output-names = "apb0_codec", "apb0_i2s0",
-                                            "apb0_pio", "apb0_ir";
-               };
-
-               apb1_gates: clk@01c2006c {
-                       #clock-cells = <1>;
-                       compatible = "allwinner,sun4i-a10-gates-clk";
-                       reg = <0x01c2006c 0x4>;
-                       clocks = <&apb1>;
-                       clock-indices = <0>, <1>,
-                                       <2>, <17>,
-                                       <18>, <19>;
-                       clock-output-names = "apb1_i2c0", "apb1_i2c1",
-                                            "apb1_i2c2", "apb1_uart1",
-                                            "apb1_uart2", "apb1_uart3";
-               };
-
-               nand_clk: clk@01c20080 {
-                       #clock-cells = <0>;
-                       compatible = "allwinner,sun4i-a10-mod0-clk";
-                       reg = <0x01c20080 0x4>;
-                       clocks = <&osc24M>, <&pll6 1>, <&pll5 1>;
-                       clock-output-names = "nand";
-               };
-
-               ms_clk: clk@01c20084 {
-                       #clock-cells = <0>;
-                       compatible = "allwinner,sun4i-a10-mod0-clk";
-                       reg = <0x01c20084 0x4>;
-                       clocks = <&osc24M>, <&pll6 1>, <&pll5 1>;
-                       clock-output-names = "ms";
-               };
-
-               mmc0_clk: clk@01c20088 {
-                       #clock-cells = <1>;
-                       compatible = "allwinner,sun4i-a10-mmc-clk";
-                       reg = <0x01c20088 0x4>;
-                       clocks = <&osc24M>, <&pll6 1>, <&pll5 1>;
-                       clock-output-names = "mmc0",
-                                            "mmc0_output",
-                                            "mmc0_sample";
-               };
-
-               mmc1_clk: clk@01c2008c {
-                       #clock-cells = <1>;
-                       compatible = "allwinner,sun4i-a10-mmc-clk";
-                       reg = <0x01c2008c 0x4>;
-                       clocks = <&osc24M>, <&pll6 1>, <&pll5 1>;
-                       clock-output-names = "mmc1",
-                                            "mmc1_output",
-                                            "mmc1_sample";
-               };
-
-               mmc2_clk: clk@01c20090 {
-                       #clock-cells = <1>;
-                       compatible = "allwinner,sun4i-a10-mmc-clk";
-                       reg = <0x01c20090 0x4>;
-                       clocks = <&osc24M>, <&pll6 1>, <&pll5 1>;
-                       clock-output-names = "mmc2",
-                                            "mmc2_output",
-                                            "mmc2_sample";
-               };
-
-               ts_clk: clk@01c20098 {
-                       #clock-cells = <0>;
-                       compatible = "allwinner,sun4i-a10-mod0-clk";
-                       reg = <0x01c20098 0x4>;
-                       clocks = <&osc24M>, <&pll6 1>, <&pll5 1>;
-                       clock-output-names = "ts";
-               };
-
-               ss_clk: clk@01c2009c {
-                       #clock-cells = <0>;
-                       compatible = "allwinner,sun4i-a10-mod0-clk";
-                       reg = <0x01c2009c 0x4>;
-                       clocks = <&osc24M>, <&pll6 1>, <&pll5 1>;
-                       clock-output-names = "ss";
-               };
-
-               spi0_clk: clk@01c200a0 {
-                       #clock-cells = <0>;
-                       compatible = "allwinner,sun4i-a10-mod0-clk";
-                       reg = <0x01c200a0 0x4>;
-                       clocks = <&osc24M>, <&pll6 1>, <&pll5 1>;
-                       clock-output-names = "spi0";
-               };
-
-               spi1_clk: clk@01c200a4 {
-                       #clock-cells = <0>;
-                       compatible = "allwinner,sun4i-a10-mod0-clk";
-                       reg = <0x01c200a4 0x4>;
-                       clocks = <&osc24M>, <&pll6 1>, <&pll5 1>;
-                       clock-output-names = "spi1";
-               };
-
-               spi2_clk: clk@01c200a8 {
-                       #clock-cells = <0>;
-                       compatible = "allwinner,sun4i-a10-mod0-clk";
-                       reg = <0x01c200a8 0x4>;
-                       clocks = <&osc24M>, <&pll6 1>, <&pll5 1>;
-                       clock-output-names = "spi2";
-               };
-
-               ir0_clk: clk@01c200b0 {
-                       #clock-cells = <0>;
-                       compatible = "allwinner,sun4i-a10-mod0-clk";
-                       reg = <0x01c200b0 0x4>;
-                       clocks = <&osc24M>, <&pll6 1>, <&pll5 1>;
-                       clock-output-names = "ir0";
-               };
-
-               i2s0_clk: clk@01c200b8 {
-                       #clock-cells = <0>;
-                       compatible = "allwinner,sun4i-a10-mod1-clk";
-                       reg = <0x01c200b8 0x4>;
-                       clocks = <&pll2 SUN4I_A10_PLL2_8X>,
-                                <&pll2 SUN4I_A10_PLL2_4X>,
-                                <&pll2 SUN4I_A10_PLL2_2X>,
-                                <&pll2 SUN4I_A10_PLL2_1X>;
-                       clock-output-names = "i2s0";
-               };
-
-               spdif_clk: clk@01c200c0 {
-                       #clock-cells = <0>;
-                       compatible = "allwinner,sun4i-a10-mod1-clk";
-                       reg = <0x01c200c0 0x4>;
-                       clocks = <&pll2 SUN4I_A10_PLL2_8X>,
-                                <&pll2 SUN4I_A10_PLL2_4X>,
-                                <&pll2 SUN4I_A10_PLL2_2X>,
-                                <&pll2 SUN4I_A10_PLL2_1X>;
-                       clock-output-names = "spdif";
-               };
-
-               usb_clk: clk@01c200cc {
-                       #clock-cells = <1>;
-                       #reset-cells = <1>;
-                       compatible = "allwinner,sun5i-a13-usb-clk";
-                       reg = <0x01c200cc 0x4>;
-                       clocks = <&pll6 1>;
-                       clock-output-names = "usb_ohci0", "usb_phy";
-               };
-
-               dram_gates: clk@01c20100 {
-                       #clock-cells = <1>;
-                       compatible = "nextthing,gr8-dram-gates-clk",
-                                    "allwinner,sun4i-a10-gates-clk";
-                       reg = <0x01c20100 0x4>;
-                       clocks = <&pll5 0>;
-                       clock-indices = <0>,
-                                       <1>,
-                                       <25>,
-                                       <26>,
-                                       <29>,
-                                       <31>;
-                       clock-output-names = "dram_ve",
-                                            "dram_csi",
-                                            "dram_de_fe",
-                                            "dram_de_be",
-                                            "dram_ace",
-                                            "dram_iep";
-               };
-
-               de_be_clk: clk@01c20104 {
-                       #clock-cells = <0>;
-                       #reset-cells = <0>;
-                       compatible = "allwinner,sun4i-a10-display-clk";
-                       reg = <0x01c20104 0x4>;
-                       clocks = <&pll3>, <&pll7>, <&pll5 1>;
-                       clock-output-names = "de-be";
-               };
-
-               de_fe_clk: clk@01c2010c {
-                       #clock-cells = <0>;
-                       #reset-cells = <0>;
-                       compatible = "allwinner,sun4i-a10-display-clk";
-                       reg = <0x01c2010c 0x4>;
-                       clocks = <&pll3>, <&pll7>, <&pll5 1>;
-                       clock-output-names = "de-fe";
-               };
-
-               tcon_ch0_clk: clk@01c20118 {
-                       #clock-cells = <0>;
-                       #reset-cells = <1>;
-                       compatible = "allwinner,sun4i-a10-tcon-ch0-clk";
-                       reg = <0x01c20118 0x4>;
-                       clocks = <&pll3>, <&pll7>, <&pll3x2>, <&pll7x2>;
-                       clock-output-names = "tcon-ch0-sclk";
-               };
-
-               tcon_ch1_clk: clk@01c2012c {
-                       #clock-cells = <0>;
-                       compatible = "allwinner,sun4i-a10-tcon-ch1-clk";
-                       reg = <0x01c2012c 0x4>;
-                       clocks = <&pll3>, <&pll7>, <&pll3x2>, <&pll7x2>;
-                       clock-output-names = "tcon-ch1-sclk";
-               };
-
-               codec_clk: clk@01c20140 {
-                       #clock-cells = <0>;
-                       compatible = "allwinner,sun4i-a10-codec-clk";
-                       reg = <0x01c20140 0x4>;
-                       clocks = <&pll2 SUN4I_A10_PLL2_1X>;
-                       clock-output-names = "codec";
-               };
-
-               mbus_clk: clk@01c2015c {
-                       #clock-cells = <0>;
-                       compatible = "allwinner,sun5i-a13-mbus-clk";
-                       reg = <0x01c2015c 0x4>;
-                       clocks = <&osc24M>, <&pll6 1>, <&pll5 1>;
-                       clock-output-names = "mbus";
-               };
-       };
-
        display-engine {
                compatible = "allwinner,sun5i-a13-display-engine";
                allwinner,pipelines = <&fe0>;
        };
 
-       soc@01c00000 {
-               compatible = "simple-bus";
-               #address-cells = <1>;
-               #size-cells = <1>;
-               ranges;
-
-               sram-controller@01c00000 {
-                       compatible = "allwinner,sun4i-a10-sram-controller";
-                       reg = <0x01c00000 0x30>;
-                       #address-cells = <1>;
-                       #size-cells = <1>;
-                       ranges;
-
-                       sram_a: sram@00000000 {
-                               compatible = "mmio-sram";
-                               reg = <0x00000000 0xc000>;
-                               #address-cells = <1>;
-                               #size-cells = <1>;
-                               ranges = <0 0x00000000 0xc000>;
-                       };
-
-                       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";
-                                       reg = <0x0000 0x1000>;
-                                       status = "disabled";
-                               };
-                       };
-               };
-
-               dma: dma-controller@01c02000 {
-                       compatible = "allwinner,sun4i-a10-dma";
-                       reg = <0x01c02000 0x1000>;
-                       interrupts = <27>;
-                       clocks = <&ahb_gates 6>;
-                       #dma-cells = <2>;
-               };
-
-               nfc: nand@01c03000 {
-                       compatible = "allwinner,sun4i-a10-nand";
-                       reg = <0x01c03000 0x1000>;
-                       interrupts = <37>;
-                       clocks = <&ahb_gates 13>, <&nand_clk>;
-                       clock-names = "ahb", "mod";
-                       dmas = <&dma SUN4I_DMA_DEDICATED 3>;
-                       dma-names = "rxtx";
-                       status = "disabled";
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-               };
-
-               spi0: spi@01c05000 {
-                       compatible = "allwinner,sun4i-a10-spi";
-                       reg = <0x01c05000 0x1000>;
-                       interrupts = <10>;
-                       clocks = <&ahb_gates 20>, <&spi0_clk>;
-                       clock-names = "ahb", "mod";
-                       dmas = <&dma SUN4I_DMA_DEDICATED 27>,
-                              <&dma SUN4I_DMA_DEDICATED 26>;
-                       dma-names = "rx", "tx";
-                       status = "disabled";
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-               };
-
-               spi1: spi@01c06000 {
-                       compatible = "allwinner,sun4i-a10-spi";
-                       reg = <0x01c06000 0x1000>;
-                       interrupts = <11>;
-                       clocks = <&ahb_gates 21>, <&spi1_clk>;
-                       clock-names = "ahb", "mod";
-                       dmas = <&dma SUN4I_DMA_DEDICATED 9>,
-                              <&dma SUN4I_DMA_DEDICATED 8>;
-                       dma-names = "rx", "tx";
-                       status = "disabled";
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-               };
-
-               tve0: tv-encoder@01c0a000 {
-                       compatible = "allwinner,sun4i-a10-tv-encoder";
-                       reg = <0x01c0a000 0x1000>;
-                       clocks = <&ahb_gates 34>;
-                       resets = <&tcon_ch0_clk 0>;
-                       status = "disabled";
-
-                       port {
-                               #address-cells = <1>;
-                               #size-cells = <0>;
-
-                               tve0_in_tcon0: endpoint@0 {
-                                       reg = <0>;
-                                       remote-endpoint = <&tcon0_out_tve0>;
-                               };
-                       };
-               };
-
-               tcon0: lcd-controller@01c0c000 {
-                       compatible = "allwinner,sun5i-a13-tcon";
-                       reg = <0x01c0c000 0x1000>;
-                       interrupts = <44>;
-                       resets = <&tcon_ch0_clk 1>;
-                       reset-names = "lcd";
-                       clocks = <&ahb_gates 36>,
-                                <&tcon_ch0_clk>,
-                                <&tcon_ch1_clk>;
-                       clock-names = "ahb",
-                                     "tcon-ch0",
-                                     "tcon-ch1";
-                       clock-output-names = "tcon-pixel-clock";
-                       status = "disabled";
-
-                       ports {
-                               #address-cells = <1>;
-                               #size-cells = <0>;
-
-                               tcon0_in: port@0 {
-                                       #address-cells = <1>;
-                                       #size-cells = <0>;
-                                       reg = <0>;
-
-                                       tcon0_in_be0: endpoint@0 {
-                                               reg = <0>;
-                                               remote-endpoint = <&be0_out_tcon0>;
-                                       };
-                               };
-
-                               tcon0_out: port@1 {
-                                       #address-cells = <1>;
-                                       #size-cells = <0>;
-                                       reg = <1>;
-
-                                       tcon0_out_tve0: endpoint@1 {
-                                               reg = <1>;
-                                               remote-endpoint = <&tve0_in_tcon0>;
-                                       };
-                               };
-                       };
-               };
-
-               mmc0: mmc@01c0f000 {
-                       compatible = "allwinner,sun5i-a13-mmc";
-                       reg = <0x01c0f000 0x1000>;
-                       clocks = <&ahb_gates 8>,
-                                <&mmc0_clk 0>,
-                                <&mmc0_clk 1>,
-                                <&mmc0_clk 2>;
-                       clock-names = "ahb",
-                                     "mmc",
-                                     "output",
-                                     "sample";
-                       interrupts = <32>;
-                       status = "disabled";
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-               };
-
-               mmc1: mmc@01c10000 {
-                       compatible = "allwinner,sun5i-a13-mmc";
-                       reg = <0x01c10000 0x1000>;
-                       clocks = <&ahb_gates 9>,
-                                <&mmc1_clk 0>,
-                                <&mmc1_clk 1>,
-                                <&mmc1_clk 2>;
-                       clock-names = "ahb",
-                                     "mmc",
-                                     "output",
-                                     "sample";
-                       interrupts = <33>;
-                       status = "disabled";
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-               };
-
-               mmc2: mmc@01c11000 {
-                       compatible = "allwinner,sun5i-a13-mmc";
-                       reg = <0x01c11000 0x1000>;
-                       clocks = <&ahb_gates 10>,
-                                <&mmc2_clk 0>,
-                                <&mmc2_clk 1>,
-                                <&mmc2_clk 2>;
-                       clock-names = "ahb",
-                                     "mmc",
-                                     "output",
-                                     "sample";
-                       interrupts = <34>;
-                       status = "disabled";
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-               };
-
-               usb_otg: usb@01c13000 {
-                       compatible = "allwinner,sun4i-a10-musb";
-                       reg = <0x01c13000 0x0400>;
-                       clocks = <&ahb_gates 0>;
-                       interrupts = <38>;
-                       interrupt-names = "mc";
-                       phys = <&usbphy 0>;
-                       phy-names = "usb";
-                       extcon = <&usbphy 0>;
-                       allwinner,sram = <&otg_sram 1>;
-                       status = "disabled";
-
-                       dr_mode = "otg";
-               };
-
-               usbphy: phy@01c13400 {
-                       #phy-cells = <1>;
-                       compatible = "allwinner,sun5i-a13-usb-phy";
-                       reg = <0x01c13400 0x10 0x01c14800 0x4>;
-                       reg-names = "phy_ctrl", "pmu1";
-                       clocks = <&usb_clk 8>;
-                       clock-names = "usb_phy";
-                       resets = <&usb_clk 0>, <&usb_clk 1>;
-                       reset-names = "usb0_reset", "usb1_reset";
-                       status = "disabled";
-               };
-
-               ehci0: usb@01c14000 {
-                       compatible = "allwinner,sun5i-a13-ehci", "generic-ehci";
-                       reg = <0x01c14000 0x100>;
-                       interrupts = <39>;
-                       clocks = <&ahb_gates 1>;
-                       phys = <&usbphy 1>;
-                       phy-names = "usb";
-                       status = "disabled";
-               };
-
-               ohci0: usb@01c14400 {
-                       compatible = "allwinner,sun5i-a13-ohci", "generic-ohci";
-                       reg = <0x01c14400 0x100>;
-                       interrupts = <40>;
-                       clocks = <&usb_clk 6>, <&ahb_gates 2>;
-                       phys = <&usbphy 1>;
-                       phy-names = "usb";
-                       status = "disabled";
-               };
-
-               spi2: spi@01c17000 {
-                       compatible = "allwinner,sun4i-a10-spi";
-                       reg = <0x01c17000 0x1000>;
-                       interrupts = <12>;
-                       clocks = <&ahb_gates 22>, <&spi2_clk>;
-                       clock-names = "ahb", "mod";
-                       dmas = <&dma SUN4I_DMA_DEDICATED 29>,
-                              <&dma SUN4I_DMA_DEDICATED 28>;
-                       dma-names = "rx", "tx";
-                       status = "disabled";
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-               };
-
-               intc: interrupt-controller@01c20400 {
-                       compatible = "allwinner,sun4i-a10-ic";
-                       reg = <0x01c20400 0x400>;
-                       interrupt-controller;
-                       #interrupt-cells = <1>;
-               };
-
-               pio: pinctrl@01c20800 {
-                       compatible = "nextthing,gr8-pinctrl";
-                       reg = <0x01c20800 0x400>;
-                       interrupts = <28>;
-                       clocks = <&apb0_gates 5>;
-                       gpio-controller;
-                       interrupt-controller;
-                       #interrupt-cells = <3>;
-                       #gpio-cells = <3>;
-
-                       i2c0_pins_a: i2c0@0 {
-                               allwinner,pins = "PB0", "PB1";
-                               allwinner,function = "i2c0";
-                               allwinner,drive = <SUN4I_PINCTRL_10_MA>;
-                               allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
-                       };
-
-                       i2c1_pins_a: i2c1@0 {
-                               allwinner,pins = "PB15", "PB16";
-                               allwinner,function = "i2c1";
-                               allwinner,drive = <SUN4I_PINCTRL_10_MA>;
-                               allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
-                       };
-
-                       i2c2_pins_a: i2c2@0 {
-                               allwinner,pins = "PB17", "PB18";
-                               allwinner,function = "i2c2";
-                               allwinner,drive = <SUN4I_PINCTRL_10_MA>;
-                               allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
-                       };
-
-                       i2s0_data_pins_a: i2s0-data@0 {
-                               allwinner,pins = "PB6", "PB7", "PB8", "PB9";
-                               allwinner,function = "i2s0";
-                               allwinner,drive = <SUN4I_PINCTRL_10_MA>;
-                               allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
-                       };
-
-                       i2s0_mclk_pins_a: i2s0-mclk@0 {
-                               allwinner,pins = "PB5";
-                               allwinner,function = "i2s0";
-                               allwinner,drive = <SUN4I_PINCTRL_10_MA>;
-                               allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
-                       };
-
-                       ir0_rx_pins_a: ir0@0 {
-                               allwinner,pins = "PB4";
-                               allwinner,function = "ir0";
-                               allwinner,drive = <SUN4I_PINCTRL_10_MA>;
-                               allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
-                       };
-
-                       lcd_rgb666_pins: lcd-rgb666@0 {
-                               allwinner,pins = "PD2", "PD3", "PD4", "PD5", "PD6", "PD7",
-                                                "PD10", "PD11", "PD12", "PD13", "PD14", "PD15",
-                                                "PD18", "PD19", "PD20", "PD21", "PD22", "PD23",
-                                                "PD24", "PD25", "PD26", "PD27";
-                               allwinner,function = "lcd0";
-                               allwinner,drive = <SUN4I_PINCTRL_10_MA>;
-                               allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
-                       };
-
-                       mmc0_pins_a: mmc0@0 {
-                               allwinner,pins = "PF0", "PF1", "PF2", "PF3",
-                                                "PF4", "PF5";
-                               allwinner,function = "mmc0";
-                               allwinner,drive = <SUN4I_PINCTRL_30_MA>;
-                               allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
-                       };
-
-                       nand_pins_a: nand-base0@0 {
-                               allwinner,pins = "PC0", "PC1", "PC2",
-                                               "PC5", "PC8", "PC9", "PC10",
-                                               "PC11", "PC12", "PC13", "PC14",
-                                               "PC15";
-                               allwinner,function = "nand0";
-                               allwinner,drive = <SUN4I_PINCTRL_10_MA>;
-                               allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
-                       };
-
-                       nand_cs0_pins_a: nand-cs@0 {
-                               allwinner,pins = "PC4";
-                               allwinner,function = "nand0";
-                               allwinner,drive = <SUN4I_PINCTRL_10_MA>;
-                               allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
-                       };
-
-                       nand_rb0_pins_a: nand-rb@0 {
-                               allwinner,pins = "PC6";
-                               allwinner,function = "nand0";
-                               allwinner,drive = <SUN4I_PINCTRL_10_MA>;
-                               allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
-                       };
-
-                       pwm0_pins_a: pwm0@0 {
-                               allwinner,pins = "PB2";
-                               allwinner,function = "pwm0";
-                               allwinner,drive = <SUN4I_PINCTRL_10_MA>;
-                               allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
-                       };
-
-                       pwm1_pins: pwm1 {
-                               allwinner,pins = "PG13";
-                               allwinner,function = "pwm1";
-                               allwinner,drive = <SUN4I_PINCTRL_10_MA>;
-                               allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
-                       };
-
-                       spdif_tx_pins_a: spdif@0 {
-                               allwinner,pins = "PB10";
-                               allwinner,function = "spdif";
-                               allwinner,drive = <SUN4I_PINCTRL_10_MA>;
-                               allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
-                       };
-
-                       uart1_pins_a: uart1@1 {
-                               allwinner,pins = "PG3", "PG4";
-                               allwinner,function = "uart1";
-                               allwinner,drive = <SUN4I_PINCTRL_10_MA>;
-                               allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
-                       };
-
-                       uart1_cts_rts_pins_a: uart1-cts-rts@0 {
-                               allwinner,pins = "PG5", "PG6";
-                               allwinner,function = "uart1";
-                               allwinner,drive = <SUN4I_PINCTRL_10_MA>;
-                               allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
-                       };
-
-                       uart2_pins_a: uart2@1 {
-                               allwinner,pins = "PD2", "PD3";
-                               allwinner,function = "uart2";
-                               allwinner,drive = <SUN4I_PINCTRL_10_MA>;
-                               allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
-                       };
-
-                       uart2_cts_rts_pins_a: uart2-cts-rts@0 {
-                               allwinner,pins = "PD4", "PD5";
-                               allwinner,function = "uart2";
-                               allwinner,drive = <SUN4I_PINCTRL_10_MA>;
-                               allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
-                       };
-
-                       uart3_pins_a: uart3@1 {
-                               allwinner,pins = "PG9", "PG10";
-                               allwinner,function = "uart3";
-                               allwinner,drive = <SUN4I_PINCTRL_10_MA>;
-                               allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
-                       };
-
-                       uart3_cts_rts_pins_a: uart3-cts-rts@0 {
-                               allwinner,pins = "PG11", "PG12";
-                               allwinner,function = "uart3";
-                               allwinner,drive = <SUN4I_PINCTRL_10_MA>;
-                               allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
-                       };
-               };
-
-               pwm: pwm@01c20e00 {
+       soc@1c00000 {
+               pwm: pwm@1c20e00 {
                        compatible = "allwinner,sun5i-a10s-pwm";
                        reg = <0x01c20e00 0xc>;
-                       clocks = <&osc24M>;
+                       clocks = <&ccu CLK_HOSC>;
                        #pwm-cells = <3>;
                        status = "disabled";
                };
 
-               timer@01c20c00 {
-                       compatible = "allwinner,sun4i-a10-timer";
-                       reg = <0x01c20c00 0x90>;
-                       interrupts = <22>;
-                       clocks = <&osc24M>;
-               };
-
-               wdt: watchdog@01c20c90 {
-                       compatible = "allwinner,sun4i-a10-wdt";
-                       reg = <0x01c20c90 0x10>;
-               };
-
-               spdif: spdif@01c21000 {
+               spdif: spdif@1c21000 {
                        #sound-dai-cells = <0>;
                        compatible = "allwinner,sun4i-a10-spdif";
                        reg = <0x01c21000 0x400>;
                        interrupts = <13>;
-                       clocks = <&apb0_gates 1>, <&spdif_clk>;
+                       clocks = <&ccu CLK_APB0_SPDIF>, <&ccu CLK_SPDIF>;
                        clock-names = "apb", "spdif";
                        dmas = <&dma SUN4I_DMA_NORMAL 2>,
                               <&dma SUN4I_DMA_NORMAL 2>;
                        status = "disabled";
                };
 
-               ir0: ir@01c21800 {
-                       compatible = "allwinner,sun4i-a10-ir";
-                       clocks = <&apb0_gates 6>, <&ir0_clk>;
-                       clock-names = "apb", "ir";
-                       interrupts = <5>;
-                       reg = <0x01c21800 0x40>;
-                       status = "disabled";
-               };
-
-               i2s0: i2s@01c22400 {
+               i2s0: i2s@1c22400 {
                        #sound-dai-cells = <0>;
                        compatible = "allwinner,sun4i-a10-i2s";
                        reg = <0x01c22400 0x400>;
                        interrupts = <16>;
-                       clocks = <&apb0_gates 3>, <&i2s0_clk>;
+                       clocks = <&ccu CLK_APB0_I2S>, <&ccu CLK_I2S>;
                        clock-names = "apb", "mod";
                        dmas = <&dma SUN4I_DMA_NORMAL 3>,
                               <&dma SUN4I_DMA_NORMAL 3>;
                        dma-names = "rx", "tx";
                        status = "disabled";
                };
+       };
+};
 
-               lradc: lradc@01c22800 {
-                       compatible = "allwinner,sun4i-a10-lradc-keys";
-                       reg = <0x01c22800 0x100>;
-                       interrupts = <31>;
-                       status = "disabled";
-               };
-
-               codec: codec@01c22c00 {
-                       #sound-dai-cells = <0>;
-                       compatible = "allwinner,sun4i-a10-codec";
-                       reg = <0x01c22c00 0x40>;
-                       interrupts = <30>;
-                       clocks = <&apb0_gates 0>, <&codec_clk>;
-                       clock-names = "apb", "codec";
-                       dmas = <&dma SUN4I_DMA_NORMAL 19>,
-                              <&dma SUN4I_DMA_NORMAL 19>;
-                       dma-names = "rx", "tx";
-                       status = "disabled";
-               };
-
-               rtp: rtp@01c25000 {
-                       compatible = "allwinner,sun5i-a13-ts";
-                       reg = <0x01c25000 0x100>;
-                       interrupts = <29>;
-                       #thermal-sensor-cells = <0>;
-               };
-
-               uart1: serial@01c28400 {
-                       compatible = "snps,dw-apb-uart";
-                       reg = <0x01c28400 0x400>;
-                       interrupts = <2>;
-                       reg-shift = <2>;
-                       reg-io-width = <4>;
-                       clocks = <&apb1_gates 17>;
-                       status = "disabled";
-               };
-
-               uart2: serial@01c28800 {
-                       compatible = "snps,dw-apb-uart";
-                       reg = <0x01c28800 0x400>;
-                       interrupts = <3>;
-                       reg-shift = <2>;
-                       reg-io-width = <4>;
-                       clocks = <&apb1_gates 18>;
-                       status = "disabled";
-               };
-
-               uart3: serial@01c28c00 {
-                       compatible = "snps,dw-apb-uart";
-                       reg = <0x01c28c00 0x400>;
-                       interrupts = <4>;
-                       reg-shift = <2>;
-                       reg-io-width = <4>;
-                       clocks = <&apb1_gates 19>;
-                       status = "disabled";
-               };
-
-               i2c0: i2c@01c2ac00 {
-                       compatible = "allwinner,sun4i-a10-i2c";
-                       reg = <0x01c2ac00 0x400>;
-                       interrupts = <7>;
-                       clocks = <&apb1_gates 0>;
-                       status = "disabled";
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-               };
-
-               i2c1: i2c@01c2b000 {
-                       compatible = "allwinner,sun4i-a10-i2c";
-                       reg = <0x01c2b000 0x400>;
-                       interrupts = <8>;
-                       clocks = <&apb1_gates 1>;
-                       status = "disabled";
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-               };
-
-               i2c2: i2c@01c2b400 {
-                       compatible = "allwinner,sun4i-a10-i2c";
-                       reg = <0x01c2b400 0x400>;
-                       interrupts = <9>;
-                       clocks = <&apb1_gates 2>;
-                       status = "disabled";
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-               };
-
-               timer@01c60000 {
-                       compatible = "allwinner,sun5i-a13-hstimer";
-                       reg = <0x01c60000 0x1000>;
-                       interrupts = <82>, <83>;
-                       clocks = <&ahb_gates 28>;
-               };
-
-               fe0: display-frontend@01e00000 {
-                       compatible = "allwinner,sun5i-a13-display-frontend";
-                       reg = <0x01e00000 0x20000>;
-                       interrupts = <47>;
-                       clocks = <&ahb_gates 46>, <&de_fe_clk>,
-                                <&dram_gates 25>;
-                       clock-names = "ahb", "mod",
-                                     "ram";
-                       resets = <&de_fe_clk>;
-                       status = "disabled";
-
-                       ports {
-                               #address-cells = <1>;
-                               #size-cells = <0>;
-
-                               fe0_out: port@1 {
-                                       #address-cells = <1>;
-                                       #size-cells = <0>;
-                                       reg = <1>;
-
-                                       fe0_out_be0: endpoint@0 {
-                                               reg = <0>;
-                                               remote-endpoint = <&be0_in_fe0>;
-                                       };
-                               };
-                       };
-               };
-
-               be0: display-backend@01e60000 {
-                       compatible = "allwinner,sun5i-a13-display-backend";
-                       reg = <0x01e60000 0x10000>;
-                       clocks = <&ahb_gates 44>, <&de_be_clk>,
-                                <&dram_gates 26>;
-                       clock-names = "ahb", "mod",
-                                     "ram";
-                       resets = <&de_be_clk>;
-                       status = "disabled";
+&ccu {
+       compatible = "nextthing,gr8-ccu";
+};
 
-                       assigned-clocks = <&de_be_clk>;
-                       assigned-clock-rates = <300000000>;
+&pio {
+       compatible = "nextthing,gr8-pinctrl";
 
-                       ports {
-                               #address-cells = <1>;
-                               #size-cells = <0>;
+       i2s0_data_pins_a: i2s0-data@0 {
+               pins = "PB6", "PB7", "PB8", "PB9";
+               function = "i2s0";
+       };
 
-                               be0_in: port@0 {
-                                       #address-cells = <1>;
-                                       #size-cells = <0>;
-                                       reg = <0>;
+       i2s0_mclk_pins_a: i2s0-mclk@0 {
+               pins = "PB5";
+               function = "i2s0";
+       };
 
-                                       be0_in_fe0: endpoint@0 {
-                                               reg = <0>;
-                                               remote-endpoint = <&fe0_out_be0>;
-                                       };
-                               };
+       pwm1_pins: pwm1 {
+               pins = "PG13";
+               function = "pwm1";
+       };
 
-                               be0_out: port@1 {
-                                       #address-cells = <1>;
-                                       #size-cells = <0>;
-                                       reg = <1>;
+       spdif_tx_pins_a: spdif@0 {
+               pins = "PB10";
+               function = "spdif";
+               bias-pull-up;
+       };
 
-                                       be0_out_tcon0: endpoint@0 {
-                                               reg = <0>;
-                                               remote-endpoint = <&tcon0_in_be0>;
-                                       };
-                               };
-                       };
-               };
+       uart1_cts_rts_pins_a: uart1-cts-rts@0 {
+               pins = "PG5", "PG6";
+               function = "uart1";
        };
 };
index 7a8cc27279600de1b6b67bafbed6ebde5035ab47..879a4b0f3bd5b3171e8f225e7099c6be59b1edf1 100644 (file)
 
        aliases {
                i2c0 = &i2c0;
+               i2c1 = &i2c1;
                i2c2 = &i2c2;
                serial0 = &uart1;
                serial1 = &uart3;
+               spi0 = &spi2;
        };
 
        chosen {
                stdout-path = "serial0:115200n8";
        };
 
-       wifi_reg_on: wifi_reg_on {
-               compatible = "regulator-fixed";
+       leds {
+               compatible = "gpio-leds";
+
+               status {
+                       label = "chip:white:status";
+                       gpios = <&axp_gpio 2 GPIO_ACTIVE_HIGH>;
+                       default-state = "on";
+               };
+       };
+
+       mmc0_pwrseq: mmc0_pwrseq {
+               compatible = "mmc-pwrseq-simple";
                pinctrl-names = "default";
                pinctrl-0 = <&chip_wifi_reg_on_pin>;
+               reset-gpios = <&pio 2 19 GPIO_ACTIVE_LOW>; /* PC19 */
+       };
 
-               regulator-name = "wifi-reg-on";
-               regulator-min-microvolt = <3300000>;
-               regulator-max-microvolt = <3300000>;
-               gpio = <&pio 2 19 GPIO_ACTIVE_HIGH>; /* PC19 */
-               enable-active-high;
+       onewire {
+               compatible = "w1-gpio";
+               gpios = <&pio 3 2 GPIO_ACTIVE_HIGH>; /* PD2 */
+               pinctrl-names = "default";
+               pinctrl-0 = <&chip_w1_pin>;
        };
 };
 
 
 #include "axp209.dtsi"
 
+&ac_power_supply {
+       status = "okay";
+};
+
+&battery_power_supply {
+       status = "okay";
+};
+
+&i2c1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&i2c1_pins_a>;
+       status = "disabled";
+};
+
 &i2c2 {
        pinctrl-names = "default";
        pinctrl-0 = <&i2c2_pins_a>;
 };
 
 &mmc0_pins_a {
-       allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
+       bias-pull-up;
 };
 
 &mmc0 {
        pinctrl-names = "default";
        pinctrl-0 = <&mmc0_pins_a>;
-       vmmc-supply = <&wifi_reg_on>;
+       vmmc-supply = <&reg_vcc3v3>;
+       mmc-pwrseq = <&mmc0_pwrseq>;
        bus-width = <4>;
        non-removable;
        status = "okay";
 
 &pio {
        chip_vbus_pin: chip_vbus_pin@0 {
-               allwinner,pins = "PB10";
-               allwinner,function = "gpio_out";
-               allwinner,drive = <SUN4I_PINCTRL_10_MA>;
-               allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
+               pins = "PB10";
+               function = "gpio_out";
        };
 
        chip_wifi_reg_on_pin: chip_wifi_reg_on_pin@0 {
-               allwinner,pins = "PC19";
-               allwinner,function = "gpio_out";
-               allwinner,drive = <SUN4I_PINCTRL_10_MA>;
-               allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
+               pins = "PC19";
+               function = "gpio_out";
        };
 
        chip_id_det_pin: chip_id_det_pin@0 {
-               allwinner,pins = "PG2";
-               allwinner,function = "gpio_in";
-               allwinner,drive = <SUN4I_PINCTRL_10_MA>;
-               allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
+               pins = "PG2";
+               function = "gpio_in";
+       };
+
+       chip_w1_pin: chip_w1_pin@0 {
+               pins = "PD2";
+               function = "gpio_in";
+               bias-pull-up;
        };
 };
 
        regulator-always-on;
 };
 
+/*
+ * Both LDO3 and LDO4 are used in parallel to power up the WiFi/BT
+ * Chip.
+ *
+ * If those are not enabled, the SDIO part will not enumerate, and
+ * since there's no way currently to pass DT infos to an SDIO device,
+ * we cannot really do better than this ugly hack for now.
+ */
 &reg_ldo3 {
        regulator-min-microvolt = <3300000>;
        regulator-max-microvolt = <3300000>;
-       regulator-name = "vdd-wifi1";
+       regulator-name = "vcc-wifi-1";
        regulator-always-on;
 };
 
 &reg_ldo4 {
        regulator-min-microvolt = <3300000>;
        regulator-max-microvolt = <3300000>;
-       regulator-name = "vdd-wifi2";
+       regulator-name = "vcc-wifi-2";
        regulator-always-on;
 };
 
        status = "okay";
 };
 
+&spi2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&spi2_pins_a>;
+       status = "disabled";
+};
+
 &tcon0 {
        status = "okay";
 };
 &uart3 {
        pinctrl-names = "default";
        pinctrl-0 = <&uart3_pins_a>,
-                   <&uart3_pins_cts_rts_a>;
+                   <&uart3_cts_rts_pins_a>;
        status = "okay";
 };
 
index 8b058f53b7dcee2fc0cdbbe3541b47e9cc3e4671..de35dbcd11916848eab0d7653dae71e786a663a9 100644 (file)
 
 #include "sun5i-a13.dtsi"
 
-/ {
-       chosen {
-               framebuffer@1 {
-                       compatible = "allwinner,simple-framebuffer",
-                                    "simple-framebuffer";
-                       allwinner,pipeline = "de_be0-lcd0-tve0";
-                       clocks = <&ahb_gates 34>, <&ahb_gates 36>,
-                                <&ahb_gates 44>, <&de_be_clk>,
-                                <&tcon_ch1_clk>, <&dram_gates 26>;
-                       status = "disabled";
-               };
-       };
-
-       soc@01c00000 {
-               tve0: tv-encoder@01c0a000 {
-                       compatible = "allwinner,sun4i-a10-tv-encoder";
-                       reg = <0x01c0a000 0x1000>;
-                       clocks = <&ahb_gates 34>;
-                       resets = <&tcon_ch0_clk 0>;
-                       status = "disabled";
-
-                       port {
-                               #address-cells = <1>;
-                               #size-cells = <0>;
-
-                               tve0_in_tcon0: endpoint@0 {
-                                       reg = <0>;
-                                       remote-endpoint = <&tcon0_out_tve0>;
-                               };
-                       };
-               };
-       };
-};
-
-&tcon0_out {
-       tcon0_out_tve0: endpoint@1 {
-               reg = <1>;
-               remote-endpoint = <&tve0_in_tcon0>;
-       };
-};
index 20cc940f5f9151b009014669cdd4ab7b99e90d7c..8acbaab14fe5179a5649d9b39cb35ae1ea143f3c 100644 (file)
@@ -41,6 +41,7 @@
  */
 #include "sunxi-reference-design-tablet.dtsi"
 
+#include <dt-bindings/interrupt-controller/irq.h>
 #include <dt-bindings/pwm/pwm.h>
 
 / {
 };
 
 &i2c1 {
+       /*
+        * The gsl1680 is rated at 400KHz and it will not work reliable at
+        * 100KHz, this has been confirmed on multiple different q8 tablets.
+        * All other devices on this bus are also rated for 400KHz.
+        */
+       clock-frequency = <400000>;
+
+       touchscreen: touchscreen {
+               interrupt-parent = <&pio>;
+               interrupts = <6 11 IRQ_TYPE_EDGE_FALLING>; /* EINT11 (PG11) */
+               pinctrl-names = "default";
+               pinctrl-0 = <&ts_power_pin>;
+               power-gpios = <&pio 1 3 GPIO_ACTIVE_HIGH>; /* PB3 */
+               /* Tablet dts must provide reg and compatible */
+               status = "disabled";
+       };
+
        pcf8563: rtc@51 {
                compatible = "nxp,pcf8563";
                reg = <0x51>;
 
 #include "axp209.dtsi"
 
+&ac_power_supply {
+       status = "okay";
+};
+
+&battery_power_supply {
+       status = "okay";
+};
+
 &lradc {
        vref-supply = <&reg_ldo2>;
 };
        pinctrl-0 = <&mmc0_pins_a>, <&mmc0_cd_pin>;
        vmmc-supply = <&reg_vcc3v0>;
        bus-width = <4>;
-       cd-gpios = <&pio 6 0 GPIO_ACTIVE_HIGH>; /* PG0 */
-       cd-inverted;
+       cd-gpios = <&pio 6 0 GPIO_ACTIVE_LOW>; /* PG0 */
        status = "okay";
 };
 
 
 &pio {
        codec_pa_pin: codec_pa_pin@0 {
-               allwinner,pins = "PG10";
-               allwinner,function = "gpio_out";
-               allwinner,drive = <SUN4I_PINCTRL_10_MA>;
-               allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
+               pins = "PG10";
+               function = "gpio_out";
        };
 
        mmc0_cd_pin: mmc0_cd_pin@0 {
-               allwinner,pins = "PG0";
-               allwinner,function = "gpio_in";
-               allwinner,drive = <SUN4I_PINCTRL_10_MA>;
-               allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
+               pins = "PG0";
+               function = "gpio_in";
+               bias-pull-up;
+       };
+
+       ts_power_pin: ts_power_pin {
+               pins = "PB3";
+               function = "gpio_out";
+               drive-strength = <10>;
+               bias-disable;
        };
 
        usb0_vbus_detect_pin: usb0_vbus_detect_pin@0 {
-               allwinner,pins = "PG1";
-               allwinner,function = "gpio_in";
-               allwinner,drive = <SUN4I_PINCTRL_10_MA>;
-               allwinner,pull = <SUN4I_PINCTRL_PULL_DOWN>;
+               pins = "PG1";
+               function = "gpio_in";
+               bias-pull-down;
        };
 
        usb0_id_detect_pin: usb0_id_detect_pin@0 {
-               allwinner,pins = "PG2";
-               allwinner,function = "gpio_in";
-               allwinner,drive = <SUN4I_PINCTRL_10_MA>;
-               allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
+               pins = "PG2";
+               function = "gpio_in";
+               bias-pull-up;
        };
 
        usb0_vbus_pin_a: usb0_vbus_pin@0 {
-               allwinner,pins = "PG12";
-               allwinner,function = "gpio_out";
-               allwinner,drive = <SUN4I_PINCTRL_10_MA>;
-               allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
+               pins = "PG12";
+               function = "gpio_out";
        };
 };
 
index e374f4fc8073f6fde9ee0d5d0d5d4758218a264d..07f2248ed5f8b5931978bd5c3fee53c58cc6ec38 100644 (file)
@@ -44,9 +44,9 @@
 
 #include "skeleton.dtsi"
 
-#include <dt-bindings/clock/sun4i-a10-pll2.h>
+#include <dt-bindings/clock/sun5i-ccu.h>
 #include <dt-bindings/dma/sun4i-a10.h>
-#include <dt-bindings/pinctrl/sun4i-a10.h>
+#include <dt-bindings/reset/sun5i-ccu.h>
 
 / {
        interrupt-parent = <&intc>;
                        device_type = "cpu";
                        compatible = "arm,cortex-a8";
                        reg = <0x0>;
-                       clocks = <&cpu>;
+                       clocks = <&ccu CLK_CPU>;
                };
        };
 
-       clocks {
+       chosen {
                #address-cells = <1>;
                #size-cells = <1>;
                ranges;
 
-               /*
-                * This is a dummy clock, to be used as placeholder on
-                * other mux clocks when a specific parent clock is not
-                * yet implemented. It should be dropped when the driver
-                * is complete.
-                */
-               dummy: dummy {
-                       #clock-cells = <0>;
-                       compatible = "fixed-clock";
-                       clock-frequency = <0>;
+               framebuffer@0 {
+                       compatible = "allwinner,simple-framebuffer",
+                                    "simple-framebuffer";
+                       allwinner,pipeline = "de_be0-lcd0";
+                       clocks = <&ccu CLK_AHB_LCD>, <&ccu CLK_AHB_DE_BE>, <&ccu CLK_DE_BE>,
+                                <&ccu CLK_TCON_CH0>, <&ccu CLK_DRAM_DE_BE>;
+                       status = "disabled";
                };
 
-               osc24M: clk@01c20050 {
-                       #clock-cells = <0>;
-                       compatible = "allwinner,sun4i-a10-osc-clk";
-                       reg = <0x01c20050 0x4>;
-                       clock-frequency = <24000000>;
-                       clock-output-names = "osc24M";
+               framebuffer@1 {
+                       compatible = "allwinner,simple-framebuffer",
+                                    "simple-framebuffer";
+                       allwinner,pipeline = "de_be0-lcd0-tve0";
+                       clocks = <&ccu CLK_AHB_TVE>, <&ccu CLK_AHB_LCD>,
+                                <&ccu CLK_AHB_DE_BE>, <&ccu CLK_DE_BE>,
+                                <&ccu CLK_TCON_CH1>, <&ccu CLK_DRAM_DE_BE>;
+                       status = "disabled";
                };
+       };
+
+       clocks {
+               #address-cells = <1>;
+               #size-cells = <1>;
+               ranges;
 
-               osc3M: osc3M_clk {
-                       compatible = "fixed-factor-clock";
+               osc24M: clk@1c20050 {
                        #clock-cells = <0>;
-                       clock-div = <8>;
-                       clock-mult = <1>;
-                       clocks = <&osc24M>;
-                       clock-output-names = "osc3M";
+                       compatible = "fixed-clock";
+                       clock-frequency = <24000000>;
+                       clock-output-names = "osc24M";
                };
 
                osc32k: clk@0 {
                        clock-frequency = <32768>;
                        clock-output-names = "osc32k";
                };
-
-               pll1: clk@01c20000 {
-                       #clock-cells = <0>;
-                       compatible = "allwinner,sun4i-a10-pll1-clk";
-                       reg = <0x01c20000 0x4>;
-                       clocks = <&osc24M>;
-                       clock-output-names = "pll1";
-               };
-
-               pll2: clk@01c20008 {
-                       #clock-cells = <1>;
-                       compatible = "allwinner,sun5i-a13-pll2-clk";
-                       reg = <0x01c20008 0x8>;
-                       clocks = <&osc24M>;
-                       clock-output-names = "pll2-1x", "pll2-2x",
-                                            "pll2-4x", "pll2-8x";
-               };
-
-               pll3: clk@01c20010 {
-                       #clock-cells = <0>;
-                       compatible = "allwinner,sun4i-a10-pll3-clk";
-                       reg = <0x01c20010 0x4>;
-                       clocks = <&osc3M>;
-                       clock-output-names = "pll3";
-               };
-
-               pll3x2: pll3x2_clk {
-                       compatible = "allwinner,sun4i-a10-pll3-2x-clk", "fixed-factor-clock";
-                       #clock-cells = <0>;
-                       clock-div = <1>;
-                       clock-mult = <2>;
-                       clocks = <&pll3>;
-                       clock-output-names = "pll3-2x";
-               };
-
-               pll4: clk@01c20018 {
-                       #clock-cells = <0>;
-                       compatible = "allwinner,sun4i-a10-pll1-clk";
-                       reg = <0x01c20018 0x4>;
-                       clocks = <&osc24M>;
-                       clock-output-names = "pll4";
-               };
-
-               pll5: clk@01c20020 {
-                       #clock-cells = <1>;
-                       compatible = "allwinner,sun4i-a10-pll5-clk";
-                       reg = <0x01c20020 0x4>;
-                       clocks = <&osc24M>;
-                       clock-output-names = "pll5_ddr", "pll5_other";
-               };
-
-               pll6: clk@01c20028 {
-                       #clock-cells = <1>;
-                       compatible = "allwinner,sun4i-a10-pll6-clk";
-                       reg = <0x01c20028 0x4>;
-                       clocks = <&osc24M>;
-                       clock-output-names = "pll6_sata", "pll6_other", "pll6";
-               };
-
-               pll7: clk@01c20030 {
-                       #clock-cells = <0>;
-                       compatible = "allwinner,sun4i-a10-pll3-clk";
-                       reg = <0x01c20030 0x4>;
-                       clocks = <&osc3M>;
-                       clock-output-names = "pll7";
-               };
-
-               pll7x2: pll7x2_clk {
-                       compatible = "fixed-factor-clock";
-                       #clock-cells = <0>;
-                       clock-div = <1>;
-                       clock-mult = <2>;
-                       clocks = <&pll7>;
-                       clock-output-names = "pll7-2x";
-               };
-
-               /* dummy is 200M */
-               cpu: cpu@01c20054 {
-                       #clock-cells = <0>;
-                       compatible = "allwinner,sun4i-a10-cpu-clk";
-                       reg = <0x01c20054 0x4>;
-                       clocks = <&osc32k>, <&osc24M>, <&pll1>, <&dummy>;
-                       clock-output-names = "cpu";
-               };
-
-               axi: axi@01c20054 {
-                       #clock-cells = <0>;
-                       compatible = "allwinner,sun4i-a10-axi-clk";
-                       reg = <0x01c20054 0x4>;
-                       clocks = <&cpu>;
-                       clock-output-names = "axi";
-               };
-
-               ahb: ahb@01c20054 {
-                       #clock-cells = <0>;
-                       compatible = "allwinner,sun5i-a13-ahb-clk";
-                       reg = <0x01c20054 0x4>;
-                       clocks = <&axi>, <&cpu>, <&pll6 1>;
-                       clock-output-names = "ahb";
-                       /*
-                        * Use PLL6 as parent, instead of CPU/AXI
-                        * which has rate changes due to cpufreq
-                        */
-                       assigned-clocks = <&ahb>;
-                       assigned-clock-parents = <&pll6 1>;
-               };
-
-               apb0: apb0@01c20054 {
-                       #clock-cells = <0>;
-                       compatible = "allwinner,sun4i-a10-apb0-clk";
-                       reg = <0x01c20054 0x4>;
-                       clocks = <&ahb>;
-                       clock-output-names = "apb0";
-               };
-
-               apb1: clk@01c20058 {
-                       #clock-cells = <0>;
-                       compatible = "allwinner,sun4i-a10-apb1-clk";
-                       reg = <0x01c20058 0x4>;
-                       clocks = <&osc24M>, <&pll6 1>, <&osc32k>;
-                       clock-output-names = "apb1";
-               };
-
-               axi_gates: clk@01c2005c {
-                       #clock-cells = <1>;
-                       compatible = "allwinner,sun4i-a10-axi-gates-clk";
-                       reg = <0x01c2005c 0x4>;
-                       clocks = <&axi>;
-                       clock-indices = <0>;
-                       clock-output-names = "axi_dram";
-               };
-
-               nand_clk: clk@01c20080 {
-                       #clock-cells = <0>;
-                       compatible = "allwinner,sun4i-a10-mod0-clk";
-                       reg = <0x01c20080 0x4>;
-                       clocks = <&osc24M>, <&pll6 1>, <&pll5 1>;
-                       clock-output-names = "nand";
-               };
-
-               ms_clk: clk@01c20084 {
-                       #clock-cells = <0>;
-                       compatible = "allwinner,sun4i-a10-mod0-clk";
-                       reg = <0x01c20084 0x4>;
-                       clocks = <&osc24M>, <&pll6 1>, <&pll5 1>;
-                       clock-output-names = "ms";
-               };
-
-               mmc0_clk: clk@01c20088 {
-                       #clock-cells = <1>;
-                       compatible = "allwinner,sun4i-a10-mmc-clk";
-                       reg = <0x01c20088 0x4>;
-                       clocks = <&osc24M>, <&pll6 1>, <&pll5 1>;
-                       clock-output-names = "mmc0",
-                                            "mmc0_output",
-                                            "mmc0_sample";
-               };
-
-               mmc1_clk: clk@01c2008c {
-                       #clock-cells = <1>;
-                       compatible = "allwinner,sun4i-a10-mmc-clk";
-                       reg = <0x01c2008c 0x4>;
-                       clocks = <&osc24M>, <&pll6 1>, <&pll5 1>;
-                       clock-output-names = "mmc1",
-                                            "mmc1_output",
-                                            "mmc1_sample";
-               };
-
-               mmc2_clk: clk@01c20090 {
-                       #clock-cells = <1>;
-                       compatible = "allwinner,sun4i-a10-mmc-clk";
-                       reg = <0x01c20090 0x4>;
-                       clocks = <&osc24M>, <&pll6 1>, <&pll5 1>;
-                       clock-output-names = "mmc2",
-                                            "mmc2_output",
-                                            "mmc2_sample";
-               };
-
-               ts_clk: clk@01c20098 {
-                       #clock-cells = <0>;
-                       compatible = "allwinner,sun4i-a10-mod0-clk";
-                       reg = <0x01c20098 0x4>;
-                       clocks = <&osc24M>, <&pll6 1>, <&pll5 1>;
-                       clock-output-names = "ts";
-               };
-
-               ss_clk: clk@01c2009c {
-                       #clock-cells = <0>;
-                       compatible = "allwinner,sun4i-a10-mod0-clk";
-                       reg = <0x01c2009c 0x4>;
-                       clocks = <&osc24M>, <&pll6 1>, <&pll5 1>;
-                       clock-output-names = "ss";
-               };
-
-               spi0_clk: clk@01c200a0 {
-                       #clock-cells = <0>;
-                       compatible = "allwinner,sun4i-a10-mod0-clk";
-                       reg = <0x01c200a0 0x4>;
-                       clocks = <&osc24M>, <&pll6 1>, <&pll5 1>;
-                       clock-output-names = "spi0";
-               };
-
-               spi1_clk: clk@01c200a4 {
-                       #clock-cells = <0>;
-                       compatible = "allwinner,sun4i-a10-mod0-clk";
-                       reg = <0x01c200a4 0x4>;
-                       clocks = <&osc24M>, <&pll6 1>, <&pll5 1>;
-                       clock-output-names = "spi1";
-               };
-
-               spi2_clk: clk@01c200a8 {
-                       #clock-cells = <0>;
-                       compatible = "allwinner,sun4i-a10-mod0-clk";
-                       reg = <0x01c200a8 0x4>;
-                       clocks = <&osc24M>, <&pll6 1>, <&pll5 1>;
-                       clock-output-names = "spi2";
-               };
-
-               ir0_clk: clk@01c200b0 {
-                       #clock-cells = <0>;
-                       compatible = "allwinner,sun4i-a10-mod0-clk";
-                       reg = <0x01c200b0 0x4>;
-                       clocks = <&osc24M>, <&pll6 1>, <&pll5 1>;
-                       clock-output-names = "ir0";
-               };
-
-               usb_clk: clk@01c200cc {
-                       #clock-cells = <1>;
-                       #reset-cells = <1>;
-                       compatible = "allwinner,sun5i-a13-usb-clk";
-                       reg = <0x01c200cc 0x4>;
-                       clocks = <&pll6 1>;
-                       clock-output-names = "usb_ohci0", "usb_phy";
-               };
-
-               codec_clk: clk@01c20140 {
-                       #clock-cells = <0>;
-                       compatible = "allwinner,sun4i-a10-codec-clk";
-                       reg = <0x01c20140 0x4>;
-                       clocks = <&pll2 SUN4I_A10_PLL2_1X>;
-                       clock-output-names = "codec";
-               };
-
-               mbus_clk: clk@01c2015c {
-                       #clock-cells = <0>;
-                       compatible = "allwinner,sun5i-a13-mbus-clk";
-                       reg = <0x01c2015c 0x4>;
-                       clocks = <&osc24M>, <&pll6 1>, <&pll5 1>;
-                       clock-output-names = "mbus";
-               };
        };
 
-       soc@01c00000 {
+       soc@1c00000 {
                compatible = "simple-bus";
                #address-cells = <1>;
                #size-cells = <1>;
                ranges;
 
-               sram-controller@01c00000 {
+               sram-controller@1c00000 {
                        compatible = "allwinner,sun4i-a10-sram-controller";
                        reg = <0x01c00000 0x30>;
                        #address-cells = <1>;
                        #size-cells = <1>;
                        ranges;
 
-                       sram_a: sram@00000000 {
+                       sram_a: sram@0 {
                                compatible = "mmio-sram";
                                reg = <0x00000000 0xc000>;
                                #address-cells = <1>;
                                ranges = <0 0x00000000 0xc000>;
                        };
 
-                       sram_d: sram@00010000 {
+                       emac_sram: sram-section@8000 {
+                               compatible = "allwinner,sun4i-a10-sram-a3-a4";
+                               reg = <0x8000 0x4000>;
+                               status = "disabled";
+                       };
+
+                       sram_d: sram@10000 {
                                compatible = "mmio-sram";
                                reg = <0x00010000 0x1000>;
                                #address-cells = <1>;
                                #size-cells = <1>;
                                ranges = <0 0x00010000 0x1000>;
 
-                               otg_sram: sram-section@0000 {
+                               otg_sram: sram-section@0 {
                                        compatible = "allwinner,sun4i-a10-sram-d";
                                        reg = <0x0000 0x1000>;
                                        status = "disabled";
                        };
                };
 
-               dma: dma-controller@01c02000 {
+               dma: dma-controller@1c02000 {
                        compatible = "allwinner,sun4i-a10-dma";
                        reg = <0x01c02000 0x1000>;
                        interrupts = <27>;
-                       clocks = <&ahb_gates 6>;
+                       clocks = <&ccu CLK_AHB_DMA>;
                        #dma-cells = <2>;
                };
 
-               spi0: spi@01c05000 {
+               nfc: nand@1c03000 {
+                       compatible = "allwinner,sun4i-a10-nand";
+                       reg = <0x01c03000 0x1000>;
+                       interrupts = <37>;
+                       clocks = <&ccu CLK_AHB_NAND>, <&ccu CLK_NAND>;
+                       clock-names = "ahb", "mod";
+                       dmas = <&dma SUN4I_DMA_DEDICATED 3>;
+                       dma-names = "rxtx";
+                       status = "disabled";
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+               };
+
+               spi0: spi@1c05000 {
                        compatible = "allwinner,sun4i-a10-spi";
                        reg = <0x01c05000 0x1000>;
                        interrupts = <10>;
-                       clocks = <&ahb_gates 20>, <&spi0_clk>;
+                       clocks = <&ccu CLK_AHB_SPI0>, <&ccu CLK_SPI0>;
                        clock-names = "ahb", "mod";
                        dmas = <&dma SUN4I_DMA_DEDICATED 27>,
                               <&dma SUN4I_DMA_DEDICATED 26>;
                        #size-cells = <0>;
                };
 
-               spi1: spi@01c06000 {
+               spi1: spi@1c06000 {
                        compatible = "allwinner,sun4i-a10-spi";
                        reg = <0x01c06000 0x1000>;
                        interrupts = <11>;
-                       clocks = <&ahb_gates 21>, <&spi1_clk>;
+                       clocks = <&ccu CLK_AHB_SPI1>, <&ccu CLK_SPI1>;
                        clock-names = "ahb", "mod";
                        dmas = <&dma SUN4I_DMA_DEDICATED 9>,
                               <&dma SUN4I_DMA_DEDICATED 8>;
                        #size-cells = <0>;
                };
 
-               mmc0: mmc@01c0f000 {
+               tve0: tv-encoder@1c0a000 {
+                       compatible = "allwinner,sun4i-a10-tv-encoder";
+                       reg = <0x01c0a000 0x1000>;
+                       clocks = <&ccu CLK_AHB_TVE>;
+                       resets = <&ccu RST_TVE>;
+                       status = "disabled";
+
+                       port {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               tve0_in_tcon0: endpoint@0 {
+                                       reg = <0>;
+                                       remote-endpoint = <&tcon0_out_tve0>;
+                               };
+                       };
+               };
+
+               emac: ethernet@1c0b000 {
+                       compatible = "allwinner,sun4i-a10-emac";
+                       reg = <0x01c0b000 0x1000>;
+                       interrupts = <55>;
+                       clocks = <&ccu CLK_AHB_EMAC>;
+                       allwinner,sram = <&emac_sram 1>;
+                       status = "disabled";
+               };
+
+               mdio: mdio@1c0b080 {
+                       compatible = "allwinner,sun4i-a10-mdio";
+                       reg = <0x01c0b080 0x14>;
+                       status = "disabled";
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+               };
+
+               tcon0: lcd-controller@1c0c000 {
+                       compatible = "allwinner,sun5i-a13-tcon";
+                       reg = <0x01c0c000 0x1000>;
+                       interrupts = <44>;
+                       resets = <&ccu RST_LCD>;
+                       reset-names = "lcd";
+                       clocks = <&ccu CLK_AHB_LCD>,
+                                <&ccu CLK_TCON_CH0>,
+                                <&ccu CLK_TCON_CH1>;
+                       clock-names = "ahb",
+                                     "tcon-ch0",
+                                     "tcon-ch1";
+                       clock-output-names = "tcon-pixel-clock";
+                       status = "disabled";
+
+                       ports {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               tcon0_in: port@0 {
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+                                       reg = <0>;
+
+                                       tcon0_in_be0: endpoint@0 {
+                                               reg = <0>;
+                                               remote-endpoint = <&be0_out_tcon0>;
+                                       };
+                               };
+
+                               tcon0_out: port@1 {
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+                                       reg = <1>;
+
+                                       tcon0_out_tve0: endpoint@1 {
+                                               reg = <1>;
+                                               remote-endpoint = <&tve0_in_tcon0>;
+                                               allwinner,tcon-channel = <1>;
+                                       };
+                               };
+                       };
+               };
+
+               mmc0: mmc@1c0f000 {
                        compatible = "allwinner,sun5i-a13-mmc";
                        reg = <0x01c0f000 0x1000>;
-                       clocks = <&ahb_gates 8>,
-                                <&mmc0_clk 0>,
-                                <&mmc0_clk 1>,
-                                <&mmc0_clk 2>;
-                       clock-names = "ahb",
-                                     "mmc",
-                                     "output",
-                                     "sample";
+                       clocks = <&ccu CLK_AHB_MMC0>, <&ccu CLK_MMC0>;
+                       clock-names = "ahb", "mmc";
                        interrupts = <32>;
                        status = "disabled";
                        #address-cells = <1>;
                        #size-cells = <0>;
                };
 
-               mmc1: mmc@01c10000 {
+               mmc1: mmc@1c10000 {
                        compatible = "allwinner,sun5i-a13-mmc";
                        reg = <0x01c10000 0x1000>;
-                       clocks = <&ahb_gates 9>,
-                                <&mmc1_clk 0>,
-                                <&mmc1_clk 1>,
-                                <&mmc1_clk 2>;
-                       clock-names = "ahb",
-                                     "mmc",
-                                     "output",
-                                     "sample";
+                       clocks = <&ccu CLK_AHB_MMC1>, <&ccu CLK_MMC1>;
+                       clock-names = "ahb", "mmc";
                        interrupts = <33>;
                        status = "disabled";
                        #address-cells = <1>;
                        #size-cells = <0>;
                };
 
-               mmc2: mmc@01c11000 {
+               mmc2: mmc@1c11000 {
                        compatible = "allwinner,sun5i-a13-mmc";
                        reg = <0x01c11000 0x1000>;
-                       clocks = <&ahb_gates 10>,
-                                <&mmc2_clk 0>,
-                                <&mmc2_clk 1>,
-                                <&mmc2_clk 2>;
-                       clock-names = "ahb",
-                                     "mmc",
-                                     "output",
-                                     "sample";
+                       clocks = <&ccu CLK_AHB_MMC2>, <&ccu CLK_MMC2>;
+                       clock-names = "ahb", "mmc";
                        interrupts = <34>;
                        status = "disabled";
                        #address-cells = <1>;
                        #size-cells = <0>;
                };
 
-               usb_otg: usb@01c13000 {
+               usb_otg: usb@1c13000 {
                        compatible = "allwinner,sun4i-a10-musb";
                        reg = <0x01c13000 0x0400>;
-                       clocks = <&ahb_gates 0>;
+                       clocks = <&ccu CLK_AHB_OTG>;
                        interrupts = <38>;
                        interrupt-names = "mc";
                        phys = <&usbphy 0>;
                        status = "disabled";
                };
 
-               usbphy: phy@01c13400 {
+               usbphy: phy@1c13400 {
                        #phy-cells = <1>;
                        compatible = "allwinner,sun5i-a13-usb-phy";
                        reg = <0x01c13400 0x10 0x01c14800 0x4>;
                        reg-names = "phy_ctrl", "pmu1";
-                       clocks = <&usb_clk 8>;
+                       clocks = <&ccu CLK_USB_PHY0>;
                        clock-names = "usb_phy";
-                       resets = <&usb_clk 0>, <&usb_clk 1>;
+                       resets = <&ccu RST_USB_PHY0>, <&ccu RST_USB_PHY1>;
                        reset-names = "usb0_reset", "usb1_reset";
                        status = "disabled";
                };
 
-               ehci0: usb@01c14000 {
+               ehci0: usb@1c14000 {
                        compatible = "allwinner,sun5i-a13-ehci", "generic-ehci";
                        reg = <0x01c14000 0x100>;
                        interrupts = <39>;
-                       clocks = <&ahb_gates 1>;
+                       clocks = <&ccu CLK_AHB_EHCI>;
                        phys = <&usbphy 1>;
                        phy-names = "usb";
                        status = "disabled";
                };
 
-               ohci0: usb@01c14400 {
+               ohci0: usb@1c14400 {
                        compatible = "allwinner,sun5i-a13-ohci", "generic-ohci";
                        reg = <0x01c14400 0x100>;
                        interrupts = <40>;
-                       clocks = <&usb_clk 6>, <&ahb_gates 2>;
+                       clocks = <&ccu CLK_USB_OHCI>, <&ccu CLK_AHB_OHCI>;
                        phys = <&usbphy 1>;
                        phy-names = "usb";
                        status = "disabled";
                };
 
-               spi2: spi@01c17000 {
+               crypto: crypto-engine@1c15000 {
+                       compatible = "allwinner,sun5i-a13-crypto",
+                                    "allwinner,sun4i-a10-crypto";
+                       reg = <0x01c15000 0x1000>;
+                       interrupts = <54>;
+                       clocks = <&ccu CLK_AHB_SS>, <&ccu CLK_SS>;
+                       clock-names = "ahb", "mod";
+               };
+
+               spi2: spi@1c17000 {
                        compatible = "allwinner,sun4i-a10-spi";
                        reg = <0x01c17000 0x1000>;
                        interrupts = <12>;
-                       clocks = <&ahb_gates 22>, <&spi2_clk>;
+                       clocks = <&ccu CLK_AHB_SPI2>, <&ccu CLK_SPI2>;
                        clock-names = "ahb", "mod";
                        dmas = <&dma SUN4I_DMA_DEDICATED 29>,
                               <&dma SUN4I_DMA_DEDICATED 28>;
                        #size-cells = <0>;
                };
 
-               intc: interrupt-controller@01c20400 {
+               ccu: clock@1c20000 {
+                       reg = <0x01c20000 0x400>;
+                       clocks = <&osc24M>, <&osc32k>;
+                       clock-names = "hosc", "losc";
+                       #clock-cells = <1>;
+                       #reset-cells = <1>;
+               };
+
+               intc: interrupt-controller@1c20400 {
                        compatible = "allwinner,sun4i-a10-ic";
                        reg = <0x01c20400 0x400>;
                        interrupt-controller;
                        #interrupt-cells = <1>;
                };
 
-               pio: pinctrl@01c20800 {
+               pio: pinctrl@1c20800 {
                        reg = <0x01c20800 0x400>;
                        interrupts = <28>;
-                       clocks = <&apb0_gates 5>;
+                       clocks = <&ccu CLK_APB0_PIO>, <&osc24M>, <&osc32k>;
+                       clock-names = "apb", "hosc", "losc";
                        gpio-controller;
                        interrupt-controller;
                        #interrupt-cells = <3>;
                        #gpio-cells = <3>;
 
+                       emac_pins_a: emac0@0 {
+                               pins = "PD6", "PD7", "PD10",
+                                      "PD11", "PD12", "PD13", "PD14",
+                                      "PD15", "PD18", "PD19", "PD20",
+                                      "PD21", "PD22", "PD23", "PD24",
+                                      "PD25", "PD26", "PD27";
+                               function = "emac";
+                       };
+
                        i2c0_pins_a: i2c0@0 {
-                               allwinner,pins = "PB0", "PB1";
-                               allwinner,function = "i2c0";
-                               allwinner,drive = <SUN4I_PINCTRL_10_MA>;
-                               allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
+                               pins = "PB0", "PB1";
+                               function = "i2c0";
                        };
 
                        i2c1_pins_a: i2c1@0 {
-                               allwinner,pins = "PB15", "PB16";
-                               allwinner,function = "i2c1";
-                               allwinner,drive = <SUN4I_PINCTRL_10_MA>;
-                               allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
+                               pins = "PB15", "PB16";
+                               function = "i2c1";
                        };
 
                        i2c2_pins_a: i2c2@0 {
-                               allwinner,pins = "PB17", "PB18";
-                               allwinner,function = "i2c2";
-                               allwinner,drive = <SUN4I_PINCTRL_10_MA>;
-                               allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
+                               pins = "PB17", "PB18";
+                               function = "i2c2";
+                       };
+
+                       ir0_rx_pins_a: ir0@0 {
+                               pins = "PB4";
+                               function = "ir0";
+                       };
+
+                       lcd_rgb565_pins: lcd_rgb565@0 {
+                               pins = "PD3", "PD4", "PD5", "PD6", "PD7",
+                                                "PD10", "PD11", "PD12", "PD13", "PD14", "PD15",
+                                                "PD19", "PD20", "PD21", "PD22", "PD23",
+                                                "PD24", "PD25", "PD26", "PD27";
+                               function = "lcd0";
+                       };
+
+                       lcd_rgb666_pins: lcd_rgb666@0 {
+                               pins = "PD2", "PD3", "PD4", "PD5", "PD6", "PD7",
+                                      "PD10", "PD11", "PD12", "PD13", "PD14", "PD15",
+                                      "PD18", "PD19", "PD20", "PD21", "PD22", "PD23",
+                                      "PD24", "PD25", "PD26", "PD27";
+                               function = "lcd0";
                        };
 
                        mmc0_pins_a: mmc0@0 {
-                               allwinner,pins = "PF0", "PF1", "PF2", "PF3",
-                                                "PF4", "PF5";
-                               allwinner,function = "mmc0";
-                               allwinner,drive = <SUN4I_PINCTRL_30_MA>;
-                               allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
+                               pins = "PF0", "PF1", "PF2", "PF3",
+                                      "PF4", "PF5";
+                               function = "mmc0";
+                               drive-strength = <30>;
+                               bias-pull-up;
                        };
 
                        mmc2_pins_a: mmc2@0 {
-                               allwinner,pins = "PC6", "PC7", "PC8", "PC9",
-                                       "PC10", "PC11", "PC12", "PC13",
-                                       "PC14", "PC15";
-                               allwinner,function = "mmc2";
-                               allwinner,drive = <SUN4I_PINCTRL_30_MA>;
-                               allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
+                               pins = "PC6", "PC7", "PC8", "PC9",
+                                      "PC10", "PC11", "PC12", "PC13",
+                                      "PC14", "PC15";
+                               function = "mmc2";
+                               drive-strength = <30>;
+                               bias-pull-up;
+                       };
+
+                       mmc2_4bit_pins_a: mmc2-4bit@0 {
+                               pins = "PC6", "PC7", "PC8", "PC9",
+                                      "PC10", "PC11";
+                               function = "mmc2";
+                               drive-strength = <30>;
+                               bias-pull-up;
+                       };
+
+                       nand_pins_a: nand-base0@0 {
+                               pins = "PC0", "PC1", "PC2",
+                                      "PC5", "PC8", "PC9", "PC10",
+                                      "PC11", "PC12", "PC13", "PC14",
+                                      "PC15";
+                               function = "nand0";
+                       };
+
+                       nand_cs0_pins_a: nand-cs@0 {
+                               pins = "PC4";
+                               function = "nand0";
+                       };
+
+                       nand_rb0_pins_a: nand-rb@0 {
+                               pins = "PC6";
+                               function = "nand0";
+                       };
+
+                       spi2_pins_a: spi2@0 {
+                               pins = "PE1", "PE2", "PE3";
+                               function = "spi2";
+                       };
+
+                       spi2_cs0_pins_a: spi2-cs0@0 {
+                               pins = "PE0";
+                               function = "spi2";
+                       };
+
+                       uart1_pins_a: uart1@0 {
+                               pins = "PE10", "PE11";
+                               function = "uart1";
+                       };
+
+                       uart1_pins_b: uart1@1 {
+                               pins = "PG3", "PG4";
+                               function = "uart1";
+                       };
+
+                       uart2_pins_a: uart2@0 {
+                               pins = "PD2", "PD3";
+                               function = "uart2";
+                       };
+
+                       uart2_cts_rts_pins_a: uart2-cts-rts@0 {
+                               pins = "PD4", "PD5";
+                               function = "uart2";
                        };
 
                        uart3_pins_a: uart3@0 {
-                               allwinner,pins = "PG9", "PG10";
-                               allwinner,function = "uart3";
-                               allwinner,drive = <SUN4I_PINCTRL_10_MA>;
-                               allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
+                               pins = "PG9", "PG10";
+                               function = "uart3";
                        };
 
-                       uart3_pins_cts_rts_a: uart3-cts-rts@0 {
-                               allwinner,pins = "PG11", "PG12";
-                               allwinner,function = "uart3";
-                               allwinner,drive = <SUN4I_PINCTRL_10_MA>;
-                               allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
+                       uart3_cts_rts_pins_a: uart3-cts-rts@0 {
+                               pins = "PG11", "PG12";
+                               function = "uart3";
                        };
 
                        pwm0_pins: pwm0 {
-                               allwinner,pins = "PB2";
-                               allwinner,function = "pwm";
-                               allwinner,drive = <SUN4I_PINCTRL_10_MA>;
-                               allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
+                               pins = "PB2";
+                               function = "pwm";
                        };
                };
 
-               timer@01c20c00 {
+               timer@1c20c00 {
                        compatible = "allwinner,sun4i-a10-timer";
                        reg = <0x01c20c00 0x90>;
                        interrupts = <22>;
-                       clocks = <&osc24M>;
+                       clocks = <&ccu CLK_HOSC>;
                };
 
-               wdt: watchdog@01c20c90 {
+               wdt: watchdog@1c20c90 {
                        compatible = "allwinner,sun4i-a10-wdt";
                        reg = <0x01c20c90 0x10>;
                };
 
-               lradc: lradc@01c22800 {
+               ir0: ir@1c21800 {
+                       compatible = "allwinner,sun4i-a10-ir";
+                       clocks = <&ccu CLK_APB0_IR>, <&ccu CLK_IR>;
+                       clock-names = "apb", "ir";
+                       interrupts = <5>;
+                       reg = <0x01c21800 0x40>;
+                       status = "disabled";
+               };
+
+               lradc: lradc@1c22800 {
                        compatible = "allwinner,sun4i-a10-lradc-keys";
                        reg = <0x01c22800 0x100>;
                        interrupts = <31>;
                        status = "disabled";
                };
 
-               codec: codec@01c22c00 {
+               codec: codec@1c22c00 {
                        #sound-dai-cells = <0>;
                        compatible = "allwinner,sun4i-a10-codec";
                        reg = <0x01c22c00 0x40>;
                        interrupts = <30>;
-                       clocks = <&apb0_gates 0>, <&codec_clk>;
+                       clocks = <&ccu CLK_APB0_CODEC>, <&ccu CLK_CODEC>;
                        clock-names = "apb", "codec";
                        dmas = <&dma SUN4I_DMA_NORMAL 19>,
                               <&dma SUN4I_DMA_NORMAL 19>;
                        status = "disabled";
                };
 
-               sid: eeprom@01c23800 {
+               sid: eeprom@1c23800 {
                        compatible = "allwinner,sun4i-a10-sid";
                        reg = <0x01c23800 0x10>;
                };
 
-               rtp: rtp@01c25000 {
+               rtp: rtp@1c25000 {
                        compatible = "allwinner,sun5i-a13-ts";
                        reg = <0x01c25000 0x100>;
                        interrupts = <29>;
                        #thermal-sensor-cells = <0>;
                };
 
-               uart1: serial@01c28400 {
+               uart0: serial@1c28000 {
+                       compatible = "snps,dw-apb-uart";
+                       reg = <0x01c28000 0x400>;
+                       interrupts = <1>;
+                       reg-shift = <2>;
+                       reg-io-width = <4>;
+                       clocks = <&ccu CLK_APB1_UART0>;
+                       status = "disabled";
+               };
+
+               uart1: serial@1c28400 {
                        compatible = "snps,dw-apb-uart";
                        reg = <0x01c28400 0x400>;
                        interrupts = <2>;
                        reg-shift = <2>;
                        reg-io-width = <4>;
-                       clocks = <&apb1_gates 17>;
+                       clocks = <&ccu CLK_APB1_UART1>;
                        status = "disabled";
                };
 
-               uart3: serial@01c28c00 {
+               uart2: serial@1c28800 {
+                       compatible = "snps,dw-apb-uart";
+                       reg = <0x01c28800 0x400>;
+                       interrupts = <3>;
+                       reg-shift = <2>;
+                       reg-io-width = <4>;
+                       clocks = <&ccu CLK_APB1_UART2>;
+                       status = "disabled";
+               };
+
+               uart3: serial@1c28c00 {
                        compatible = "snps,dw-apb-uart";
                        reg = <0x01c28c00 0x400>;
                        interrupts = <4>;
                        reg-shift = <2>;
                        reg-io-width = <4>;
-                       clocks = <&apb1_gates 19>;
+                       clocks = <&ccu CLK_APB1_UART3>;
                        status = "disabled";
                };
 
-               i2c0: i2c@01c2ac00 {
+               i2c0: i2c@1c2ac00 {
                        compatible = "allwinner,sun4i-a10-i2c";
                        reg = <0x01c2ac00 0x400>;
                        interrupts = <7>;
-                       clocks = <&apb1_gates 0>;
+                       clocks = <&ccu CLK_APB1_I2C0>;
                        status = "disabled";
                        #address-cells = <1>;
                        #size-cells = <0>;
                };
 
-               i2c1: i2c@01c2b000 {
+               i2c1: i2c@1c2b000 {
                        compatible = "allwinner,sun4i-a10-i2c";
                        reg = <0x01c2b000 0x400>;
                        interrupts = <8>;
-                       clocks = <&apb1_gates 1>;
+                       clocks = <&ccu CLK_APB1_I2C1>;
                        status = "disabled";
                        #address-cells = <1>;
                        #size-cells = <0>;
                };
 
-               i2c2: i2c@01c2b400 {
+               i2c2: i2c@1c2b400 {
                        compatible = "allwinner,sun4i-a10-i2c";
                        reg = <0x01c2b400 0x400>;
                        interrupts = <9>;
-                       clocks = <&apb1_gates 2>;
+                       clocks = <&ccu CLK_APB1_I2C2>;
                        status = "disabled";
                        #address-cells = <1>;
                        #size-cells = <0>;
                };
 
-               timer@01c60000 {
+               timer@1c60000 {
                        compatible = "allwinner,sun5i-a13-hstimer";
                        reg = <0x01c60000 0x1000>;
                        interrupts = <82>, <83>;
-                       clocks = <&ahb_gates 28>;
+                       clocks = <&ccu CLK_AHB_HSTIMER>;
+               };
+
+               fe0: display-frontend@1e00000 {
+                       compatible = "allwinner,sun5i-a13-display-frontend";
+                       reg = <0x01e00000 0x20000>;
+                       interrupts = <47>;
+                       clocks = <&ccu CLK_DE_FE>, <&ccu CLK_DE_FE>,
+                                <&ccu CLK_DRAM_DE_FE>;
+                       clock-names = "ahb", "mod",
+                                     "ram";
+                       resets = <&ccu RST_DE_FE>;
+                       status = "disabled";
+
+                       ports {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               fe0_out: port@1 {
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+                                       reg = <1>;
+
+                                       fe0_out_be0: endpoint@0 {
+                                               reg = <0>;
+                                               remote-endpoint = <&be0_in_fe0>;
+                                       };
+                               };
+                       };
+               };
+
+               be0: display-backend@1e60000 {
+                       compatible = "allwinner,sun5i-a13-display-backend";
+                       reg = <0x01e60000 0x10000>;
+                       interrupts = <47>;
+                       clocks = <&ccu CLK_AHB_DE_BE>, <&ccu CLK_DE_BE>,
+                                <&ccu CLK_DRAM_DE_BE>;
+                       clock-names = "ahb", "mod",
+                                     "ram";
+                       resets = <&ccu RST_DE_BE>;
+                       status = "disabled";
+
+                       assigned-clocks = <&ccu CLK_DE_BE>;
+                       assigned-clock-rates = <300000000>;
+
+                       ports {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               be0_in: port@0 {
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+                                       reg = <0>;
+
+                                       be0_in_fe0: endpoint@0 {
+                                               reg = <0>;
+                                               remote-endpoint = <&fe0_out_be0>;
+                                       };
+                               };
+
+                               be0_out: port@1 {
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+                                       reg = <1>;
+
+                                       be0_out_tcon0: endpoint@0 {
+                                               reg = <0>;
+                                               remote-endpoint = <&tcon0_in_be0>;
+                                       };
+                               };
+                       };
                };
        };
 };
diff --git a/include/dt-bindings/clock/sun5i-ccu.h b/include/dt-bindings/clock/sun5i-ccu.h
new file mode 100644 (file)
index 0000000..81f34d4
--- /dev/null
@@ -0,0 +1,106 @@
+/*
+ * Copyright 2016 Maxime Ripard
+ *
+ * Maxime Ripard <maxime.ripard@free-electrons.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ */
+
+#ifndef _DT_BINDINGS_CLK_SUN5I_H_
+#define _DT_BINDINGS_CLK_SUN5I_H_
+
+#define CLK_HOSC               1
+
+#define CLK_PLL_VIDEO0_2X      9
+
+#define CLK_PLL_VIDEO1_2X      16
+#define CLK_CPU                        17
+
+#define CLK_AHB_OTG            23
+#define CLK_AHB_EHCI           24
+#define CLK_AHB_OHCI           25
+#define CLK_AHB_SS             26
+#define CLK_AHB_DMA            27
+#define CLK_AHB_BIST           28
+#define CLK_AHB_MMC0           29
+#define CLK_AHB_MMC1           30
+#define CLK_AHB_MMC2           31
+#define CLK_AHB_NAND           32
+#define CLK_AHB_SDRAM          33
+#define CLK_AHB_EMAC           34
+#define CLK_AHB_TS             35
+#define CLK_AHB_SPI0           36
+#define CLK_AHB_SPI1           37
+#define CLK_AHB_SPI2           38
+#define CLK_AHB_GPS            39
+#define CLK_AHB_HSTIMER                40
+#define CLK_AHB_VE             41
+#define CLK_AHB_TVE            42
+#define CLK_AHB_LCD            43
+#define CLK_AHB_CSI            44
+#define CLK_AHB_HDMI           45
+#define CLK_AHB_DE_BE          46
+#define CLK_AHB_DE_FE          47
+#define CLK_AHB_IEP            48
+#define CLK_AHB_GPU            49
+#define CLK_APB0_CODEC         50
+#define CLK_APB0_SPDIF         51
+#define CLK_APB0_I2S           52
+#define CLK_APB0_PIO           53
+#define CLK_APB0_IR            54
+#define CLK_APB0_KEYPAD                55
+#define CLK_APB1_I2C0          56
+#define CLK_APB1_I2C1          57
+#define CLK_APB1_I2C2          58
+#define CLK_APB1_UART0         59
+#define CLK_APB1_UART1         60
+#define CLK_APB1_UART2         61
+#define CLK_APB1_UART3         62
+#define CLK_NAND               63
+#define CLK_MMC0               64
+#define CLK_MMC1               65
+#define CLK_MMC2               66
+#define CLK_TS                 67
+#define CLK_SS                 68
+#define CLK_SPI0               69
+#define CLK_SPI1               70
+#define CLK_SPI2               71
+#define CLK_IR                 72
+#define CLK_I2S                        73
+#define CLK_SPDIF              74
+#define CLK_KEYPAD             75
+#define CLK_USB_OHCI           76
+#define CLK_USB_PHY0           77
+#define CLK_USB_PHY1           78
+#define CLK_GPS                        79
+#define CLK_DRAM_VE            80
+#define CLK_DRAM_CSI           81
+#define CLK_DRAM_TS            82
+#define CLK_DRAM_TVE           83
+#define CLK_DRAM_DE_FE         84
+#define CLK_DRAM_DE_BE         85
+#define CLK_DRAM_ACE           86
+#define CLK_DRAM_IEP           87
+#define CLK_DE_BE              88
+#define CLK_DE_FE              89
+#define CLK_TCON_CH0           90
+
+#define CLK_TCON_CH1           92
+#define CLK_CSI                        93
+#define CLK_VE                 94
+#define CLK_CODEC              95
+#define CLK_AVS                        96
+#define CLK_HDMI               97
+#define CLK_GPU                        98
+
+#define CLK_IEP                        100
+
+#endif /* _DT_BINDINGS_CLK_SUN5I_H_ */
diff --git a/include/dt-bindings/reset/sun5i-ccu.h b/include/dt-bindings/reset/sun5i-ccu.h
new file mode 100644 (file)
index 0000000..c2b9726
--- /dev/null
@@ -0,0 +1,32 @@
+/*
+ * Copyright 2016 Maxime Ripard
+ *
+ * Maxime Ripard <maxime.ripard@free-electrons.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ */
+
+#ifndef _RST_SUN5I_H_
+#define _RST_SUN5I_H_
+
+#define RST_USB_PHY0   0
+#define RST_USB_PHY1   1
+#define RST_GPS                2
+#define RST_DE_BE      3
+#define RST_DE_FE      4
+#define RST_TVE                5
+#define RST_LCD                6
+#define RST_CSI                7
+#define RST_VE         8
+#define RST_GPU                9
+#define RST_IEP                10
+
+#endif /* _RST_SUN5I_H_ */