aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMaxime Ripard <maxime.ripard@free-electrons.com>2013-07-25 15:12:52 -0400
committerMaxime Ripard <maxime.ripard@free-electrons.com>2013-08-26 04:51:19 -0400
commitde7dc935557b0b5fcfe4a9c4802f51e3e9cb8d45 (patch)
treeaebe589839c1468b9eae74e3bc1b967f01f4c47e
parent98096560ebb84a3bbbc871bb6b67f25565113135 (diff)
ARM: sun7i: Enable the A20 clocks in the DTSI
Now that the clock driver knows about the available clocks found on the A20, we can build up the clock tree from the device tree. Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
-rw-r--r--arch/arm/boot/dts/sun7i-a20.dtsi126
1 files changed, 116 insertions, 10 deletions
diff --git a/arch/arm/boot/dts/sun7i-a20.dtsi b/arch/arm/boot/dts/sun7i-a20.dtsi
index f4e4524cd4f9..999ff45cb77e 100644
--- a/arch/arm/boot/dts/sun7i-a20.dtsi
+++ b/arch/arm/boot/dts/sun7i-a20.dtsi
@@ -44,7 +44,8 @@
44 44
45 osc24M: osc24M@01c20050 { 45 osc24M: osc24M@01c20050 {
46 #clock-cells = <0>; 46 #clock-cells = <0>;
47 compatible = "fixed-clock"; 47 compatible = "allwinner,sun4i-osc-clk";
48 reg = <0x01c20050 0x4>;
48 clock-frequency = <24000000>; 49 clock-frequency = <24000000>;
49 }; 50 };
50 51
@@ -53,6 +54,111 @@
53 compatible = "fixed-clock"; 54 compatible = "fixed-clock";
54 clock-frequency = <32768>; 55 clock-frequency = <32768>;
55 }; 56 };
57
58 pll1: pll1@01c20000 {
59 #clock-cells = <0>;
60 compatible = "allwinner,sun4i-pll1-clk";
61 reg = <0x01c20000 0x4>;
62 clocks = <&osc24M>;
63 };
64
65 /*
66 * This is a dummy clock, to be used as placeholder on
67 * other mux clocks when a specific parent clock is not
68 * yet implemented. It should be dropped when the driver
69 * is complete.
70 */
71 pll6: pll6 {
72 #clock-cells = <0>;
73 compatible = "fixed-clock";
74 clock-frequency = <0>;
75 };
76
77 cpu: cpu@01c20054 {
78 #clock-cells = <0>;
79 compatible = "allwinner,sun4i-cpu-clk";
80 reg = <0x01c20054 0x4>;
81 clocks = <&osc32k>, <&osc24M>, <&pll1>, <&pll6>;
82 };
83
84 axi: axi@01c20054 {
85 #clock-cells = <0>;
86 compatible = "allwinner,sun4i-axi-clk";
87 reg = <0x01c20054 0x4>;
88 clocks = <&cpu>;
89 };
90
91 ahb: ahb@01c20054 {
92 #clock-cells = <0>;
93 compatible = "allwinner,sun4i-ahb-clk";
94 reg = <0x01c20054 0x4>;
95 clocks = <&axi>;
96 };
97
98 ahb_gates: ahb_gates@01c20060 {
99 #clock-cells = <1>;
100 compatible = "allwinner,sun7i-a20-ahb-gates-clk";
101 reg = <0x01c20060 0x8>;
102 clocks = <&ahb>;
103 clock-output-names = "ahb_usb0", "ahb_ehci0",
104 "ahb_ohci0", "ahb_ehci1", "ahb_ohci1",
105 "ahb_ss", "ahb_dma", "ahb_bist", "ahb_mmc0",
106 "ahb_mmc1", "ahb_mmc2", "ahb_mmc3", "ahb_ms",
107 "ahb_nand", "ahb_sdram", "ahb_ace",
108 "ahb_emac", "ahb_ts", "ahb_spi0", "ahb_spi1",
109 "ahb_spi2", "ahb_spi3", "ahb_sata",
110 "ahb_hstimer", "ahb_ve", "ahb_tvd", "ahb_tve0",
111 "ahb_tve1", "ahb_lcd0", "ahb_lcd1", "ahb_csi0",
112 "ahb_csi1", "ahb_hdmi1", "ahb_hdmi0",
113 "ahb_de_be0", "ahb_de_be1", "ahb_de_fe0",
114 "ahb_de_fe1", "ahb_gmac", "ahb_mp",
115 "ahb_mali";
116 };
117
118 apb0: apb0@01c20054 {
119 #clock-cells = <0>;
120 compatible = "allwinner,sun4i-apb0-clk";
121 reg = <0x01c20054 0x4>;
122 clocks = <&ahb>;
123 };
124
125 apb0_gates: apb0_gates@01c20068 {
126 #clock-cells = <1>;
127 compatible = "allwinner,sun7i-a20-apb0-gates-clk";
128 reg = <0x01c20068 0x4>;
129 clocks = <&apb0>;
130 clock-output-names = "apb0_codec", "apb0_spdif",
131 "apb0_ac97", "apb0_iis0", "apb0_iis1",
132 "apb0_pio", "apb0_ir0", "apb0_ir1",
133 "apb0_iis2", "apb0_keypad";
134 };
135
136 apb1_mux: apb1_mux@01c20058 {
137 #clock-cells = <0>;
138 compatible = "allwinner,sun4i-apb1-mux-clk";
139 reg = <0x01c20058 0x4>;
140 clocks = <&osc24M>, <&pll6>, <&osc32k>;
141 };
142
143 apb1: apb1@01c20058 {
144 #clock-cells = <0>;
145 compatible = "allwinner,sun4i-apb1-clk";
146 reg = <0x01c20058 0x4>;
147 clocks = <&apb1_mux>;
148 };
149
150 apb1_gates: apb1_gates@01c2006c {
151 #clock-cells = <1>;
152 compatible = "allwinner,sun7i-a20-apb1-gates-clk";
153 reg = <0x01c2006c 0x4>;
154 clocks = <&apb1>;
155 clock-output-names = "apb1_i2c0", "apb1_i2c1",
156 "apb1_i2c2", "apb1_i2c3", "apb1_can",
157 "apb1_scr", "apb1_ps20", "apb1_ps21",
158 "apb1_i2c4", "apb1_uart0", "apb1_uart1",
159 "apb1_uart2", "apb1_uart3", "apb1_uart4",
160 "apb1_uart5", "apb1_uart6", "apb1_uart7";
161 };
56 }; 162 };
57 163
58 soc@01c00000 { 164 soc@01c00000 {
@@ -65,7 +171,7 @@
65 compatible = "allwinner,sun7i-a20-pinctrl"; 171 compatible = "allwinner,sun7i-a20-pinctrl";
66 reg = <0x01c20800 0x400>; 172 reg = <0x01c20800 0x400>;
67 interrupts = <0 28 1>; 173 interrupts = <0 28 1>;
68 clocks = <&osc24M>; 174 clocks = <&apb0_gates 5>;
69 gpio-controller; 175 gpio-controller;
70 interrupt-controller; 176 interrupt-controller;
71 #address-cells = <1>; 177 #address-cells = <1>;
@@ -117,7 +223,7 @@
117 interrupts = <0 1 1>; 223 interrupts = <0 1 1>;
118 reg-shift = <2>; 224 reg-shift = <2>;
119 reg-io-width = <4>; 225 reg-io-width = <4>;
120 clocks = <&osc24M>; 226 clocks = <&apb1_gates 16>;
121 status = "disabled"; 227 status = "disabled";
122 }; 228 };
123 229
@@ -127,7 +233,7 @@
127 interrupts = <0 2 1>; 233 interrupts = <0 2 1>;
128 reg-shift = <2>; 234 reg-shift = <2>;
129 reg-io-width = <4>; 235 reg-io-width = <4>;
130 clocks = <&osc24M>; 236 clocks = <&apb1_gates 17>;
131 status = "disabled"; 237 status = "disabled";
132 }; 238 };
133 239
@@ -137,7 +243,7 @@
137 interrupts = <0 3 1>; 243 interrupts = <0 3 1>;
138 reg-shift = <2>; 244 reg-shift = <2>;
139 reg-io-width = <4>; 245 reg-io-width = <4>;
140 clocks = <&osc24M>; 246 clocks = <&apb1_gates 18>;
141 status = "disabled"; 247 status = "disabled";
142 }; 248 };
143 249
@@ -147,7 +253,7 @@
147 interrupts = <0 4 1>; 253 interrupts = <0 4 1>;
148 reg-shift = <2>; 254 reg-shift = <2>;
149 reg-io-width = <4>; 255 reg-io-width = <4>;
150 clocks = <&osc24M>; 256 clocks = <&apb1_gates 19>;
151 status = "disabled"; 257 status = "disabled";
152 }; 258 };
153 259
@@ -157,7 +263,7 @@
157 interrupts = <0 17 1>; 263 interrupts = <0 17 1>;
158 reg-shift = <2>; 264 reg-shift = <2>;
159 reg-io-width = <4>; 265 reg-io-width = <4>;
160 clocks = <&osc24M>; 266 clocks = <&apb1_gates 20>;
161 status = "disabled"; 267 status = "disabled";
162 }; 268 };
163 269
@@ -167,7 +273,7 @@
167 interrupts = <0 18 1>; 273 interrupts = <0 18 1>;
168 reg-shift = <2>; 274 reg-shift = <2>;
169 reg-io-width = <4>; 275 reg-io-width = <4>;
170 clocks = <&osc24M>; 276 clocks = <&apb1_gates 21>;
171 status = "disabled"; 277 status = "disabled";
172 }; 278 };
173 279
@@ -177,7 +283,7 @@
177 interrupts = <0 19 1>; 283 interrupts = <0 19 1>;
178 reg-shift = <2>; 284 reg-shift = <2>;
179 reg-io-width = <4>; 285 reg-io-width = <4>;
180 clocks = <&osc24M>; 286 clocks = <&apb1_gates 22>;
181 status = "disabled"; 287 status = "disabled";
182 }; 288 };
183 289
@@ -187,7 +293,7 @@
187 interrupts = <0 20 1>; 293 interrupts = <0 20 1>;
188 reg-shift = <2>; 294 reg-shift = <2>;
189 reg-io-width = <4>; 295 reg-io-width = <4>;
190 clocks = <&osc24M>; 296 clocks = <&apb1_gates 23>;
191 status = "disabled"; 297 status = "disabled";
192 }; 298 };
193 299