aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/boot
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2012-06-01 18:46:46 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2012-06-01 18:46:46 -0400
commitefff0471b0dd8b08ca3830b06a9083f6d6cef44e (patch)
tree44e99900de7a8677e9fdabe871600ddf98d22c23 /arch/arm/boot
parent3ded7acfddb3d8dad4a1490a3a75e9d8bc975c35 (diff)
parent5910de9e2de453956c3a18816f4838d96ac86988 (diff)
Merge branch 'ux500/hickup' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc
Pull arm fixes for ux500 mismerge mishap from Arnd Bergmann: "The device tree conversion for arm/ux500 in 3.5 turns out to be incomplete because of a mismerge done by Linus Walleij that I failed to notice early enough and that Lee Jones as the original author of those patches did not manage to fix during the -next cycle. While we originally to get a much larger set of ux500 device tree enablement patches merged, this did not happen in time. After some discussion at Linaro Connect conference this week, Lee has been able to do damage control and provide a series to put the broken platform back into usable shape for both DT and non-DT based booting. This series has not been part of linux-next and is based on top of the current state of the upstream kernel rather than an -rc, but this is the best we could manage given the earlier breakage." * 'ux500/hickup' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: ARM: ux500: Enable probing of pinctrl through Device Tree ARM: ux500: Add support for ab8500 regulators into the Device Tree ARM: ux500: Provide regulator support for SMSC911x via Device Tree ARM: ux500: Allow PRCMU regulator to be probed during a DT enabled boot ARM: ux500: Apply db8500-prcmu regulator information to db8500 Device Tree ARM: ux500: Only initialise STE's UIBs on boards which support them ARM: ux500: Disable platform setup of the ab8500 when DT is enabled ARM: ux500: Use correct format for dynamic IRQ assignment ARM: ux500: Re-enable SMSC911x platform code registration during non-DT boots ARM: ux500: PRCMU related configuration and layout corrections for Device Tree ARM: ux500: Remove DB8500 PRCMU platform registration when DT is enabled ARM: ux500: Disable SMSC911x platform code registration when DT is enabled ARM: ux500: New DT:ed u8500_init_devices for one-by-one device enablement ARM: ux500: New DT:ed snowball_platform_devs for one-by-one device enablement pinctrl-nomadik: Allow Device Tree driver probing
Diffstat (limited to 'arch/arm/boot')
-rw-r--r--arch/arm/boot/dts/db8500.dtsi204
-rw-r--r--arch/arm/boot/dts/snowball.dts32
2 files changed, 224 insertions, 12 deletions
diff --git a/arch/arm/boot/dts/db8500.dtsi b/arch/arm/boot/dts/db8500.dtsi
index 881bc3987844..4ad5160018cb 100644
--- a/arch/arm/boot/dts/db8500.dtsi
+++ b/arch/arm/boot/dts/db8500.dtsi
@@ -58,6 +58,8 @@
58 "st,nomadik-gpio"; 58 "st,nomadik-gpio";
59 reg = <0x8012e000 0x80>; 59 reg = <0x8012e000 0x80>;
60 interrupts = <0 119 0x4>; 60 interrupts = <0 119 0x4>;
61 interrupt-controller;
62 #interrupt-cells = <2>;
61 supports-sleepmode; 63 supports-sleepmode;
62 gpio-controller; 64 gpio-controller;
63 #gpio-cells = <2>; 65 #gpio-cells = <2>;
@@ -69,6 +71,8 @@
69 "st,nomadik-gpio"; 71 "st,nomadik-gpio";
70 reg = <0x8012e080 0x80>; 72 reg = <0x8012e080 0x80>;
71 interrupts = <0 120 0x4>; 73 interrupts = <0 120 0x4>;
74 interrupt-controller;
75 #interrupt-cells = <2>;
72 supports-sleepmode; 76 supports-sleepmode;
73 gpio-controller; 77 gpio-controller;
74 #gpio-cells = <2>; 78 #gpio-cells = <2>;
@@ -80,6 +84,8 @@
80 "st,nomadik-gpio"; 84 "st,nomadik-gpio";
81 reg = <0x8000e000 0x80>; 85 reg = <0x8000e000 0x80>;
82 interrupts = <0 121 0x4>; 86 interrupts = <0 121 0x4>;
87 interrupt-controller;
88 #interrupt-cells = <2>;
83 supports-sleepmode; 89 supports-sleepmode;
84 gpio-controller; 90 gpio-controller;
85 #gpio-cells = <2>; 91 #gpio-cells = <2>;
@@ -91,6 +97,8 @@
91 "st,nomadik-gpio"; 97 "st,nomadik-gpio";
92 reg = <0x8000e080 0x80>; 98 reg = <0x8000e080 0x80>;
93 interrupts = <0 122 0x4>; 99 interrupts = <0 122 0x4>;
100 interrupt-controller;
101 #interrupt-cells = <2>;
94 supports-sleepmode; 102 supports-sleepmode;
95 gpio-controller; 103 gpio-controller;
96 #gpio-cells = <2>; 104 #gpio-cells = <2>;
@@ -102,6 +110,8 @@
102 "st,nomadik-gpio"; 110 "st,nomadik-gpio";
103 reg = <0x8000e100 0x80>; 111 reg = <0x8000e100 0x80>;
104 interrupts = <0 123 0x4>; 112 interrupts = <0 123 0x4>;
113 interrupt-controller;
114 #interrupt-cells = <2>;
105 supports-sleepmode; 115 supports-sleepmode;
106 gpio-controller; 116 gpio-controller;
107 #gpio-cells = <2>; 117 #gpio-cells = <2>;
@@ -113,6 +123,8 @@
113 "st,nomadik-gpio"; 123 "st,nomadik-gpio";
114 reg = <0x8000e180 0x80>; 124 reg = <0x8000e180 0x80>;
115 interrupts = <0 124 0x4>; 125 interrupts = <0 124 0x4>;
126 interrupt-controller;
127 #interrupt-cells = <2>;
116 supports-sleepmode; 128 supports-sleepmode;
117 gpio-controller; 129 gpio-controller;
118 #gpio-cells = <2>; 130 #gpio-cells = <2>;
@@ -124,6 +136,8 @@
124 "st,nomadik-gpio"; 136 "st,nomadik-gpio";
125 reg = <0x8011e000 0x80>; 137 reg = <0x8011e000 0x80>;
126 interrupts = <0 125 0x4>; 138 interrupts = <0 125 0x4>;
139 interrupt-controller;
140 #interrupt-cells = <2>;
127 supports-sleepmode; 141 supports-sleepmode;
128 gpio-controller; 142 gpio-controller;
129 #gpio-cells = <2>; 143 #gpio-cells = <2>;
@@ -135,6 +149,8 @@
135 "st,nomadik-gpio"; 149 "st,nomadik-gpio";
136 reg = <0x8011e080 0x80>; 150 reg = <0x8011e080 0x80>;
137 interrupts = <0 126 0x4>; 151 interrupts = <0 126 0x4>;
152 interrupt-controller;
153 #interrupt-cells = <2>;
138 supports-sleepmode; 154 supports-sleepmode;
139 gpio-controller; 155 gpio-controller;
140 #gpio-cells = <2>; 156 #gpio-cells = <2>;
@@ -146,12 +162,18 @@
146 "st,nomadik-gpio"; 162 "st,nomadik-gpio";
147 reg = <0xa03fe000 0x80>; 163 reg = <0xa03fe000 0x80>;
148 interrupts = <0 127 0x4>; 164 interrupts = <0 127 0x4>;
165 interrupt-controller;
166 #interrupt-cells = <2>;
149 supports-sleepmode; 167 supports-sleepmode;
150 gpio-controller; 168 gpio-controller;
151 #gpio-cells = <2>; 169 #gpio-cells = <2>;
152 gpio-bank = <8>; 170 gpio-bank = <8>;
153 }; 171 };
154 172
173 pinctrl {
174 compatible = "stericsson,nmk_pinctrl";
175 };
176
155 usb@a03e0000 { 177 usb@a03e0000 {
156 compatible = "stericsson,db8500-musb", 178 compatible = "stericsson,db8500-musb",
157 "mentor,musb"; 179 "mentor,musb";
@@ -169,20 +191,195 @@
169 prcmu@80157000 { 191 prcmu@80157000 {
170 compatible = "stericsson,db8500-prcmu"; 192 compatible = "stericsson,db8500-prcmu";
171 reg = <0x80157000 0x1000>; 193 reg = <0x80157000 0x1000>;
172 interrupts = <46 47>; 194 interrupts = <0 47 0x4>;
173 #address-cells = <1>; 195 #address-cells = <1>;
174 #size-cells = <1>; 196 #size-cells = <1>;
175 ranges; 197 ranges;
176 198
177 prcmu-timer-4@80157450 { 199 prcmu-timer-4@80157450 {
178 compatible = "stericsson,db8500-prcmu-timer-4"; 200 compatible = "stericsson,db8500-prcmu-timer-4";
179 reg = <0x80157450 0xC>; 201 reg = <0x80157450 0xC>;
180 }; 202 };
181 203
204 db8500-prcmu-regulators {
205 compatible = "stericsson,db8500-prcmu-regulator";
206
207 // DB8500_REGULATOR_VAPE
208 db8500_vape_reg: db8500_vape {
209 regulator-name = "db8500-vape";
210 regulator-always-on;
211 };
212
213 // DB8500_REGULATOR_VARM
214 db8500_varm_reg: db8500_varm {
215 regulator-name = "db8500-varm";
216 };
217
218 // DB8500_REGULATOR_VMODEM
219 db8500_vmodem_reg: db8500_vmodem {
220 regulator-name = "db8500-vmodem";
221 };
222
223 // DB8500_REGULATOR_VPLL
224 db8500_vpll_reg: db8500_vpll {
225 regulator-name = "db8500-vpll";
226 };
227
228 // DB8500_REGULATOR_VSMPS1
229 db8500_vsmps1_reg: db8500_vsmps1 {
230 regulator-name = "db8500-vsmps1";
231 };
232
233 // DB8500_REGULATOR_VSMPS2
234 db8500_vsmps2_reg: db8500_vsmps2 {
235 regulator-name = "db8500-vsmps2";
236 };
237
238 // DB8500_REGULATOR_VSMPS3
239 db8500_vsmps3_reg: db8500_vsmps3 {
240 regulator-name = "db8500-vsmps3";
241 };
242
243 // DB8500_REGULATOR_VRF1
244 db8500_vrf1_reg: db8500_vrf1 {
245 regulator-name = "db8500-vrf1";
246 };
247
248 // DB8500_REGULATOR_SWITCH_SVAMMDSP
249 db8500_sva_mmdsp_reg: db8500_sva_mmdsp {
250 regulator-name = "db8500-sva-mmdsp";
251 };
252
253 // DB8500_REGULATOR_SWITCH_SVAMMDSPRET
254 db8500_sva_mmdsp_ret_reg: db8500_sva_mmdsp_ret {
255 regulator-name = "db8500-sva-mmdsp-ret";
256 };
257
258 // DB8500_REGULATOR_SWITCH_SVAPIPE
259 db8500_sva_pipe_reg: db8500_sva_pipe {
260 regulator-name = "db8500_sva_pipe";
261 };
262
263 // DB8500_REGULATOR_SWITCH_SIAMMDSP
264 db8500_sia_mmdsp_reg: db8500_sia_mmdsp {
265 regulator-name = "db8500_sia_mmdsp";
266 };
267
268 // DB8500_REGULATOR_SWITCH_SIAMMDSPRET
269 db8500_sia_mmdsp_ret_reg: db8500_sia_mmdsp_ret {
270 regulator-name = "db8500-sia-mmdsp-ret";
271 };
272
273 // DB8500_REGULATOR_SWITCH_SIAPIPE
274 db8500_sia_pipe_reg: db8500_sia_pipe {
275 regulator-name = "db8500-sia-pipe";
276 };
277
278 // DB8500_REGULATOR_SWITCH_SGA
279 db8500_sga_reg: db8500_sga {
280 regulator-name = "db8500-sga";
281 vin-supply = <&db8500_vape_reg>;
282 };
283
284 // DB8500_REGULATOR_SWITCH_B2R2_MCDE
285 db8500_b2r2_mcde_reg: db8500_b2r2_mcde {
286 regulator-name = "db8500-b2r2-mcde";
287 vin-supply = <&db8500_vape_reg>;
288 };
289
290 // DB8500_REGULATOR_SWITCH_ESRAM12
291 db8500_esram12_reg: db8500_esram12 {
292 regulator-name = "db8500-esram12";
293 };
294
295 // DB8500_REGULATOR_SWITCH_ESRAM12RET
296 db8500_esram12_ret_reg: db8500_esram12_ret {
297 regulator-name = "db8500-esram12-ret";
298 };
299
300 // DB8500_REGULATOR_SWITCH_ESRAM34
301 db8500_esram34_reg: db8500_esram34 {
302 regulator-name = "db8500-esram34";
303 };
304
305 // DB8500_REGULATOR_SWITCH_ESRAM34RET
306 db8500_esram34_ret_reg: db8500_esram34_ret {
307 regulator-name = "db8500-esram34-ret";
308 };
309 };
310
182 ab8500@5 { 311 ab8500@5 {
183 compatible = "stericsson,ab8500"; 312 compatible = "stericsson,ab8500";
184 reg = <5>; /* mailbox 5 is i2c */ 313 reg = <5>; /* mailbox 5 is i2c */
185 interrupts = <0 40 0x4>; 314 interrupts = <0 40 0x4>;
315
316 ab8500-regulators {
317 compatible = "stericsson,ab8500-regulator";
318
319 // supplies to the display/camera
320 ab8500_ldo_aux1_reg: ab8500_ldo_aux1 {
321 regulator-name = "V-DISPLAY";
322 regulator-min-microvolt = <2500000>;
323 regulator-max-microvolt = <2900000>;
324 regulator-boot-on;
325 /* BUG: If turned off MMC will be affected. */
326 regulator-always-on;
327 };
328
329 // supplies to the on-board eMMC
330 ab8500_ldo_aux2_reg: ab8500_ldo_aux2 {
331 regulator-name = "V-eMMC1";
332 regulator-min-microvolt = <1100000>;
333 regulator-max-microvolt = <3300000>;
334 };
335
336 // supply for VAUX3; SDcard slots
337 ab8500_ldo_aux3_reg: ab8500_ldo_aux3 {
338 regulator-name = "V-MMC-SD";
339 regulator-min-microvolt = <1100000>;
340 regulator-max-microvolt = <3300000>;
341 };
342
343 // supply for v-intcore12; VINTCORE12 LDO
344 ab8500_ldo_initcore_reg: ab8500_ldo_initcore {
345 regulator-name = "V-INTCORE";
346 };
347
348 // supply for tvout; gpadc; TVOUT LDO
349 ab8500_ldo_tvout_reg: ab8500_ldo_tvout {
350 regulator-name = "V-TVOUT";
351 };
352
353 // supply for ab8500-usb; USB LDO
354 ab8500_ldo_usb_reg: ab8500_ldo_usb {
355 regulator-name = "dummy";
356 };
357
358 // supply for ab8500-vaudio; VAUDIO LDO
359 ab8500_ldo_audio_reg: ab8500_ldo_audio {
360 regulator-name = "V-AUD";
361 };
362
363 // supply for v-anamic1 VAMic1-LDO
364 ab8500_ldo_anamic1_reg: ab8500_ldo_anamic1 {
365 regulator-name = "V-AMIC1";
366 };
367
368 // supply for v-amic2; VAMIC2 LDO; reuse constants for AMIC1
369 ab8500_ldo_amamic2_reg: ab8500_ldo_amamic2 {
370 regulator-name = "V-AMIC2";
371 };
372
373 // supply for v-dmic; VDMIC LDO
374 ab8500_ldo_dmic_reg: ab8500_ldo_dmic {
375 regulator-name = "V-DMIC";
376 };
377
378 // supply for U8500 CSI/DSI; VANA LDO
379 ab8500_ldo_ana_reg: ab8500_ldo_ana {
380 regulator-name = "V-CSI/DSI";
381 };
382 };
186 }; 383 };
187 }; 384 };
188 385
@@ -235,7 +432,8 @@
235 status = "disabled"; 432 status = "disabled";
236 433
237 // Add one of these for each child device 434 // Add one of these for each child device
238 cs-gpios = <&gpio0 31 &gpio4 14 &gpio4 16 &gpio6 22 &gpio7 0>; 435 cs-gpios = <&gpio0 31 0x4 &gpio4 14 0x4 &gpio4 16 0x4
436 &gpio6 22 0x4 &gpio7 0 0x4>;
239 437
240 }; 438 };
241 439
diff --git a/arch/arm/boot/dts/snowball.dts b/arch/arm/boot/dts/snowball.dts
index d99dc04f0d91..ec3c33975110 100644
--- a/arch/arm/boot/dts/snowball.dts
+++ b/arch/arm/boot/dts/snowball.dts
@@ -20,6 +20,16 @@
20 reg = <0x00000000 0x20000000>; 20 reg = <0x00000000 0x20000000>;
21 }; 21 };
22 22
23 en_3v3_reg: en_3v3 {
24 compatible = "regulator-fixed";
25 regulator-name = "en-3v3-fixed-supply";
26 regulator-min-microvolt = <3300000>;
27 regulator-max-microvolt = <3300000>;
28 gpios = <&gpio0 26 0x4>; // 26
29 startup-delay-us = <5000>;
30 enable-active-high;
31 };
32
23 gpio_keys { 33 gpio_keys {
24 compatible = "gpio-keys"; 34 compatible = "gpio-keys";
25 #address-cells = <1>; 35 #address-cells = <1>;
@@ -30,35 +40,35 @@
30 wakeup = <1>; 40 wakeup = <1>;
31 linux,code = <2>; 41 linux,code = <2>;
32 label = "userpb"; 42 label = "userpb";
33 gpios = <&gpio1 0 0>; 43 gpios = <&gpio1 0 0x4>;
34 }; 44 };
35 button@2 { 45 button@2 {
36 debounce_interval = <50>; 46 debounce_interval = <50>;
37 wakeup = <1>; 47 wakeup = <1>;
38 linux,code = <3>; 48 linux,code = <3>;
39 label = "extkb1"; 49 label = "extkb1";
40 gpios = <&gpio4 23 0>; 50 gpios = <&gpio4 23 0x4>;
41 }; 51 };
42 button@3 { 52 button@3 {
43 debounce_interval = <50>; 53 debounce_interval = <50>;
44 wakeup = <1>; 54 wakeup = <1>;
45 linux,code = <4>; 55 linux,code = <4>;
46 label = "extkb2"; 56 label = "extkb2";
47 gpios = <&gpio4 24 0>; 57 gpios = <&gpio4 24 0x4>;
48 }; 58 };
49 button@4 { 59 button@4 {
50 debounce_interval = <50>; 60 debounce_interval = <50>;
51 wakeup = <1>; 61 wakeup = <1>;
52 linux,code = <5>; 62 linux,code = <5>;
53 label = "extkb3"; 63 label = "extkb3";
54 gpios = <&gpio5 1 0>; 64 gpios = <&gpio5 1 0x4>;
55 }; 65 };
56 button@5 { 66 button@5 {
57 debounce_interval = <50>; 67 debounce_interval = <50>;
58 wakeup = <1>; 68 wakeup = <1>;
59 linux,code = <6>; 69 linux,code = <6>;
60 label = "extkb4"; 70 label = "extkb4";
61 gpios = <&gpio5 2 0>; 71 gpios = <&gpio5 2 0x4>;
62 }; 72 };
63 }; 73 };
64 74
@@ -66,12 +76,11 @@
66 compatible = "gpio-leds"; 76 compatible = "gpio-leds";
67 used-led { 77 used-led {
68 label = "user_led"; 78 label = "user_led";
69 gpios = <&gpio4 14>; 79 gpios = <&gpio4 14 0x4>;
70 }; 80 };
71 }; 81 };
72 82
73 soc-u9500 { 83 soc-u9500 {
74
75 external-bus@50000000 { 84 external-bus@50000000 {
76 status = "okay"; 85 status = "okay";
77 86
@@ -80,6 +89,9 @@
80 reg = <0 0x10000>; 89 reg = <0 0x10000>;
81 interrupts = <12 0x1>; 90 interrupts = <12 0x1>;
82 interrupt-parent = <&gpio4>; 91 interrupt-parent = <&gpio4>;
92 vdd33a-supply = <&en_3v3_reg>;
93 vddvario-supply = <&db8500_vape_reg>;
94
83 95
84 reg-shift = <1>; 96 reg-shift = <1>;
85 reg-io-width = <2>; 97 reg-io-width = <2>;
@@ -91,11 +103,13 @@
91 103
92 sdi@80126000 { 104 sdi@80126000 {
93 status = "enabled"; 105 status = "enabled";
94 cd-gpios = <&gpio6 26>; 106 vmmc-supply = <&ab8500_ldo_aux3_reg>;
107 cd-gpios = <&gpio6 26 0x4>; // 218
95 }; 108 };
96 109
97 sdi@80114000 { 110 sdi@80114000 {
98 status = "enabled"; 111 status = "enabled";
112 vmmc-supply = <&ab8500_ldo_aux2_reg>;
99 }; 113 };
100 114
101 uart@80120000 { 115 uart@80120000 {
@@ -114,7 +128,7 @@
114 tc3589x@42 { 128 tc3589x@42 {
115 //compatible = "tc3589x"; 129 //compatible = "tc3589x";
116 reg = <0x42>; 130 reg = <0x42>;
117 interrupts = <25>; 131 gpios = <&gpio6 25 0x4>;
118 interrupt-parent = <&gpio6>; 132 interrupt-parent = <&gpio6>;
119 }; 133 };
120 tps61052@33 { 134 tps61052@33 {