]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - arch/arm/boot/dts/sun6i-a31.dtsi
Merge branch 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel...
[karo-tx-linux.git] / arch / arm / boot / dts / sun6i-a31.dtsi
index 8cee8a15b90ba36fefcaee77a79b9c3f0921d533..a9dfa12eb73502d521f679d62c6af9b9fb62d7f9 100644 (file)
@@ -27,6 +27,7 @@
 
 
        cpus {
+               enable-method = "allwinner,sun6i-a31";
                #address-cells = <1>;
                #size-cells = <0>;
 
                reg = <0x40000000 0x80000000>;
        };
 
+       pmu {
+               compatible = "arm,cortex-a7-pmu", "arm,cortex-a15-pmu";
+               interrupts = <0 120 4>,
+                            <0 121 4>,
+                            <0 122 4>,
+                            <0 123 4>;
+       };
+
        clocks {
                #address-cells = <1>;
                #size-cells = <1>;
                                        "apb2_uart4", "apb2_uart5";
                };
 
+               mmc0_clk: clk@01c20088 {
+                       #clock-cells = <0>;
+                       compatible = "allwinner,sun4i-a10-mod0-clk";
+                       reg = <0x01c20088 0x4>;
+                       clocks = <&osc24M>, <&pll6>;
+                       clock-output-names = "mmc0";
+               };
+
+               mmc1_clk: clk@01c2008c {
+                       #clock-cells = <0>;
+                       compatible = "allwinner,sun4i-a10-mod0-clk";
+                       reg = <0x01c2008c 0x4>;
+                       clocks = <&osc24M>, <&pll6>;
+                       clock-output-names = "mmc1";
+               };
+
+               mmc2_clk: clk@01c20090 {
+                       #clock-cells = <0>;
+                       compatible = "allwinner,sun4i-a10-mod0-clk";
+                       reg = <0x01c20090 0x4>;
+                       clocks = <&osc24M>, <&pll6>;
+                       clock-output-names = "mmc2";
+               };
+
+               mmc3_clk: clk@01c20094 {
+                       #clock-cells = <0>;
+                       compatible = "allwinner,sun4i-a10-mod0-clk";
+                       reg = <0x01c20094 0x4>;
+                       clocks = <&osc24M>, <&pll6>;
+                       clock-output-names = "mmc3";
+               };
+
                spi0_clk: clk@01c200a0 {
                        #clock-cells = <0>;
                        compatible = "allwinner,sun4i-a10-mod0-clk";
                        clocks = <&osc24M>, <&pll6>;
                        clock-output-names = "spi3";
                };
