aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorOlof Johansson <olof@lixom.net>2013-04-11 06:48:25 -0400
committerOlof Johansson <olof@lixom.net>2013-04-11 06:49:00 -0400
commit768cc7675dc9b10f08d369b3a282a58f7020061c (patch)
tree94e5915f1a7f7aefbdb7d39a726e3d27488316f0
parentf73548c4c8b5ea798792237e327d27633b7740dc (diff)
parent0b19b7c2c6e169efccb4b1632fe628969d001618 (diff)
Merge tag 'sunxi-dt-for-3.10-3' of git://github.com/mripard/linux into next/dt
From Maxime Ripard: SunXi dt additions for 3.10, take 3 - Remove sunxi.dtsi and only use one dtsi for each SoC - Various compatible renamings to be consistent with the other platforms * tag 'sunxi-dt-for-3.10-3' of git://github.com/mripard/linux: ARM: sunxi: dt: Update watchdog compatible string ARM: sunxi: dt: Update interrupt controller compatible string ARM: sunxi: dt: Update timer compatible string ARM: sunxi: dt: Reorganize the dtsi Signed-off-by: Olof Johansson <olof@lixom.net>
-rw-r--r--arch/arm/boot/dts/sun4i-a10-cubieboard.dts2
-rw-r--r--arch/arm/boot/dts/sun4i-a10-hackberry.dts2
-rw-r--r--arch/arm/boot/dts/sun4i-a10.dtsi194
-rw-r--r--arch/arm/boot/dts/sun5i-a13-olinuxino.dts2
-rw-r--r--arch/arm/boot/dts/sun5i-a13.dtsi194
-rw-r--r--arch/arm/boot/dts/sunxi.dtsi208
6 files changed, 387 insertions, 215 deletions
diff --git a/arch/arm/boot/dts/sun4i-a10-cubieboard.dts b/arch/arm/boot/dts/sun4i-a10-cubieboard.dts
index 99558f624554..b70fe0db6bb7 100644
--- a/arch/arm/boot/dts/sun4i-a10-cubieboard.dts
+++ b/arch/arm/boot/dts/sun4i-a10-cubieboard.dts
@@ -26,7 +26,7 @@
26 bootargs = "earlyprintk console=ttyS0,115200"; 26 bootargs = "earlyprintk console=ttyS0,115200";
27 }; 27 };
28 28
29 soc { 29 soc@01c20000 {
30 pinctrl@01c20800 { 30 pinctrl@01c20800 {
31 led_pins_cubieboard: led_pins@0 { 31 led_pins_cubieboard: led_pins@0 {
32 allwinner,pins = "PH20", "PH21"; 32 allwinner,pins = "PH20", "PH21";
diff --git a/arch/arm/boot/dts/sun4i-a10-hackberry.dts b/arch/arm/boot/dts/sun4i-a10-hackberry.dts
index 20460007a89f..b9efac100c85 100644
--- a/arch/arm/boot/dts/sun4i-a10-hackberry.dts
+++ b/arch/arm/boot/dts/sun4i-a10-hackberry.dts
@@ -22,7 +22,7 @@
22 bootargs = "earlyprintk console=ttyS0,115200"; 22 bootargs = "earlyprintk console=ttyS0,115200";
23 }; 23 };
24 24
25 soc { 25 soc@01c20000 {
26 uart0: serial@01c28000 { 26 uart0: serial@01c28000 {
27 pinctrl-names = "default"; 27 pinctrl-names = "default";
28 pinctrl-0 = <&uart0_pins_a>; 28 pinctrl-0 = <&uart0_pins_a>;
diff --git a/arch/arm/boot/dts/sun4i-a10.dtsi b/arch/arm/boot/dts/sun4i-a10.dtsi
index f6405204e7e2..5619a213da99 100644
--- a/arch/arm/boot/dts/sun4i-a10.dtsi
+++ b/arch/arm/boot/dts/sun4i-a10.dtsi
@@ -10,14 +10,172 @@
10 * http://www.gnu.org/copyleft/gpl.html 10 * http://www.gnu.org/copyleft/gpl.html
11 */ 11 */
12 12
13/include/ "sunxi.dtsi" 13/include/ "skeleton.dtsi"
14 14
15/ { 15/ {
16 interrupt-parent = <&intc>;
17
18 cpus {
19 cpu@0 {
20 compatible = "arm,cortex-a8";
21 };
22 };
23
16 memory { 24 memory {
17 reg = <0x40000000 0x80000000>; 25 reg = <0x40000000 0x80000000>;
18 }; 26 };
19 27
20 soc { 28 clocks {
29 #address-cells = <1>;
30 #size-cells = <1>;
31 ranges;
32
33 /*
34 * This is a dummy clock, to be used as placeholder on
35 * other mux clocks when a specific parent clock is not
36 * yet implemented. It should be dropped when the driver
37 * is complete.
38 */
39 dummy: dummy {
40 #clock-cells = <0>;
41 compatible = "fixed-clock";
42 clock-frequency = <0>;
43 };
44
45 osc24M_fixed: osc24M_fixed {
46 #clock-cells = <0>;
47 compatible = "fixed-clock";
48 clock-frequency = <24000000>;
49 };
50
51 osc24M: osc24M@01c20050 {
52 #clock-cells = <0>;
53 compatible = "allwinner,sun4i-osc-clk";
54 reg = <0x01c20050 0x4>;
55 clocks = <&osc24M_fixed>;
56 };
57
58 osc32k: osc32k {
59 #clock-cells = <0>;
60 compatible = "fixed-clock";
61 clock-frequency = <32768>;
62 };
63
64 pll1: pll1@01c20000 {
65 #clock-cells = <0>;
66 compatible = "allwinner,sun4i-pll1-clk";
67 reg = <0x01c20000 0x4>;
68 clocks = <&osc24M>;
69 };
70
71 /* dummy is 200M */
72 cpu: cpu@01c20054 {
73 #clock-cells = <0>;
74 compatible = "allwinner,sun4i-cpu-clk";
75 reg = <0x01c20054 0x4>;
76 clocks = <&osc32k>, <&osc24M>, <&pll1>, <&dummy>;
77 };
78
79 axi: axi@01c20054 {
80 #clock-cells = <0>;
81 compatible = "allwinner,sun4i-axi-clk";
82 reg = <0x01c20054 0x4>;
83 clocks = <&cpu>;
84 };
85
86 axi_gates: axi_gates@01c2005c {
87 #clock-cells = <1>;
88 compatible = "allwinner,sun4i-axi-gates-clk";
89 reg = <0x01c2005c 0x4>;
90 clocks = <&axi>;
91 clock-output-names = "axi_dram";
92 };
93
94 ahb: ahb@01c20054 {
95 #clock-cells = <0>;
96 compatible = "allwinner,sun4i-ahb-clk";
97 reg = <0x01c20054 0x4>;
98 clocks = <&axi>;
99 };
100
101 ahb_gates: ahb_gates@01c20060 {
102 #clock-cells = <1>;
103 compatible = "allwinner,sun4i-ahb-gates-clk";
104 reg = <0x01c20060 0x8>;
105 clocks = <&ahb>;
106 clock-output-names = "ahb_usb0", "ahb_ehci0",
107 "ahb_ohci0", "ahb_ehci1", "ahb_ohci1", "ahb_ss",
108 "ahb_dma", "ahb_bist", "ahb_mmc0", "ahb_mmc1",
109 "ahb_mmc2", "ahb_mmc3", "ahb_ms", "ahb_nand",
110 "ahb_sdram", "ahb_ace", "ahb_emac", "ahb_ts",
111 "ahb_spi0", "ahb_spi1", "ahb_spi2", "ahb_spi3",
112 "ahb_pata", "ahb_sata", "ahb_gps", "ahb_ve",
113 "ahb_tvd", "ahb_tve0", "ahb_tve1", "ahb_lcd0",
114 "ahb_lcd1", "ahb_csi0", "ahb_csi1", "ahb_hdmi",
115 "ahb_de_be0", "ahb_de_be1", "ahb_de_fe0",
116 "ahb_de_fe1", "ahb_mp", "ahb_mali400";
117 };
118
119 apb0: apb0@01c20054 {
120 #clock-cells = <0>;
121 compatible = "allwinner,sun4i-apb0-clk";
122 reg = <0x01c20054 0x4>;
123 clocks = <&ahb>;
124 };
125
126 apb0_gates: apb0_gates@01c20068 {
127 #clock-cells = <1>;
128 compatible = "allwinner,sun4i-apb0-gates-clk";
129 reg = <0x01c20068 0x4>;
130 clocks = <&apb0>;
131 clock-output-names = "apb0_codec", "apb0_spdif",
132 "apb0_ac97", "apb0_iis", "apb0_pio", "apb0_ir0",
133 "apb0_ir1", "apb0_keypad";
134 };
135
136 /* dummy is pll62 */
137 apb1_mux: apb1_mux@01c20058 {
138 #clock-cells = <0>;
139 compatible = "allwinner,sun4i-apb1-mux-clk";
140 reg = <0x01c20058 0x4>;
141 clocks = <&osc24M>, <&dummy>, <&osc32k>;
142 };
143
144 apb1: apb1@01c20058 {
145 #clock-cells = <0>;
146 compatible = "allwinner,sun4i-apb1-clk";
147 reg = <0x01c20058 0x4>;
148 clocks = <&apb1_mux>;
149 };
150
151 apb1_gates: apb1_gates@01c2006c {
152 #clock-cells = <1>;
153 compatible = "allwinner,sun4i-apb1-gates-clk";
154 reg = <0x01c2006c 0x4>;
155 clocks = <&apb1>;
156 clock-output-names = "apb1_i2c0", "apb1_i2c1",
157 "apb1_i2c2", "apb1_can", "apb1_scr",
158 "apb1_ps20", "apb1_ps21", "apb1_uart0",
159 "apb1_uart1", "apb1_uart2", "apb1_uart3",
160 "apb1_uart4", "apb1_uart5", "apb1_uart6",
161 "apb1_uart7";
162 };
163 };
164
165 soc@01c20000 {
166 compatible = "simple-bus";
167 #address-cells = <1>;
168 #size-cells = <1>;
169 reg = <0x01c20000 0x300000>;
170 ranges;
171
172 intc: interrupt-controller@01c20400 {
173 compatible = "allwinner,sun4i-ic";
174 reg = <0x01c20400 0x400>;
175 interrupt-controller;
176 #interrupt-cells = <1>;
177 };
178
21 pio: pinctrl@01c20800 { 179 pio: pinctrl@01c20800 {
22 compatible = "allwinner,sun4i-a10-pinctrl"; 180 compatible = "allwinner,sun4i-a10-pinctrl";
23 reg = <0x01c20800 0x400>; 181 reg = <0x01c20800 0x400>;
@@ -49,6 +207,18 @@
49 }; 207 };
50 }; 208 };
51 209
210 timer@01c20c00 {
211 compatible = "allwinner,sun4i-timer";
212 reg = <0x01c20c00 0x90>;
213 interrupts = <22>;
214 clocks = <&osc24M>;
215 };
216
217 wdt: watchdog@01c20c90 {
218 compatible = "allwinner,sun4i-wdt";
219 reg = <0x01c20c90 0x10>;
220 };
221
52 uart0: serial@01c28000 { 222 uart0: serial@01c28000 {
53 compatible = "snps,dw-apb-uart"; 223 compatible = "snps,dw-apb-uart";
54 reg = <0x01c28000 0x400>; 224 reg = <0x01c28000 0x400>;
@@ -59,6 +229,16 @@
59 status = "disabled"; 229 status = "disabled";
60 }; 230 };
61 231
232 uart1: serial@01c28400 {
233 compatible = "snps,dw-apb-uart";
234 reg = <0x01c28400 0x400>;
235 interrupts = <2>;
236 reg-shift = <2>;
237 reg-io-width = <4>;
238 clocks = <&apb1_gates 17>;
239 status = "disabled";
240 };
241
62 uart2: serial@01c28800 { 242 uart2: serial@01c28800 {
63 compatible = "snps,dw-apb-uart"; 243 compatible = "snps,dw-apb-uart";
64 reg = <0x01c28800 0x400>; 244 reg = <0x01c28800 0x400>;
@@ -69,6 +249,16 @@
69 status = "disabled"; 249 status = "disabled";
70 }; 250 };
71 251
252 uart3: serial@01c28c00 {
253 compatible = "snps,dw-apb-uart";
254 reg = <0x01c28c00 0x400>;
255 interrupts = <4>;
256 reg-shift = <2>;
257 reg-io-width = <4>;
258 clocks = <&apb1_gates 19>;
259 status = "disabled";
260 };
261
72 uart4: serial@01c29000 { 262 uart4: serial@01c29000 {
73 compatible = "snps,dw-apb-uart"; 263 compatible = "snps,dw-apb-uart";
74 reg = <0x01c29000 0x400>; 264 reg = <0x01c29000 0x400>;
diff --git a/arch/arm/boot/dts/sun5i-a13-olinuxino.dts b/arch/arm/boot/dts/sun5i-a13-olinuxino.dts
index f1579a831f90..3ca55067f868 100644
--- a/arch/arm/boot/dts/sun5i-a13-olinuxino.dts
+++ b/arch/arm/boot/dts/sun5i-a13-olinuxino.dts
@@ -22,7 +22,7 @@
22 bootargs = "earlyprintk console=ttyS0,115200"; 22 bootargs = "earlyprintk console=ttyS0,115200";
23 }; 23 };
24 24
25 soc { 25 soc@01c20000 {
26 pinctrl@01c20800 { 26 pinctrl@01c20800 {
27 led_pins_olinuxino: led_pins@0 { 27 led_pins_olinuxino: led_pins@0 {
28 allwinner,pins = "PG9"; 28 allwinner,pins = "PG9";
diff --git a/arch/arm/boot/dts/sun5i-a13.dtsi b/arch/arm/boot/dts/sun5i-a13.dtsi
index 10ee8eedd36b..391bcb70858b 100644
--- a/arch/arm/boot/dts/sun5i-a13.dtsi
+++ b/arch/arm/boot/dts/sun5i-a13.dtsi
@@ -11,14 +11,172 @@
11 * http://www.gnu.org/copyleft/gpl.html 11 * http://www.gnu.org/copyleft/gpl.html
12 */ 12 */
13 13
14/include/ "sunxi.dtsi" 14/include/ "skeleton.dtsi"
15 15
16/ { 16/ {
17 interrupt-parent = <&intc>;
18
19 cpus {
20 cpu@0 {
21 compatible = "arm,cortex-a8";
22 };
23 };
24
17 memory { 25 memory {
18 reg = <0x40000000 0x20000000>; 26 reg = <0x40000000 0x20000000>;
19 }; 27 };
20 28
21 soc { 29 clocks {
30 #address-cells = <1>;
31 #size-cells = <1>;
32 ranges;
33
34 /*
35 * This is a dummy clock, to be used as placeholder on
36 * other mux clocks when a specific parent clock is not
37 * yet implemented. It should be dropped when the driver
38 * is complete.
39 */
40 dummy: dummy {
41 #clock-cells = <0>;
42 compatible = "fixed-clock";
43 clock-frequency = <0>;
44 };
45
46 osc24M_fixed: osc24M_fixed {
47 #clock-cells = <0>;
48 compatible = "fixed-clock";
49 clock-frequency = <24000000>;
50 };
51
52 osc24M: osc24M@01c20050 {
53 #clock-cells = <0>;
54 compatible = "allwinner,sun4i-osc-clk";
55 reg = <0x01c20050 0x4>;
56 clocks = <&osc24M_fixed>;
57 };
58
59 osc32k: osc32k {
60 #clock-cells = <0>;
61 compatible = "fixed-clock";
62 clock-frequency = <32768>;
63 };
64
65 pll1: pll1@01c20000 {
66 #clock-cells = <0>;
67 compatible = "allwinner,sun4i-pll1-clk";
68 reg = <0x01c20000 0x4>;
69 clocks = <&osc24M>;
70 };
71
72 /* dummy is 200M */
73 cpu: cpu@01c20054 {
74 #clock-cells = <0>;
75 compatible = "allwinner,sun4i-cpu-clk";
76 reg = <0x01c20054 0x4>;
77 clocks = <&osc32k>, <&osc24M>, <&pll1>, <&dummy>;
78 };
79
80 axi: axi@01c20054 {
81 #clock-cells = <0>;
82 compatible = "allwinner,sun4i-axi-clk";
83 reg = <0x01c20054 0x4>;
84 clocks = <&cpu>;
85 };
86
87 axi_gates: axi_gates@01c2005c {
88 #clock-cells = <1>;
89 compatible = "allwinner,sun4i-axi-gates-clk";
90 reg = <0x01c2005c 0x4>;
91 clocks = <&axi>;
92 clock-output-names = "axi_dram";
93 };
94
95 ahb: ahb@01c20054 {
96 #clock-cells = <0>;
97 compatible = "allwinner,sun4i-ahb-clk";
98 reg = <0x01c20054 0x4>;
99 clocks = <&axi>;
100 };
101
102 ahb_gates: ahb_gates@01c20060 {
103 #clock-cells = <1>;
104 compatible = "allwinner,sun4i-ahb-gates-clk";
105 reg = <0x01c20060 0x8>;
106 clocks = <&ahb>;
107 clock-output-names = "ahb_usb0", "ahb_ehci0",
108 "ahb_ohci0", "ahb_ehci1", "ahb_ohci1", "ahb_ss",
109 "ahb_dma", "ahb_bist", "ahb_mmc0", "ahb_mmc1",
110 "ahb_mmc2", "ahb_mmc3", "ahb_ms", "ahb_nand",
111 "ahb_sdram", "ahb_ace", "ahb_emac", "ahb_ts",
112 "ahb_spi0", "ahb_spi1", "ahb_spi2", "ahb_spi3",
113 "ahb_pata", "ahb_sata", "ahb_gps", "ahb_ve",
114 "ahb_tvd", "ahb_tve0", "ahb_tve1", "ahb_lcd0",
115 "ahb_lcd1", "ahb_csi0", "ahb_csi1", "ahb_hdmi",
116 "ahb_de_be0", "ahb_de_be1", "ahb_de_fe0",
117 "ahb_de_fe1", "ahb_mp", "ahb_mali400";
118 };
119
120 apb0: apb0@01c20054 {
121 #clock-cells = <0>;
122 compatible = "allwinner,sun4i-apb0-clk";
123 reg = <0x01c20054 0x4>;
124 clocks = <&ahb>;
125 };
126
127 apb0_gates: apb0_gates@01c20068 {
128 #clock-cells = <1>;
129 compatible = "allwinner,sun4i-apb0-gates-clk";
130 reg = <0x01c20068 0x4>;
131 clocks = <&apb0>;
132 clock-output-names = "apb0_codec", "apb0_spdif",
133 "apb0_ac97", "apb0_iis", "apb0_pio", "apb0_ir0",
134 "apb0_ir1", "apb0_keypad";
135 };
136
137 /* dummy is pll62 */
138 apb1_mux: apb1_mux@01c20058 {
139 #clock-cells = <0>;
140 compatible = "allwinner,sun4i-apb1-mux-clk";
141 reg = <0x01c20058 0x4>;
142 clocks = <&osc24M>, <&dummy>, <&osc32k>;
143 };
144
145 apb1: apb1@01c20058 {
146 #clock-cells = <0>;
147 compatible = "allwinner,sun4i-apb1-clk";
148 reg = <0x01c20058 0x4>;
149 clocks = <&apb1_mux>;
150 };
151
152 apb1_gates: apb1_gates@01c2006c {
153 #clock-cells = <1>;
154 compatible = "allwinner,sun4i-apb1-gates-clk";
155 reg = <0x01c2006c 0x4>;
156 clocks = <&apb1>;
157 clock-output-names = "apb1_i2c0", "apb1_i2c1",
158 "apb1_i2c2", "apb1_can", "apb1_scr",
159 "apb1_ps20", "apb1_ps21", "apb1_uart0",
160 "apb1_uart1", "apb1_uart2", "apb1_uart3",
161 "apb1_uart4", "apb1_uart5", "apb1_uart6",
162 "apb1_uart7";
163 };
164 };
165
166 soc@01c20000 {
167 compatible = "simple-bus";
168 #address-cells = <1>;
169 #size-cells = <1>;
170 reg = <0x01c20000 0x300000>;
171 ranges;
172
173 intc: interrupt-controller@01c20400 {
174 compatible = "allwinner,sun4i-ic";
175 reg = <0x01c20400 0x400>;
176 interrupt-controller;
177 #interrupt-cells = <1>;
178 };
179
22 pio: pinctrl@01c20800 { 180 pio: pinctrl@01c20800 {
23 compatible = "allwinner,sun5i-a13-pinctrl"; 181 compatible = "allwinner,sun5i-a13-pinctrl";
24 reg = <0x01c20800 0x400>; 182 reg = <0x01c20800 0x400>;
@@ -42,5 +200,37 @@
42 allwinner,pull = <0>; 200 allwinner,pull = <0>;
43 }; 201 };
44 }; 202 };
203
204 timer@01c20c00 {
205 compatible = "allwinner,sun4i-timer";
206 reg = <0x01c20c00 0x90>;
207 interrupts = <22>;
208 clocks = <&osc24M>;
209 };
210
211 wdt: watchdog@01c20c90 {
212 compatible = "allwinner,sun4i-wdt";
213 reg = <0x01c20c90 0x10>;
214 };
215
216 uart1: serial@01c28400 {
217 compatible = "snps,dw-apb-uart";
218 reg = <0x01c28400 0x400>;
219 interrupts = <2>;
220 reg-shift = <2>;
221 reg-io-width = <4>;
222 clocks = <&apb1_gates 17>;
223 status = "disabled";
224 };
225
226 uart3: serial@01c28c00 {
227 compatible = "snps,dw-apb-uart";
228 reg = <0x01c28c00 0x400>;
229 interrupts = <4>;
230 reg-shift = <2>;
231 reg-io-width = <4>;
232 clocks = <&apb1_gates 19>;
233 status = "disabled";
234 };
45 }; 235 };
46}; 236};
diff --git a/arch/arm/boot/dts/sunxi.dtsi b/arch/arm/boot/dts/sunxi.dtsi
deleted file mode 100644
index a8d47e200f87..000000000000
--- a/arch/arm/boot/dts/sunxi.dtsi
+++ /dev/null
@@ -1,208 +0,0 @@
1/*
2 * Copyright 2012 Maxime Ripard
3 *
4 * Maxime Ripard <maxime.ripard@free-electrons.com>
5 *
6 * The code contained herein is licensed under the GNU General Public
7 * License. You may obtain a copy of the GNU General Public License
8 * Version 2 or later at the following locations:
9 *
10 * http://www.opensource.org/licenses/gpl-license.html
11 * http://www.gnu.org/copyleft/gpl.html
12 */
13
14/include/ "skeleton.dtsi"
15
16/ {
17 interrupt-parent = <&intc>;
18
19 cpus {
20 cpu@0 {
21 compatible = "arm,cortex-a8";
22 };
23 };
24
25 clocks {
26 #address-cells = <1>;
27 #size-cells = <1>;
28 ranges;
29
30 /*
31 * This is a dummy clock, to be used as placeholder on
32 * other mux clocks when a specific parent clock is not
33 * yet implemented. It should be dropped when the driver
34 * is complete.
35 */
36 dummy: dummy {
37 #clock-cells = <0>;
38 compatible = "fixed-clock";
39 clock-frequency = <0>;
40 };
41
42 osc24M_fixed: osc24M_fixed {
43 #clock-cells = <0>;
44 compatible = "fixed-clock";
45 clock-frequency = <24000000>;
46 };
47
48 osc24M: osc24M@01c20050 {
49 #clock-cells = <0>;
50 compatible = "allwinner,sun4i-osc-clk";
51 reg = <0x01c20050 0x4>;
52 clocks = <&osc24M_fixed>;
53 };
54
55 osc32k: osc32k {
56 #clock-cells = <0>;
57 compatible = "fixed-clock";
58 clock-frequency = <32768>;
59 };
60
61 pll1: pll1@01c20000 {
62 #clock-cells = <0>;
63 compatible = "allwinner,sun4i-pll1-clk";
64 reg = <0x01c20000 0x4>;
65 clocks = <&osc24M>;
66 };
67
68 /* dummy is 200M */
69 cpu: cpu@01c20054 {
70 #clock-cells = <0>;
71 compatible = "allwinner,sun4i-cpu-clk";
72 reg = <0x01c20054 0x4>;
73 clocks = <&osc32k>, <&osc24M>, <&pll1>, <&dummy>;
74 };
75
76 axi: axi@01c20054 {
77 #clock-cells = <0>;
78 compatible = "allwinner,sun4i-axi-clk";
79 reg = <0x01c20054 0x4>;
80 clocks = <&cpu>;
81 };
82
83 axi_gates: axi_gates@01c2005c {
84 #clock-cells = <1>;
85 compatible = "allwinner,sun4i-axi-gates-clk";
86 reg = <0x01c2005c 0x4>;
87 clocks = <&axi>;
88 clock-output-names = "axi_dram";
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,sun4i-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", "ahb_ss",
105 "ahb_dma", "ahb_bist", "ahb_mmc0", "ahb_mmc1",
106 "ahb_mmc2", "ahb_mmc3", "ahb_ms", "ahb_nand",
107 "ahb_sdram", "ahb_ace", "ahb_emac", "ahb_ts",
108 "ahb_spi0", "ahb_spi1", "ahb_spi2", "ahb_spi3",
109 "ahb_pata", "ahb_sata", "ahb_gps", "ahb_ve",
110 "ahb_tvd", "ahb_tve0", "ahb_tve1", "ahb_lcd0",
111 "ahb_lcd1", "ahb_csi0", "ahb_csi1", "ahb_hdmi",
112 "ahb_de_be0", "ahb_de_be1", "ahb_de_fe0",
113 "ahb_de_fe1", "ahb_mp", "ahb_mali400";
114 };
115
116 apb0: apb0@01c20054 {
117 #clock-cells = <0>;
118 compatible = "allwinner,sun4i-apb0-clk";
119 reg = <0x01c20054 0x4>;
120 clocks = <&ahb>;
121 };
122
123 apb0_gates: apb0_gates@01c20068 {
124 #clock-cells = <1>;
125 compatible = "allwinner,sun4i-apb0-gates-clk";
126 reg = <0x01c20068 0x4>;
127 clocks = <&apb0>;
128 clock-output-names = "apb0_codec", "apb0_spdif",
129 "apb0_ac97", "apb0_iis", "apb0_pio", "apb0_ir0",
130 "apb0_ir1", "apb0_keypad";
131 };
132
133 /* dummy is pll62 */
134 apb1_mux: apb1_mux@01c20058 {
135 #clock-cells = <0>;
136 compatible = "allwinner,sun4i-apb1-mux-clk";
137 reg = <0x01c20058 0x4>;
138 clocks = <&osc24M>, <&dummy>, <&osc32k>;
139 };
140
141 apb1: apb1@01c20058 {
142 #clock-cells = <0>;
143 compatible = "allwinner,sun4i-apb1-clk";
144 reg = <0x01c20058 0x4>;
145 clocks = <&apb1_mux>;
146 };
147
148 apb1_gates: apb1_gates@01c2006c {
149 #clock-cells = <1>;
150 compatible = "allwinner,sun4i-apb1-gates-clk";
151 reg = <0x01c2006c 0x4>;
152 clocks = <&apb1>;
153 clock-output-names = "apb1_i2c0", "apb1_i2c1",
154 "apb1_i2c2", "apb1_can", "apb1_scr",
155 "apb1_ps20", "apb1_ps21", "apb1_uart0",
156 "apb1_uart1", "apb1_uart2", "apb1_uart3",
157 "apb1_uart4", "apb1_uart5", "apb1_uart6",
158 "apb1_uart7";
159 };
160 };
161
162 soc {
163 compatible = "simple-bus";
164 #address-cells = <1>;
165 #size-cells = <1>;
166 reg = <0x01c20000 0x300000>;
167 ranges;
168
169 timer@01c20c00 {
170 compatible = "allwinner,sunxi-timer";
171 reg = <0x01c20c00 0x90>;
172 interrupts = <22>;
173 clocks = <&osc24M>;
174 };
175
176 wdt: watchdog@01c20c90 {
177 compatible = "allwinner,sunxi-wdt";
178 reg = <0x01c20c90 0x10>;
179 };
180
181 intc: interrupt-controller@01c20400 {
182 compatible = "allwinner,sunxi-ic";
183 reg = <0x01c20400 0x400>;
184 interrupt-controller;
185 #interrupt-cells = <1>;
186 };
187
188 uart1: serial@01c28400 {
189 compatible = "snps,dw-apb-uart";
190 reg = <0x01c28400 0x400>;
191 interrupts = <2>;
192 reg-shift = <2>;
193 reg-io-width = <4>;
194 clocks = <&apb1_gates 17>;
195 status = "disabled";
196 };
197
198 uart3: serial@01c28c00 {
199 compatible = "snps,dw-apb-uart";
200 reg = <0x01c28c00 0x400>;
201 interrupts = <4>;
202 reg-shift = <2>;
203 reg-io-width = <4>;
204 clocks = <&apb1_gates 19>;
205 status = "disabled";
206 };
207 };
208};