aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKevin Hilman <khilman@linaro.org>2013-08-21 19:05:07 -0400
committerKevin Hilman <khilman@linaro.org>2013-08-21 19:05:07 -0400
commit656d79cafc88137c87c0f6ac85080ce5dae2234b (patch)
treeda328b1c56bc4f3a5387ac4b364319b5f957713c
parent7a37ffa07bfb80d22c1e91705f39079b504056b4 (diff)
parente476ac8b483de4ce1d8570509be343afc7cd3baf (diff)
Merge tag 'sunxi-dt-for-3.12-2' of https://github.com/mripard/linux into next/dt
Allwinner sunXi DT additions for 3.12, take 2 These patches add basic support for: - Allwinner A31 and A20 SoCs - The Olimex A20-Olinuxino board - The Olimex A10s-Olinuxino board * tag 'sunxi-dt-for-3.12-2' of https://github.com/mripard/linux: ARM: sun7i: Add Olimex A20-Olinuxino-Micro support ARM: sun7i: Add Allwinner A20 DTSI ARM: sun6i: Add WITS Colombus A31 evaluation kit support ARM: sunxi: Add Allwinner A31 DTSI
-rw-r--r--arch/arm/boot/dts/Makefile4
-rw-r--r--arch/arm/boot/dts/sun6i-a31-colombus.dts30
-rw-r--r--arch/arm/boot/dts/sun6i-a31.dtsi156
-rw-r--r--arch/arm/boot/dts/sun7i-a20-olinuxino-micro.dts34
-rw-r--r--arch/arm/boot/dts/sun7i-a20.dtsi172
5 files changed, 395 insertions, 1 deletions
diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
index 198df7fb5db0..e6ca771b0e4c 100644
--- a/arch/arm/boot/dts/Makefile
+++ b/arch/arm/boot/dts/Makefile
@@ -213,7 +213,9 @@ dtb-$(CONFIG_ARCH_SUNXI) += \
213 sun4i-a10-mini-xplus.dtb \ 213 sun4i-a10-mini-xplus.dtb \
214 sun4i-a10-hackberry.dtb \ 214 sun4i-a10-hackberry.dtb \
215 sun5i-a10s-olinuxino-micro.dtb \ 215 sun5i-a10s-olinuxino-micro.dtb \
216 sun5i-a13-olinuxino.dtb 216 sun5i-a13-olinuxino.dtb \
217 sun6i-a31-colombus.dtb \
218 sun7i-a20-olinuxino-micro.dtb
217dtb-$(CONFIG_ARCH_TEGRA) += tegra20-harmony.dtb \ 219dtb-$(CONFIG_ARCH_TEGRA) += tegra20-harmony.dtb \
218 tegra20-iris-512.dtb \ 220 tegra20-iris-512.dtb \
219 tegra20-medcom-wide.dtb \ 221 tegra20-medcom-wide.dtb \
diff --git a/arch/arm/boot/dts/sun6i-a31-colombus.dts b/arch/arm/boot/dts/sun6i-a31-colombus.dts
new file mode 100644
index 000000000000..99c4b1847cab
--- /dev/null
+++ b/arch/arm/boot/dts/sun6i-a31-colombus.dts
@@ -0,0 +1,30 @@
1/*
2 * Copyright 2013 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/dts-v1/;
15/include/ "sun6i-a31.dtsi"
16
17/ {
18 model = "WITS A31 Colombus Evaluation Board";
19 compatible = "wits,colombus", "allwinner,sun6i-a31";
20
21 chosen {
22 bootargs = "earlyprintk console=ttyS0,115200";
23 };
24
25 soc@01c00000 {
26 uart0: serial@01c28000 {
27 status = "okay";
28 };
29 };
30};
diff --git a/arch/arm/boot/dts/sun6i-a31.dtsi b/arch/arm/boot/dts/sun6i-a31.dtsi
new file mode 100644
index 000000000000..4d076ec24885
--- /dev/null
+++ b/arch/arm/boot/dts/sun6i-a31.dtsi
@@ -0,0 +1,156 @@
1/*
2 * Copyright 2013 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 = <&gic>;
18
19 cpus {
20 #address-cells = <1>;
21 #size-cells = <0>;
22
23 cpu@0 {
24 compatible = "arm,cortex-a7";
25 device_type = "cpu";
26 reg = <0>;
27 };
28
29 cpu@1 {
30 compatible = "arm,cortex-a7";
31 device_type = "cpu";
32 reg = <1>;
33 };
34
35 cpu@2 {
36 compatible = "arm,cortex-a7";
37 device_type = "cpu";
38 reg = <2>;
39 };
40
41 cpu@3 {
42 compatible = "arm,cortex-a7";
43 device_type = "cpu";
44 reg = <3>;
45 };
46 };
47
48 memory {
49 reg = <0x40000000 0x80000000>;
50 };
51
52 clocks {
53 #address-cells = <1>;
54 #size-cells = <0>;
55
56 osc: oscillator {
57 #clock-cells = <0>;
58 compatible = "fixed-clock";
59 clock-frequency = <24000000>;
60 };
61 };
62
63 soc@01c00000 {
64 compatible = "simple-bus";
65 #address-cells = <1>;
66 #size-cells = <1>;
67 ranges;
68
69 timer@01c20c00 {
70 compatible = "allwinner,sun4i-timer";
71 reg = <0x01c20c00 0xa0>;
72 interrupts = <0 18 1>,
73 <0 19 1>,
74 <0 20 1>,
75 <0 21 1>,
76 <0 22 1>;
77 clocks = <&osc>;
78 };
79
80 wdt1: watchdog@01c20ca0 {
81 compatible = "allwinner,sun6i-wdt";
82 reg = <0x01c20ca0 0x20>;
83 };
84
85 uart0: serial@01c28000 {
86 compatible = "snps,dw-apb-uart";
87 reg = <0x01c28000 0x400>;
88 interrupts = <0 0 1>;
89 reg-shift = <2>;
90 reg-io-width = <4>;
91 clocks = <&osc>;
92 status = "disabled";
93 };
94
95 uart1: serial@01c28400 {
96 compatible = "snps,dw-apb-uart";
97 reg = <0x01c28400 0x400>;
98 interrupts = <0 1 1>;
99 reg-shift = <2>;
100 reg-io-width = <4>;
101 clocks = <&osc>;
102 status = "disabled";
103 };
104
105 uart2: serial@01c28800 {
106 compatible = "snps,dw-apb-uart";
107 reg = <0x01c28800 0x400>;
108 interrupts = <0 2 1>;
109 reg-shift = <2>;
110 reg-io-width = <4>;
111 clocks = <&osc>;
112 status = "disabled";
113 };
114
115 uart3: serial@01c28c00 {
116 compatible = "snps,dw-apb-uart";
117 reg = <0x01c28c00 0x400>;
118 interrupts = <0 3 1>;
119 reg-shift = <2>;
120 reg-io-width = <4>;
121 clocks = <&osc>;
122 status = "disabled";
123 };
124
125 uart4: serial@01c29000 {
126 compatible = "snps,dw-apb-uart";
127 reg = <0x01c29000 0x400>;
128 interrupts = <0 4 1>;
129 reg-shift = <2>;
130 reg-io-width = <4>;
131 clocks = <&osc>;
132 status = "disabled";
133 };
134
135 uart5: serial@01c29400 {
136 compatible = "snps,dw-apb-uart";
137 reg = <0x01c29400 0x400>;
138 interrupts = <0 5 1>;
139 reg-shift = <2>;
140 reg-io-width = <4>;
141 clocks = <&osc>;
142 status = "disabled";
143 };
144
145 gic: interrupt-controller@01c81000 {
146 compatible = "arm,cortex-a7-gic", "arm,cortex-a15-gic";
147 reg = <0x01c81000 0x1000>,
148 <0x01c82000 0x1000>,
149 <0x01c84000 0x2000>,
150 <0x01c86000 0x2000>;
151 interrupt-controller;
152 #interrupt-cells = <3>;
153 interrupts = <1 9 0xf04>;
154 };
155 };
156};
diff --git a/arch/arm/boot/dts/sun7i-a20-olinuxino-micro.dts b/arch/arm/boot/dts/sun7i-a20-olinuxino-micro.dts
new file mode 100644
index 000000000000..d3395846491c
--- /dev/null
+++ b/arch/arm/boot/dts/sun7i-a20-olinuxino-micro.dts
@@ -0,0 +1,34 @@
1/*
2 * Copyright 2013 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/dts-v1/;
15/include/ "sun7i-a20.dtsi"
16
17/ {
18 model = "Olimex A20-Olinuxino Micro";
19 compatible = "olimex,a20-olinuxino-micro", "allwinner,sun7i-a20";
20
21 soc@01c00000 {
22 uart0: serial@01c28000 {
23 status = "okay";
24 };
25
26 uart6: serial@01c29800 {
27 status = "okay";
28 };
29
30 uart7: serial@01c29c00 {
31 status = "okay";
32 };
33 };
34};
diff --git a/arch/arm/boot/dts/sun7i-a20.dtsi b/arch/arm/boot/dts/sun7i-a20.dtsi
new file mode 100644
index 000000000000..33391517118c
--- /dev/null
+++ b/arch/arm/boot/dts/sun7i-a20.dtsi
@@ -0,0 +1,172 @@
1/*
2 * Copyright 2013 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 = <&gic>;
18
19 cpus {
20 #address-cells = <1>;
21 #size-cells = <0>;
22
23 cpu@0 {
24 compatible = "arm,cortex-a7";
25 device_type = "cpu";
26 reg = <0>;
27 };
28
29 cpu@1 {
30 compatible = "arm,cortex-a7";
31 device_type = "cpu";
32 reg = <1>;
33 };
34 };
35
36 memory {
37 reg = <0x40000000 0x80000000>;
38 };
39
40 clocks {
41 #address-cells = <1>;
42 #size-cells = <1>;
43 ranges;
44
45 osc24M: osc24M@01c20050 {
46 #clock-cells = <0>;
47 compatible = "fixed-clock";
48 clock-frequency = <24000000>;
49 };
50
51 osc32k: osc32k {
52 #clock-cells = <0>;
53 compatible = "fixed-clock";
54 clock-frequency = <32768>;
55 };
56 };
57
58 soc@01c00000 {
59 compatible = "simple-bus";
60 #address-cells = <1>;
61 #size-cells = <1>;
62 ranges;
63
64 timer@01c20c00 {
65 compatible = "allwinner,sun4i-timer";
66 reg = <0x01c20c00 0x90>;
67 interrupts = <0 22 1>,
68 <0 23 1>,
69 <0 24 1>,
70 <0 25 1>,
71 <0 67 1>,
72 <0 68 1>;
73 clocks = <&osc24M>;
74 };
75
76 wdt: watchdog@01c20c90 {
77 compatible = "allwinner,sun4i-wdt";
78 reg = <0x01c20c90 0x10>;
79 };
80
81 uart0: serial@01c28000 {
82 compatible = "snps,dw-apb-uart";
83 reg = <0x01c28000 0x400>;
84 interrupts = <0 1 1>;
85 reg-shift = <2>;
86 reg-io-width = <4>;
87 clocks = <&osc24M>;
88 status = "disabled";
89 };
90
91 uart1: serial@01c28400 {
92 compatible = "snps,dw-apb-uart";
93 reg = <0x01c28400 0x400>;
94 interrupts = <0 2 1>;
95 reg-shift = <2>;
96 reg-io-width = <4>;
97 clocks = <&osc24M>;
98 status = "disabled";
99 };
100
101 uart2: serial@01c28800 {
102 compatible = "snps,dw-apb-uart";
103 reg = <0x01c28800 0x400>;
104 interrupts = <0 3 1>;
105 reg-shift = <2>;
106 reg-io-width = <4>;
107 clocks = <&osc24M>;
108 status = "disabled";
109 };
110
111 uart3: serial@01c28c00 {
112 compatible = "snps,dw-apb-uart";
113 reg = <0x01c28c00 0x400>;
114 interrupts = <0 4 1>;
115 reg-shift = <2>;
116 reg-io-width = <4>;
117 clocks = <&osc24M>;
118 status = "disabled";
119 };
120
121 uart4: serial@01c29000 {
122 compatible = "snps,dw-apb-uart";
123 reg = <0x01c29000 0x400>;
124 interrupts = <0 17 1>;
125 reg-shift = <2>;
126 reg-io-width = <4>;
127 clocks = <&osc24M>;
128 status = "disabled";
129 };
130
131 uart5: serial@01c29400 {
132 compatible = "snps,dw-apb-uart";
133 reg = <0x01c29400 0x400>;
134 interrupts = <0 18 1>;
135 reg-shift = <2>;
136 reg-io-width = <4>;
137 clocks = <&osc24M>;
138 status = "disabled";
139 };
140
141 uart6: serial@01c29800 {
142 compatible = "snps,dw-apb-uart";
143 reg = <0x01c29800 0x400>;
144 interrupts = <0 19 1>;
145 reg-shift = <2>;
146 reg-io-width = <4>;
147 clocks = <&osc24M>;
148 status = "disabled";
149 };
150
151 uart7: serial@01c29c00 {
152 compatible = "snps,dw-apb-uart";
153 reg = <0x01c29c00 0x400>;
154 interrupts = <0 20 1>;
155 reg-shift = <2>;
156 reg-io-width = <4>;
157 clocks = <&osc24M>;
158 status = "disabled";
159 };
160
161 gic: interrupt-controller@01c81000 {
162 compatible = "arm,cortex-a7-gic", "arm,cortex-a15-gic";
163 reg = <0x01c81000 0x1000>,
164 <0x01c82000 0x1000>,
165 <0x01c84000 0x2000>,
166 <0x01c86000 0x2000>;
167 interrupt-controller;
168 #interrupt-cells = <3>;
169 interrupts = <1 9 0xf04>;
170 };
171 };
172};