+
+               usb_clk: clk@01c200cc {
+                       #clock-cells = <1>;
+                       #reset-cells = <1>;
+                       compatible = "allwinner,sun6i-a31-usb-clk";
+                       reg = <0x01c200cc 0x4>;
+                       clocks = <&osc24M>;
+                       clock-output-names = "usb_phy0", "usb_phy1", "usb_phy2",
+                                            "usb_ohci0", "usb_ohci1",
+                                            "usb_ohci2";
+               };
        };
 
        soc@01c00000 {
                #size-cells = <1>;
                ranges;
 
-               nmi_intc: interrupt-controller@01f00c0c {
-                       compatible = "allwinner,sun6i-a31-sc-nmi";
-                       interrupt-controller;
-                       #interrupt-cells = <2>;
-                       reg = <0x01f00c0c 0x38>;
-                       interrupts = <0 32 4>;
+               dma: dma-controller@01c02000 {
+                       compatible = "allwinner,sun6i-a31-dma";
+                       reg = <0x01c02000 0x1000>;
+                       interrupts = <0 50 4>;
+                       clocks = <&ahb1_gates 6>;
+                       resets = <&ahb1_rst 6>;
+                       #dma-cells = <1>;
+               };
+
+               mmc0: mmc@01c0f000 {
+                       compatible = "allwinner,sun5i-a13-mmc";
+                       reg = <0x01c0f000 0x1000>;
+                       clocks = <&ahb1_gates 8>, <&mmc0_clk>;
+                       clock-names = "ahb", "mmc";
+                       resets = <&ahb1_rst 8>;
+                       reset-names = "ahb";
+                       interrupts = <0 60 4>;
+                       status = "disabled";
+               };
+
+               mmc1: mmc@01c10000 {
+                       compatible = "allwinner,sun5i-a13-mmc";
+                       reg = <0x01c10000 0x1000>;
+                       clocks = <&ahb1_gates 9>, <&mmc1_clk>;
+                       clock-names = "ahb", "mmc";
+                       resets = <&ahb1_rst 9>;
+                       reset-names = "ahb";
+                       interrupts = <0 61 4>;
+                       status = "disabled";
+               };
+
+               mmc2: mmc@01c11000 {
+                       compatible = "allwinner,sun5i-a13-mmc";
+                       reg = <0x01c11000 0x1000>;
+                       clocks = <&ahb1_gates 10>, <&mmc2_clk>;
+                       clock-names = "ahb", "mmc";
+                       resets = <&ahb1_rst 10>;
+                       reset-names = "ahb";
+                       interrupts = <0 62 4>;
+                       status = "disabled";
+               };
+
+               mmc3: mmc@01c12000 {
+                       compatible = "allwinner,sun5i-a13-mmc";
+                       reg = <0x01c12000 0x1000>;
+                       clocks = <&ahb1_gates 11>, <&mmc3_clk>;
+                       clock-names = "ahb", "mmc";
+                       resets = <&ahb1_rst 11>;
+                       reset-names = "ahb";
+                       interrupts = <0 63 4>;
+                       status = "disabled";
+               };
+
+               usbphy: phy@01c19400 {
+                       compatible = "allwinner,sun6i-a31-usb-phy";
+                       reg = <0x01c19400 0x10>,
+                             <0x01c1a800 0x4>,
+                             <0x01c1b800 0x4>;
+                       reg-names = "phy_ctrl",
+                                   "pmu1",
+                                   "pmu2";
+                       clocks = <&usb_clk 8>,
+                                <&usb_clk 9>,
+                                <&usb_clk 10>;
+                       clock-names = "usb0_phy",
+                                     "usb1_phy",
+                                     "usb2_phy";
+                       resets = <&usb_clk 0>,
+                                <&usb_clk 1>,
+                                <&usb_clk 2>;
+                       reset-names = "usb0_reset",
+                                     "usb1_reset",
+                                     "usb2_reset";
+                       status = "disabled";
+                       #phy-cells = <1>;
+               };
+
+               ehci0: usb@01c1a000 {
+                       compatible = "allwinner,sun6i-a31-ehci", "generic-ehci";
+                       reg = <0x01c1a000 0x100>;
+                       interrupts = <0 72 4>;
+                       clocks = <&ahb1_gates 26>;
+                       resets = <&ahb1_rst 26>;
+                       phys = <&usbphy 1>;
+                       phy-names = "usb";
+                       status = "disabled";
+               };
+
+               ohci0: usb@01c1a400 {
+                       compatible = "allwinner,sun6i-a31-ohci", "generic-ohci";
+                       reg = <0x01c1a400 0x100>;
+                       interrupts = <0 73 4>;
+                       clocks = <&ahb1_gates 29>, <&usb_clk 16>;
+                       resets = <&ahb1_rst 29>;
+                       phys = <&usbphy 1>;
+                       phy-names = "usb";
+                       status = "disabled";
+               };
+
+               ehci1: usb@01c1b000 {
+                       compatible = "allwinner,sun6i-a31-ehci", "generic-ehci";
+                       reg = <0x01c1b000 0x100>;
+                       interrupts = <0 74 4>;
+                       clocks = <&ahb1_gates 27>;
+                       resets = <&ahb1_rst 27>;
+                       phys = <&usbphy 2>;
+                       phy-names = "usb";
+                       status = "disabled";
+               };
+
+               ohci1: usb@01c1b400 {
+                       compatible = "allwinner,sun6i-a31-ohci", "generic-ohci";
+                       reg = <0x01c1b400 0x100>;
+                       interrupts = <0 75 4>;
+                       clocks = <&ahb1_gates 30>, <&usb_clk 17>;
+                       resets = <&ahb1_rst 30>;
+                       phys = <&usbphy 2>;
+                       phy-names = "usb";
+                       status = "disabled";
+               };
+
+               ohci2: usb@01c1c400 {
+                       compatible = "allwinner,sun6i-a31-ohci", "generic-ohci";
+                       reg = <0x01c1c400 0x100>;
+                       interrupts = <0 77 4>;
+                       clocks = <&ahb1_gates 31>, <&usb_clk 18>;
+                       resets = <&ahb1_rst 31>;
+                       status = "disabled";
                };
 
                pio: pinctrl@01c20800 {
                                allwinner,drive = <0>;
                                allwinner,pull = <0>;
                        };
+
+                       mmc0_pins_a: mmc0@0 {
+                               allwinner,pins = "PF0","PF1","PF2","PF3","PF4","PF5";
+                               allwinner,function = "mmc0";
+                               allwinner,drive = <2>;
+                               allwinner,pull = <0>;
+                       };
                };
 
                ahb1_rst: reset@01c202c0 {
                        reg-io-width = <4>;
                        clocks = <&apb2_gates 16>;
                        resets = <&apb2_rst 16>;
+                       dmas = <&dma 6>, <&dma 6>;
+                       dma-names = "rx", "tx";
                        status = "disabled";
                };
 
                        reg-io-width = <4>;
                        clocks = <&apb2_gates 17>;
                        resets = <&apb2_rst 17>;
+                       dmas = <&dma 7>, <&dma 7>;
+                       dma-names = "rx", "tx";
                        status = "disabled";
                };
 
                        reg-io-width = <4>;
                        clocks = <&apb2_gates 18>;
                        resets = <&apb2_rst 18>;
