aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArnd Bergmann <arnd@arndb.de>2016-05-10 10:10:28 -0400
committerArnd Bergmann <arnd@arndb.de>2016-05-10 10:10:28 -0400
commit0f02588434a448dc593d4fae35eda10fad1897c5 (patch)
tree9d10467b3ae907105e56227dfb14492a75448138
parent18aab73fba7abee4df472424d115d76b199877cb (diff)
parent068655dc9b7c71c4bea25c41eeaa5125c6724a91 (diff)
Merge tag 'sunxi-dt-for-4.7-2' of https://git.kernel.org/pub/scm/linux/kernel/git/mripard/linux into next/dt
Merge "Allwinner DT changes for 4.7, round 2" from Maxime Ripard: Mostly DT patches to enable the new DRM driver on the CHIP, preliminary support for the A10 and A20, and a support for a new variant of the Olimex A20-Olinuxino-Lime2 featuring an eMMC * tag 'sunxi-dt-for-4.7-2' of https://git.kernel.org/pub/scm/linux/kernel/git/mripard/linux: ARM: sun7i: dt: Add pll3 and pll7 clocks ARM: dts: sunxi: Add a olinuxino-lime2-emmc ARM: sun4i: dt: Add pll3 and pll7 clocks ARM: sun5i: chip: Enable the TV Encoder ARM: sun5i: r8: Add display blocks to the DTSI ARM: sun5i: a13: Add display and TCON clocks
-rw-r--r--arch/arm/boot/dts/sun4i-a10.dtsi43
-rw-r--r--arch/arm/boot/dts/sun5i-a13.dtsi39
-rw-r--r--arch/arm/boot/dts/sun5i-r8-chip.dts12
-rw-r--r--arch/arm/boot/dts/sun5i-r8.dtsi142
-rw-r--r--arch/arm/boot/dts/sun7i-a20-olinuxino-lime2-emmc.dts82
-rw-r--r--arch/arm/boot/dts/sun7i-a20.dtsi41
6 files changed, 355 insertions, 4 deletions
diff --git a/arch/arm/boot/dts/sun4i-a10.dtsi b/arch/arm/boot/dts/sun4i-a10.dtsi
index 268a1504d984..a03e56fb5dbc 100644
--- a/arch/arm/boot/dts/sun4i-a10.dtsi
+++ b/arch/arm/boot/dts/sun4i-a10.dtsi
@@ -184,6 +184,15 @@
184 clock-output-names = "osc24M"; 184 clock-output-names = "osc24M";
185 }; 185 };
186 186
187 osc3M: osc3M_clk {
188 compatible = "fixed-factor-clock";
189 #clock-cells = <0>;
190 clock-div = <8>;
191 clock-mult = <1>;
192 clocks = <&osc24M>;
193 clock-output-names = "osc3M";
194 };
195
187 osc32k: clk@0 { 196 osc32k: clk@0 {
188 #clock-cells = <0>; 197 #clock-cells = <0>;
189 compatible = "fixed-clock"; 198 compatible = "fixed-clock";
@@ -208,6 +217,23 @@
208 "pll2-4x", "pll2-8x"; 217 "pll2-4x", "pll2-8x";
209 }; 218 };
210 219
220 pll3: clk@01c20010 {
221 #clock-cells = <0>;
222 compatible = "allwinner,sun4i-a10-pll3-clk";
223 reg = <0x01c20010 0x4>;
224 clocks = <&osc3M>;
225 clock-output-names = "pll3";
226 };
227
228 pll3x2: pll3x2_clk {
229 compatible = "fixed-factor-clock";
230 #clock-cells = <0>;
231 clock-div = <1>;
232 clock-mult = <2>;
233 clocks = <&pll3>;
234 clock-output-names = "pll3-2x";
235 };
236
211 pll4: clk@01c20018 { 237 pll4: clk@01c20018 {
212 #clock-cells = <0>; 238 #clock-cells = <0>;
213 compatible = "allwinner,sun4i-a10-pll1-clk"; 239 compatible = "allwinner,sun4i-a10-pll1-clk";
@@ -232,6 +258,23 @@
232 clock-output-names = "pll6_sata", "pll6_other", "pll6"; 258 clock-output-names = "pll6_sata", "pll6_other", "pll6";
233 }; 259 };
234 260
261 pll7: clk@01c20030 {
262 #clock-cells = <0>;
263 compatible = "allwinner,sun4i-a10-pll3-clk";
264 reg = <0x01c20030 0x4>;
265 clocks = <&osc3M>;
266 clock-output-names = "pll7";
267 };
268
269 pll7x2: pll7x2_clk {
270 compatible = "fixed-factor-clock";
271 #clock-cells = <0>;
272 clock-div = <1>;
273 clock-mult = <2>;
274 clocks = <&pll7>;
275 clock-output-names = "pll7-2x";
276 };
277
235 /* dummy is 200M */ 278 /* dummy is 200M */
236 cpu: cpu@01c20054 { 279 cpu: cpu@01c20054 {
237 #clock-cells = <0>; 280 #clock-cells = <0>;
diff --git a/arch/arm/boot/dts/sun5i-a13.dtsi b/arch/arm/boot/dts/sun5i-a13.dtsi
index 39f23b1ebc8f..263d46dbc7e6 100644
--- a/arch/arm/boot/dts/sun5i-a13.dtsi
+++ b/arch/arm/boot/dts/sun5i-a13.dtsi
@@ -61,8 +61,8 @@
61 compatible = "allwinner,simple-framebuffer", 61 compatible = "allwinner,simple-framebuffer",
62 "simple-framebuffer"; 62 "simple-framebuffer";
63 allwinner,pipeline = "de_be0-lcd0"; 63 allwinner,pipeline = "de_be0-lcd0";
64 clocks = <&pll5 1>, <&ahb_gates 36>, <&ahb_gates 44>, 64 clocks = <&ahb_gates 36>, <&ahb_gates 44>, <&de_be_clk>,
65 <&dram_gates 26>; 65 <&tcon_ch0_clk>, <&dram_gates 26>;
66 status = "disabled"; 66 status = "disabled";
67 }; 67 };
68 }; 68 };
@@ -170,6 +170,41 @@
170 "dram_ace", 170 "dram_ace",
171 "dram_iep"; 171 "dram_iep";
172 }; 172 };
173
174 de_be_clk: clk@01c20104 {
175 #clock-cells = <0>;
176 #reset-cells = <0>;
177 compatible = "allwinner,sun4i-a10-display-clk";
178 reg = <0x01c20104 0x4>;
179 clocks = <&pll3>, <&pll7>, <&pll5 1>;
180 clock-output-names = "de-be";
181 };
182
183 de_fe_clk: clk@01c2010c {
184 #clock-cells = <0>;
185 #reset-cells = <0>;
186 compatible = "allwinner,sun4i-a10-display-clk";
187 reg = <0x01c2010c 0x4>;
188 clocks = <&pll3>, <&pll7>, <&pll5 1>;
189 clock-output-names = "de-fe";
190 };
191
192 tcon_ch0_clk: clk@01c20118 {
193 #clock-cells = <0>;
194 #reset-cells = <1>;
195 compatible = "allwinner,sun4i-a10-tcon-ch0-clk";
196 reg = <0x01c20118 0x4>;
197 clocks = <&pll3>, <&pll7>, <&pll3x2>, <&pll7x2>;
198 clock-output-names = "tcon-ch0-sclk";
199 };
200
201 tcon_ch1_clk: clk@01c2012c {
202 #clock-cells = <0>;
203 compatible = "allwinner,sun4i-a10-tcon-ch1-clk";
204 reg = <0x01c2012c 0x4>;
205 clocks = <&pll3>, <&pll7>, <&pll3x2>, <&pll7x2>;
206 clock-output-names = "tcon-ch1-sclk";
207 };
173 }; 208 };
174 209
175 soc@01c00000 { 210 soc@01c00000 {
diff --git a/arch/arm/boot/dts/sun5i-r8-chip.dts b/arch/arm/boot/dts/sun5i-r8-chip.dts
index f6898c6b84d4..a8d8b4582397 100644
--- a/arch/arm/boot/dts/sun5i-r8-chip.dts
+++ b/arch/arm/boot/dts/sun5i-r8-chip.dts
@@ -66,6 +66,10 @@
66 }; 66 };
67}; 67};
68 68
69&be0 {
70 status = "okay";
71};
72
69&codec { 73&codec {
70 status = "okay"; 74 status = "okay";
71}; 75};
@@ -188,6 +192,14 @@
188 status = "okay"; 192 status = "okay";
189}; 193};
190 194
195&tcon0 {
196 status = "okay";
197};
198
199&tve0 {
200 status = "okay";
201};
202
191&uart1 { 203&uart1 {
192 pinctrl-names = "default"; 204 pinctrl-names = "default";
193 pinctrl-0 = <&uart1_pins_b>; 205 pinctrl-0 = <&uart1_pins_b>;
diff --git a/arch/arm/boot/dts/sun5i-r8.dtsi b/arch/arm/boot/dts/sun5i-r8.dtsi
index e346ba76db5d..c04cf690b858 100644
--- a/arch/arm/boot/dts/sun5i-r8.dtsi
+++ b/arch/arm/boot/dts/sun5i-r8.dtsi
@@ -51,9 +51,147 @@
51 compatible = "allwinner,simple-framebuffer", 51 compatible = "allwinner,simple-framebuffer",
52 "simple-framebuffer"; 52 "simple-framebuffer";
53 allwinner,pipeline = "de_be0-lcd0-tve0"; 53 allwinner,pipeline = "de_be0-lcd0-tve0";
54 clocks = <&pll5 1>, <&ahb_gates 34>, <&ahb_gates 36>, 54 clocks = <&ahb_gates 34>, <&ahb_gates 36>,
55 <&ahb_gates 44>, <&dram_gates 26>; 55 <&ahb_gates 44>, <&de_be_clk>,
56 <&tcon_ch1_clk>, <&dram_gates 26>;
56 status = "disabled"; 57 status = "disabled";
57 }; 58 };
58 }; 59 };
60
61 soc@01c00000 {
62 tve0: tv-encoder@01c0a000 {
63 compatible = "allwinner,sun4i-a10-tv-encoder";
64 reg = <0x01c0a000 0x1000>;
65 clocks = <&ahb_gates 34>;
66 resets = <&tcon_ch0_clk 0>;
67 status = "disabled";
68
69 port {
70 #address-cells = <1>;
71 #size-cells = <0>;
72
73 tve0_in_tcon0: endpoint@0 {
74 reg = <0>;
75 remote-endpoint = <&tcon0_out_tve0>;
76 };
77 };
78 };
79
80 tcon0: lcd-controller@01c0c000 {
81 compatible = "allwinner,sun5i-a13-tcon";
82 reg = <0x01c0c000 0x1000>;
83 interrupts = <44>;
84 resets = <&tcon_ch0_clk 1>;
85 reset-names = "lcd";
86 clocks = <&ahb_gates 36>,
87 <&tcon_ch0_clk>,
88 <&tcon_ch1_clk>;
89 clock-names = "ahb",
90 "tcon-ch0",
91 "tcon-ch1";
92 clock-output-names = "tcon-pixel-clock";
93 status = "disabled";
94
95 ports {
96 #address-cells = <1>;
97 #size-cells = <0>;
98
99 tcon0_in: port@0 {
100 #address-cells = <1>;
101 #size-cells = <0>;
102 reg = <0>;
103
104 tcon0_in_be0: endpoint@0 {
105 reg = <0>;
106 remote-endpoint = <&be0_out_tcon0>;
107 };
108 };
109
110 tcon0_out: port@1 {
111 #address-cells = <1>;
112 #size-cells = <0>;
113 reg = <1>;
114
115 tcon0_out_tve0: endpoint@1 {
116 reg = <1>;
117 remote-endpoint = <&tve0_in_tcon0>;
118 };
119 };
120 };
121 };
122
123 fe0: display-frontend@01e00000 {
124 compatible = "allwinner,sun5i-a13-display-frontend";
125 reg = <0x01e00000 0x20000>;
126 interrupts = <47>;
127 clocks = <&ahb_gates 46>, <&de_fe_clk>,
128 <&dram_gates 25>;
129 clock-names = "ahb", "mod",
130 "ram";
131 resets = <&de_fe_clk>;
132 status = "disabled";
133
134 ports {
135 #address-cells = <1>;
136 #size-cells = <0>;
137
138 fe0_out: port@1 {
139 #address-cells = <1>;
140 #size-cells = <0>;
141 reg = <1>;
142
143 fe0_out_be0: endpoint@0 {
144 reg = <0>;
145 remote-endpoint = <&be0_in_fe0>;
146 };
147 };
148 };
149 };
150
151 be0: display-backend@01e60000 {
152 compatible = "allwinner,sun5i-a13-display-backend";
153 reg = <0x01e60000 0x10000>;
154 clocks = <&ahb_gates 44>, <&de_be_clk>,
155 <&dram_gates 26>;
156 clock-names = "ahb", "mod",
157 "ram";
158 resets = <&de_be_clk>;
159 status = "disabled";
160
161 assigned-clocks = <&de_be_clk>;
162 assigned-clock-rates = <300000000>;
163
164 ports {
165 #address-cells = <1>;
166 #size-cells = <0>;
167
168 be0_in: port@0 {
169 #address-cells = <1>;
170 #size-cells = <0>;
171 reg = <0>;
172
173 be0_in_fe0: endpoint@0 {
174 reg = <0>;
175 remote-endpoint = <&fe0_out_be0>;
176 };
177 };
178
179 be0_out: port@1 {
180 #address-cells = <1>;
181 #size-cells = <0>;
182 reg = <1>;
183
184 be0_out_tcon0: endpoint@0 {
185 reg = <0>;
186 remote-endpoint = <&tcon0_in_be0>;
187 };
188 };
189 };
190 };
191 };
192
193 display-engine {
194 compatible = "allwinner,sun5i-a13-display-engine";
195 allwinner,pipelines = <&fe0>;
196 };
59}; 197};
diff --git a/arch/arm/boot/dts/sun7i-a20-olinuxino-lime2-emmc.dts b/arch/arm/boot/dts/sun7i-a20-olinuxino-lime2-emmc.dts
new file mode 100644
index 000000000000..5ea4915f6d75
--- /dev/null
+++ b/arch/arm/boot/dts/sun7i-a20-olinuxino-lime2-emmc.dts
@@ -0,0 +1,82 @@
1 /*
2 * Copyright 2015 - Ultimaker B.V.
3 * Author Olliver Schinagl <oliver@schinagl.nl>
4 *
5 * This file is dual-licensed: you can use it either under the terms
6 * of the GPL or the X11 license, at your option. Note that this dual
7 * licensing only applies to this file, and not this project as a
8 * whole.
9 *
10 * a) This file is free software; you can redistribute it and/or
11 * modify it under the terms of the GNU General Public License as
12 * published by the Free Software Foundation; either version 2 of the
13 * License, or (at your option) any later version.
14 *
15 * This file is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 * GNU General Public License for more details.
19 *
20 * Or, alternatively,
21 *
22 * b) Permission is hereby granted, free of charge, to any person
23 * obtaining a copy of this software and associated documentation
24 * files (the "Software"), to deal in the Software without
25 * restriction, including without limitation the rights to use,
26 * copy, modify, merge, publish, distribute, sublicense, and/or
27 * sell copies of the Software, and to permit persons to whom the
28 * Software is furnished to do so, subject to the following
29 * conditions:
30 *
31 * The above copyright notice and this permission notice shall be
32 * included in all copies or substantial portions of the Software.
33 *
34 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
35 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
36 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
37 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
38 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
39 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
40 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
41 * OTHER DEALINGS IN THE SOFTWARE.
42 */
43
44#include "sun7i-a20-olinuxino-lime2.dts"
45
46/ {
47 model = "Olimex A20-OLinuXino-LIME2-eMMC";
48 compatible = "olimex,a20-olinuxino-lime2-emmc", "allwinner,sun7i-a20";
49
50 mmc2_pwrseq: pwrseq {
51 pinctrl-0 = <&mmc2_pins_nrst>;
52 pinctrl-names = "default";
53 compatible = "mmc-pwrseq-emmc";
54 reset-gpios = <&pio 2 16 GPIO_ACTIVE_LOW>;
55 };
56};
57
58&pio {
59 mmc2_pins_nrst: mmc2@0 {
60 allwinner,pins = "PC16";
61 allwinner,function = "gpio_out";
62 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
63 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
64 };
65};
66
67&mmc2 {
68 pinctrl-names = "default";
69 pinctrl-0 = <&mmc2_pins_a>;
70 vmmc-supply = <&reg_vcc3v3>;
71 vqmmc-supply = <&reg_vcc3v3>;
72 bus-width = <4>;
73 non-removable;
74 mmc-pwrseq = <&mmc2_pwrseq>;
75 status = "okay";
76
77 emmc: emmc@0 {
78 reg = <0>;
79 compatible = "mmc-card";
80 broken-hpi;
81 };
82};
diff --git a/arch/arm/boot/dts/sun7i-a20.dtsi b/arch/arm/boot/dts/sun7i-a20.dtsi
index bf5d05685d7d..febdf4c72fb0 100644
--- a/arch/arm/boot/dts/sun7i-a20.dtsi
+++ b/arch/arm/boot/dts/sun7i-a20.dtsi
@@ -187,6 +187,15 @@
187 clock-output-names = "osc24M"; 187 clock-output-names = "osc24M";
188 }; 188 };
189 189
190 osc3M: osc3M_clk {
191 #clock-cells = <0>;
192 compatible = "fixed-factor-clock";
193 clock-div = <8>;
194 clock-mult = <1>;
195 clocks = <&osc24M>;
196 clock-output-names = "osc3M";
197 };
198
190 osc32k: clk@0 { 199 osc32k: clk@0 {
191 #clock-cells = <0>; 200 #clock-cells = <0>;
192 compatible = "fixed-clock"; 201 compatible = "fixed-clock";
@@ -211,6 +220,22 @@
211 "pll2-4x", "pll2-8x"; 220 "pll2-4x", "pll2-8x";
212 }; 221 };
213 222
223 pll3: clk@01c20010 {
224 #clock-cells = <0>;
225 compatible = "allwinner,sun4i-a10-pll3-clk";
226 reg = <0x01c20010 0x4>;
227 clocks = <&osc3M>;
228 clock-output-names = "pll3";
229 };
230
231 pll3x2: pll3x2_clk {
232 #clock-cells = <0>;
233 compatible = "fixed-factor-clock";
234 clock-div = <1>;
235 clock-mult = <2>;
236 clock-output-names = "pll3-2x";
237 };
238
214 pll4: clk@01c20018 { 239 pll4: clk@01c20018 {
215 #clock-cells = <0>; 240 #clock-cells = <0>;
216 compatible = "allwinner,sun7i-a20-pll4-clk"; 241 compatible = "allwinner,sun7i-a20-pll4-clk";
@@ -236,6 +261,22 @@
236 "pll6_div_4"; 261 "pll6_div_4";
237 }; 262 };
238 263
264 pll7: clk@01c20030 {
265 #clock-cells = <0>;
266 compatible = "allwinner,sun4i-a10-pll3-clk";
267 reg = <0x01c20030 0x4>;
268 clocks = <&osc3M>;
269 clock-output-names = "pll7";
270 };
271
272 pll7x2: pll7x2_clk {
273 #clock-cells = <0>;
274 compatible = "fixed-factor-clock";
275 clock-div = <1>;
276 clock-mult = <2>;
277 clock-output-names = "pll7-2x";
278 };
279
239 pll8: clk@01c20040 { 280 pll8: clk@01c20040 {
240 #clock-cells = <0>; 281 #clock-cells = <0>;
241 compatible = "allwinner,sun7i-a20-pll4-clk"; 282 compatible = "allwinner,sun7i-a20-pll4-clk";