|
@@ -53,10 +53,11 @@
|
|
|
clock-frequency = <24000000>;
|
|
|
};
|
|
|
|
|
|
- osc32k: osc32k {
|
|
|
+ osc32k: clk@0 {
|
|
|
#clock-cells = <0>;
|
|
|
compatible = "fixed-clock";
|
|
|
clock-frequency = <32768>;
|
|
|
+ clock-output-names = "osc32k";
|
|
|
};
|
|
|
|
|
|
pll1: pll1@01c20000 {
|
|
@@ -66,23 +67,34 @@
|
|
|
clocks = <&osc24M>;
|
|
|
};
|
|
|
|
|
|
- /*
|
|
|
- * 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.
|
|
|
- */
|
|
|
- pll6: pll6 {
|
|
|
+ pll4: pll4@01c20018 {
|
|
|
#clock-cells = <0>;
|
|
|
- compatible = "fixed-clock";
|
|
|
- clock-frequency = <0>;
|
|
|
+ compatible = "allwinner,sun4i-pll1-clk";
|
|
|
+ reg = <0x01c20018 0x4>;
|
|
|
+ clocks = <&osc24M>;
|
|
|
+ };
|
|
|
+
|
|
|
+ pll5: pll5@01c20020 {
|
|
|
+ #clock-cells = <1>;
|
|
|
+ compatible = "allwinner,sun4i-pll5-clk";
|
|
|
+ reg = <0x01c20020 0x4>;
|
|
|
+ clocks = <&osc24M>;
|
|
|
+ clock-output-names = "pll5_ddr", "pll5_other";
|
|
|
+ };
|
|
|
+
|
|
|
+ pll6: pll6@01c20028 {
|
|
|
+ #clock-cells = <1>;
|
|
|
+ compatible = "allwinner,sun4i-pll6-clk";
|
|
|
+ reg = <0x01c20028 0x4>;
|
|
|
+ clocks = <&osc24M>;
|
|
|
+ clock-output-names = "pll6_sata", "pll6_other", "pll6";
|
|
|
};
|
|
|
|
|
|
cpu: cpu@01c20054 {
|
|
|
#clock-cells = <0>;
|
|
|
compatible = "allwinner,sun4i-cpu-clk";
|
|
|
reg = <0x01c20054 0x4>;
|
|
|
- clocks = <&osc32k>, <&osc24M>, <&pll1>, <&pll6>;
|
|
|
+ clocks = <&osc32k>, <&osc24M>, <&pll1>, <&pll6 1>;
|
|
|
};
|
|
|
|
|
|
axi: axi@01c20054 {
|
|
@@ -141,7 +153,7 @@
|
|
|
#clock-cells = <0>;
|
|
|
compatible = "allwinner,sun4i-apb1-mux-clk";
|
|
|
reg = <0x01c20058 0x4>;
|
|
|
- clocks = <&osc24M>, <&pll6>, <&osc32k>;
|
|
|
+ clocks = <&osc24M>, <&pll6 1>, <&osc32k>;
|
|
|
};
|
|
|
|
|
|
apb1: apb1@01c20058 {
|
|
@@ -163,6 +175,162 @@
|
|
|
"apb1_uart2", "apb1_uart3", "apb1_uart4",
|
|
|
"apb1_uart5", "apb1_uart6", "apb1_uart7";
|
|
|
};
|
|
|
+
|
|
|
+ nand_clk: clk@01c20080 {
|
|
|
+ #clock-cells = <0>;
|
|
|
+ compatible = "allwinner,sun4i-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-mod0-clk";
|
|
|
+ reg = <0x01c20084 0x4>;
|
|
|
+ clocks = <&osc24M>, <&pll6 1>, <&pll5 1>;
|
|
|
+ clock-output-names = "ms";
|
|
|
+ };
|
|
|
+
|
|
|
+ mmc0_clk: clk@01c20088 {
|
|
|
+ #clock-cells = <0>;
|
|
|
+ compatible = "allwinner,sun4i-mod0-clk";
|
|
|
+ reg = <0x01c20088 0x4>;
|
|
|
+ clocks = <&osc24M>, <&pll6 1>, <&pll5 1>;
|
|
|
+ clock-output-names = "mmc0";
|
|
|
+ };
|
|
|
+
|
|
|
+ mmc1_clk: clk@01c2008c {
|
|
|
+ #clock-cells = <0>;
|
|
|
+ compatible = "allwinner,sun4i-mod0-clk";
|
|
|
+ reg = <0x01c2008c 0x4>;
|
|
|
+ clocks = <&osc24M>, <&pll6 1>, <&pll5 1>;
|
|
|
+ clock-output-names = "mmc1";
|
|
|
+ };
|
|
|
+
|
|
|
+ mmc2_clk: clk@01c20090 {
|
|
|
+ #clock-cells = <0>;
|
|
|
+ compatible = "allwinner,sun4i-mod0-clk";
|
|
|
+ reg = <0x01c20090 0x4>;
|
|
|
+ clocks = <&osc24M>, <&pll6 1>, <&pll5 1>;
|
|
|
+ clock-output-names = "mmc2";
|
|
|
+ };
|
|
|
+
|
|
|
+ mmc3_clk: clk@01c20094 {
|
|
|
+ #clock-cells = <0>;
|
|
|
+ compatible = "allwinner,sun4i-mod0-clk";
|
|
|
+ reg = <0x01c20094 0x4>;
|
|
|
+ clocks = <&osc24M>, <&pll6 1>, <&pll5 1>;
|
|
|
+ clock-output-names = "mmc3";
|
|
|
+ };
|
|
|
+
|
|
|
+ ts_clk: clk@01c20098 {
|
|
|
+ #clock-cells = <0>;
|
|
|
+ compatible = "allwinner,sun4i-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-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-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-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-mod0-clk";
|
|
|
+ reg = <0x01c200a8 0x4>;
|
|
|
+ clocks = <&osc24M>, <&pll6 1>, <&pll5 1>;
|
|
|
+ clock-output-names = "spi2";
|
|
|
+ };
|
|
|
+
|
|
|
+ pata_clk: clk@01c200ac {
|
|
|
+ #clock-cells = <0>;
|
|
|
+ compatible = "allwinner,sun4i-mod0-clk";
|
|
|
+ reg = <0x01c200ac 0x4>;
|
|
|
+ clocks = <&osc24M>, <&pll6 1>, <&pll5 1>;
|
|
|
+ clock-output-names = "pata";
|
|
|
+ };
|
|
|
+
|
|
|
+ ir0_clk: clk@01c200b0 {
|
|
|
+ #clock-cells = <0>;
|
|
|
+ compatible = "allwinner,sun4i-mod0-clk";
|
|
|
+ reg = <0x01c200b0 0x4>;
|
|
|
+ clocks = <&osc24M>, <&pll6 1>, <&pll5 1>;
|
|
|
+ clock-output-names = "ir0";
|
|
|
+ };
|
|
|
+
|
|
|
+ ir1_clk: clk@01c200b4 {
|
|
|
+ #clock-cells = <0>;
|
|
|
+ compatible = "allwinner,sun4i-mod0-clk";
|
|
|
+ reg = <0x01c200b4 0x4>;
|
|
|
+ clocks = <&osc24M>, <&pll6 1>, <&pll5 1>;
|
|
|
+ clock-output-names = "ir1";
|
|
|
+ };
|
|
|
+
|
|
|
+ spi3_clk: clk@01c200d4 {
|
|
|
+ #clock-cells = <0>;
|
|
|
+ compatible = "allwinner,sun4i-mod0-clk";
|
|
|
+ reg = <0x01c200d4 0x4>;
|
|
|
+ clocks = <&osc24M>, <&pll6 1>, <&pll5 1>;
|
|
|
+ clock-output-names = "spi3";
|
|
|
+ };
|
|
|
+
|
|
|
+ mbus_clk: clk@01c2015c {
|
|
|
+ #clock-cells = <0>;
|
|
|
+ compatible = "allwinner,sun4i-mod0-clk";
|
|
|
+ reg = <0x01c2015c 0x4>;
|
|
|
+ clocks = <&osc24M>, <&pll6 2>, <&pll5 1>;
|
|
|
+ clock-output-names = "mbus";
|
|
|
+ };
|
|
|
+
|
|
|
+ /*
|
|
|
+ * Dummy clock used by output clocks
|
|
|
+ */
|
|
|
+ osc24M_32k: clk@1 {
|
|
|
+ #clock-cells = <0>;
|
|
|
+ compatible = "fixed-factor-clock";
|
|
|
+ clock-div = <750>;
|
|
|
+ clock-mult = <1>;
|
|
|
+ clocks = <&osc24M>;
|
|
|
+ clock-output-names = "osc24M_32k";
|
|
|
+ };
|
|
|
+
|
|
|
+ clk_out_a: clk@01c201f0 {
|
|
|
+ #clock-cells = <0>;
|
|
|
+ compatible = "allwinner,sun7i-a20-out-clk";
|
|
|
+ reg = <0x01c201f0 0x4>;
|
|
|
+ clocks = <&osc24M_32k>, <&osc32k>, <&osc24M>;
|
|
|
+ clock-output-names = "clk_out_a";
|
|
|
+ };
|
|
|
+
|
|
|
+ clk_out_b: clk@01c201f4 {
|
|
|
+ #clock-cells = <0>;
|
|
|
+ compatible = "allwinner,sun7i-a20-out-clk";
|
|
|
+ reg = <0x01c201f4 0x4>;
|
|
|
+ clocks = <&osc24M_32k>, <&osc32k>, <&osc24M>;
|
|
|
+ clock-output-names = "clk_out_b";
|
|
|
+ };
|
|
|
};
|
|
|
|
|
|
soc@01c00000 {
|
|
@@ -250,6 +418,20 @@
|
|
|
allwinner,drive = <0>;
|
|
|
allwinner,pull = <0>;
|
|
|
};
|
|
|
+
|
|
|
+ clk_out_a_pins_a: clk_out_a@0 {
|
|
|
+ allwinner,pins = "PI12";
|
|
|
+ allwinner,function = "clk_out_a";
|
|
|
+ allwinner,drive = <0>;
|
|
|
+ allwinner,pull = <0>;
|
|
|
+ };
|
|
|
+
|
|
|
+ clk_out_b_pins_a: clk_out_b@0 {
|
|
|
+ allwinner,pins = "PI13";
|
|
|
+ allwinner,function = "clk_out_b";
|
|
|
+ allwinner,drive = <0>;
|
|
|
+ allwinner,pull = <0>;
|
|
|
+ };
|
|
|
};
|
|
|
|
|
|
timer@01c20c00 {
|
|
@@ -280,6 +462,12 @@
|
|
|
reg = <0x01c23800 0x200>;
|
|
|
};
|
|
|
|
|
|
+ rtp: rtp@01c25000 {
|
|
|
+ compatible = "allwinner,sun4i-ts";
|
|
|
+ reg = <0x01c25000 0x100>;
|
|
|
+ interrupts = <0 29 4>;
|
|
|
+ };
|
|
|
+
|
|
|
uart0: serial@01c28000 {
|
|
|
compatible = "snps,dw-apb-uart";
|
|
|
reg = <0x01c28000 0x400>;
|