+                       dmas = <&dma 8>, <&dma 8>;
+                       dma-names = "rx", "tx";
                        status = "disabled";
                };
 
                        reg-io-width = <4>;
                        clocks = <&apb2_gates 19>;
                        resets = <&apb2_rst 19>;
+                       dmas = <&dma 9>, <&dma 9>;
+                       dma-names = "rx", "tx";
                        status = "disabled";
                };
 
                        reg-io-width = <4>;
                        clocks = <&apb2_gates 20>;
                        resets = <&apb2_rst 20>;
+                       dmas = <&dma 10>, <&dma 10>;
+                       dma-names = "rx", "tx";
                        status = "disabled";
                };
 
                        reg-io-width = <4>;
                        clocks = <&apb2_gates 21>;
                        resets = <&apb2_rst 21>;
+                       dmas = <&dma 22>, <&dma 22>;
+                       dma-names = "rx", "tx";
                        status = "disabled";
                };
 
                        interrupts = <0 65 4>;
                        clocks = <&ahb1_gates 20>, <&spi0_clk>;
                        clock-names = "ahb", "mod";
+                       dmas = <&dma 23>, <&dma 23>;
+                       dma-names = "rx", "tx";
                        resets = <&ahb1_rst 20>;
                        status = "disabled";
                };
                        interrupts = <0 66 4>;
                        clocks = <&ahb1_gates 21>, <&spi1_clk>;
                        clock-names = "ahb", "mod";
+                       dmas = <&dma 24>, <&dma 24>;
+                       dma-names = "rx", "tx";
                        resets = <&ahb1_rst 21>;
                        status = "disabled";
                };
                        interrupts = <0 67 4>;
                        clocks = <&ahb1_gates 22>, <&spi2_clk>;
                        clock-names = "ahb", "mod";
+                       dmas = <&dma 25>, <&dma 25>;
+                       dma-names = "rx", "tx";
                        resets = <&ahb1_rst 22>;
                        status = "disabled";
                };
                        interrupts = <0 68 4>;
                        clocks = <&ahb1_gates 23>, <&spi3_clk>;
                        clock-names = "ahb", "mod";
+                       dmas = <&dma 26>, <&dma 26>;
+                       dma-names = "rx", "tx";
                        resets = <&ahb1_rst 23>;
                        status = "disabled";
                };
                        interrupts = <1 9 0xf04>;
                };
 
+               nmi_intc: interrupt-controller@01f00c0c {
+                       compatible = "allwinner,sun6i-a31-sc-nmi";
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+                       reg = <0x01f00c0c 0x38>;
+                       interrupts = <0 32 4>;
+               };
+
+               prcm@01f01400 {
+                       compatible = "allwinner,sun6i-a31-prcm";
+                       reg = <0x01f01400 0x200>;
+
+                       ar100: ar100_clk {
+                               compatible = "allwinner,sun6i-a31-ar100-clk";
+                               #clock-cells = <0>;
+                               clocks = <&osc32k>, <&osc24M>, <&pll6>, <&pll6>;
+                               clock-output-names = "ar100";
+                       };
+
+                       ahb0: ahb0_clk {
+                               compatible = "fixed-factor-clock";
+                               #clock-cells = <0>;
+                               clock-div = <1>;
+                               clock-mult = <1>;
+                               clocks = <&ar100>;
+                               clock-output-names = "ahb0";
+                       };
+
+                       apb0: apb0_clk {
+                               compatible = "allwinner,sun6i-a31-apb0-clk";
+                               #clock-cells = <0>;
+                               clocks = <&ahb0>;
+                               clock-output-names = "apb0";
+                       };
+
+                       apb0_gates: apb0_gates_clk {
+                               compatible = "allwinner,sun6i-a31-apb0-gates-clk";
+                               #clock-cells = <1>;
+                               clocks = <&apb0>;
+                               clock-output-names = "apb0_pio", "apb0_ir",
+                                               "apb0_timer", "apb0_p2wi",
+                                               "apb0_uart", "apb0_1wire",
+                                               "apb0_i2c";
+                       };
+
+                       apb0_rst: apb0_rst {
+                               compatible = "allwinner,sun6i-a31-clock-reset";
+                               #reset-cells = <1>;
+                       };
+               };
+
                cpucfg@01f01c00 {
                        compatible = "allwinner,sun6i-a31-cpuconfig";
                        reg = <0x01f01c00 0x300>;
                };
 
-               prcm@01f01c00 {
-                       compatible = "allwinner,sun6i-a31-prcm";
-                       reg = <0x01f01400 0x200>;
+               r_pio: pinctrl@01f02c00 {
+                       compatible = "allwinner,sun6i-a31-r-pinctrl";
+                       reg = <0x01f02c00 0x400>;
+                       interrupts = <0 45 4>,
+                                    <0 46 4>;
+                       clocks = <&apb0_gates 0>;
+                       resets = <&apb0_rst 0>;
+                       gpio-controller;
+                       interrupt-controller;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       #gpio-cells = <3>;
                };
        };
 };