diff options
24 files changed, 173 insertions, 105 deletions
diff --git a/Documentation/devicetree/bindings/regulator/tps65217.txt b/Documentation/devicetree/bindings/regulator/tps65217.txt index d18109657da6..4f05d208c95c 100644 --- a/Documentation/devicetree/bindings/regulator/tps65217.txt +++ b/Documentation/devicetree/bindings/regulator/tps65217.txt | |||
@@ -26,11 +26,7 @@ Example: | |||
26 | ti,pmic-shutdown-controller; | 26 | ti,pmic-shutdown-controller; |
27 | 27 | ||
28 | regulators { | 28 | regulators { |
29 | #address-cells = <1>; | ||
30 | #size-cells = <0>; | ||
31 | |||
32 | dcdc1_reg: dcdc1 { | 29 | dcdc1_reg: dcdc1 { |
33 | reg = <0>; | ||
34 | regulator-min-microvolt = <900000>; | 30 | regulator-min-microvolt = <900000>; |
35 | regulator-max-microvolt = <1800000>; | 31 | regulator-max-microvolt = <1800000>; |
36 | regulator-boot-on; | 32 | regulator-boot-on; |
@@ -38,7 +34,6 @@ Example: | |||
38 | }; | 34 | }; |
39 | 35 | ||
40 | dcdc2_reg: dcdc2 { | 36 | dcdc2_reg: dcdc2 { |
41 | reg = <1>; | ||
42 | regulator-min-microvolt = <900000>; | 37 | regulator-min-microvolt = <900000>; |
43 | regulator-max-microvolt = <3300000>; | 38 | regulator-max-microvolt = <3300000>; |
44 | regulator-boot-on; | 39 | regulator-boot-on; |
@@ -46,7 +41,6 @@ Example: | |||
46 | }; | 41 | }; |
47 | 42 | ||
48 | dcdc3_reg: dcc3 { | 43 | dcdc3_reg: dcc3 { |
49 | reg = <2>; | ||
50 | regulator-min-microvolt = <900000>; | 44 | regulator-min-microvolt = <900000>; |
51 | regulator-max-microvolt = <1500000>; | 45 | regulator-max-microvolt = <1500000>; |
52 | regulator-boot-on; | 46 | regulator-boot-on; |
@@ -54,7 +48,6 @@ Example: | |||
54 | }; | 48 | }; |
55 | 49 | ||
56 | ldo1_reg: ldo1 { | 50 | ldo1_reg: ldo1 { |
57 | reg = <3>; | ||
58 | regulator-min-microvolt = <1000000>; | 51 | regulator-min-microvolt = <1000000>; |
59 | regulator-max-microvolt = <3300000>; | 52 | regulator-max-microvolt = <3300000>; |
60 | regulator-boot-on; | 53 | regulator-boot-on; |
@@ -62,7 +55,6 @@ Example: | |||
62 | }; | 55 | }; |
63 | 56 | ||
64 | ldo2_reg: ldo2 { | 57 | ldo2_reg: ldo2 { |
65 | reg = <4>; | ||
66 | regulator-min-microvolt = <900000>; | 58 | regulator-min-microvolt = <900000>; |
67 | regulator-max-microvolt = <3300000>; | 59 | regulator-max-microvolt = <3300000>; |
68 | regulator-boot-on; | 60 | regulator-boot-on; |
@@ -70,7 +62,6 @@ Example: | |||
70 | }; | 62 | }; |
71 | 63 | ||
72 | ldo3_reg: ldo3 { | 64 | ldo3_reg: ldo3 { |
73 | reg = <5>; | ||
74 | regulator-min-microvolt = <1800000>; | 65 | regulator-min-microvolt = <1800000>; |
75 | regulator-max-microvolt = <3300000>; | 66 | regulator-max-microvolt = <3300000>; |
76 | regulator-boot-on; | 67 | regulator-boot-on; |
@@ -78,7 +69,6 @@ Example: | |||
78 | }; | 69 | }; |
79 | 70 | ||
80 | ldo4_reg: ldo4 { | 71 | ldo4_reg: ldo4 { |
81 | reg = <6>; | ||
82 | regulator-min-microvolt = <1800000>; | 72 | regulator-min-microvolt = <1800000>; |
83 | regulator-max-microvolt = <3300000>; | 73 | regulator-max-microvolt = <3300000>; |
84 | regulator-boot-on; | 74 | regulator-boot-on; |
diff --git a/MAINTAINERS b/MAINTAINERS index 21faebfeb508..d0f225613f41 100644 --- a/MAINTAINERS +++ b/MAINTAINERS | |||
@@ -920,17 +920,24 @@ M: Emilio López <emilio@elopez.com.ar> | |||
920 | S: Maintained | 920 | S: Maintained |
921 | F: drivers/clk/sunxi/ | 921 | F: drivers/clk/sunxi/ |
922 | 922 | ||
923 | ARM/Amlogic MesonX SoC support | 923 | ARM/Amlogic Meson SoC support |
924 | M: Carlo Caione <carlo@caione.org> | 924 | M: Carlo Caione <carlo@caione.org> |
925 | L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers) | 925 | L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers) |
926 | L: linux-meson@googlegroups.com | ||
927 | W: http://linux-meson.com/ | ||
926 | S: Maintained | 928 | S: Maintained |
927 | F: drivers/media/rc/meson-ir.c | 929 | F: arch/arm/mach-meson/ |
928 | N: meson[x68] | 930 | F: arch/arm/boot/dts/meson* |
931 | N: meson | ||
929 | 932 | ||
930 | ARM/Annapurna Labs ALPINE ARCHITECTURE | 933 | ARM/Annapurna Labs ALPINE ARCHITECTURE |
931 | M: Tsahee Zidenberg <tsahee@annapurnalabs.com> | 934 | M: Tsahee Zidenberg <tsahee@annapurnalabs.com> |
935 | M: Antoine Tenart <antoine.tenart@free-electrons.com> | ||
932 | S: Maintained | 936 | S: Maintained |
933 | F: arch/arm/mach-alpine/ | 937 | F: arch/arm/mach-alpine/ |
938 | F: arch/arm/boot/dts/alpine* | ||
939 | F: arch/arm64/boot/dts/al/ | ||
940 | F: drivers/*/*alpine* | ||
934 | 941 | ||
935 | ARM/ATMEL AT91RM9200, AT91SAM9 AND SAMA5 SOC SUPPORT | 942 | ARM/ATMEL AT91RM9200, AT91SAM9 AND SAMA5 SOC SUPPORT |
936 | M: Nicolas Ferre <nicolas.ferre@atmel.com> | 943 | M: Nicolas Ferre <nicolas.ferre@atmel.com> |
diff --git a/arch/arm/boot/dts/am335x-bone-common.dtsi b/arch/arm/boot/dts/am335x-bone-common.dtsi index f3db13d2d90e..0cc150b87b86 100644 --- a/arch/arm/boot/dts/am335x-bone-common.dtsi +++ b/arch/arm/boot/dts/am335x-bone-common.dtsi | |||
@@ -285,8 +285,10 @@ | |||
285 | }; | 285 | }; |
286 | }; | 286 | }; |
287 | 287 | ||
288 | |||
289 | /include/ "tps65217.dtsi" | ||
290 | |||
288 | &tps { | 291 | &tps { |
289 | compatible = "ti,tps65217"; | ||
290 | /* | 292 | /* |
291 | * Configure pmic to enter OFF-state instead of SLEEP-state ("RTC-only | 293 | * Configure pmic to enter OFF-state instead of SLEEP-state ("RTC-only |
292 | * mode") at poweroff. Most BeagleBone versions do not support RTC-only | 294 | * mode") at poweroff. Most BeagleBone versions do not support RTC-only |
@@ -307,17 +309,12 @@ | |||
307 | ti,pmic-shutdown-controller; | 309 | ti,pmic-shutdown-controller; |
308 | 310 | ||
309 | regulators { | 311 | regulators { |
310 | #address-cells = <1>; | ||
311 | #size-cells = <0>; | ||
312 | |||
313 | dcdc1_reg: regulator@0 { | 312 | dcdc1_reg: regulator@0 { |
314 | reg = <0>; | ||
315 | regulator-name = "vdds_dpr"; | 313 | regulator-name = "vdds_dpr"; |
316 | regulator-always-on; | 314 | regulator-always-on; |
317 | }; | 315 | }; |
318 | 316 | ||
319 | dcdc2_reg: regulator@1 { | 317 | dcdc2_reg: regulator@1 { |
320 | reg = <1>; | ||
321 | /* VDD_MPU voltage limits 0.95V - 1.26V with +/-4% tolerance */ | 318 | /* VDD_MPU voltage limits 0.95V - 1.26V with +/-4% tolerance */ |
322 | regulator-name = "vdd_mpu"; | 319 | regulator-name = "vdd_mpu"; |
323 | regulator-min-microvolt = <925000>; | 320 | regulator-min-microvolt = <925000>; |
@@ -327,7 +324,6 @@ | |||
327 | }; | 324 | }; |
328 | 325 | ||
329 | dcdc3_reg: regulator@2 { | 326 | dcdc3_reg: regulator@2 { |
330 | reg = <2>; | ||
331 | /* VDD_CORE voltage limits 0.95V - 1.1V with +/-4% tolerance */ | 327 | /* VDD_CORE voltage limits 0.95V - 1.1V with +/-4% tolerance */ |
332 | regulator-name = "vdd_core"; | 328 | regulator-name = "vdd_core"; |
333 | regulator-min-microvolt = <925000>; | 329 | regulator-min-microvolt = <925000>; |
@@ -337,25 +333,21 @@ | |||
337 | }; | 333 | }; |
338 | 334 | ||
339 | ldo1_reg: regulator@3 { | 335 | ldo1_reg: regulator@3 { |
340 | reg = <3>; | ||
341 | regulator-name = "vio,vrtc,vdds"; | 336 | regulator-name = "vio,vrtc,vdds"; |
342 | regulator-always-on; | 337 | regulator-always-on; |
343 | }; | 338 | }; |
344 | 339 | ||
345 | ldo2_reg: regulator@4 { | 340 | ldo2_reg: regulator@4 { |
346 | reg = <4>; | ||
347 | regulator-name = "vdd_3v3aux"; | 341 | regulator-name = "vdd_3v3aux"; |
348 | regulator-always-on; | 342 | regulator-always-on; |
349 | }; | 343 | }; |
350 | 344 | ||
351 | ldo3_reg: regulator@5 { | 345 | ldo3_reg: regulator@5 { |
352 | reg = <5>; | ||
353 | regulator-name = "vdd_1v8"; | 346 | regulator-name = "vdd_1v8"; |
354 | regulator-always-on; | 347 | regulator-always-on; |
355 | }; | 348 | }; |
356 | 349 | ||
357 | ldo4_reg: regulator@6 { | 350 | ldo4_reg: regulator@6 { |
358 | reg = <6>; | ||
359 | regulator-name = "vdd_3v3a"; | 351 | regulator-name = "vdd_3v3a"; |
360 | regulator-always-on; | 352 | regulator-always-on; |
361 | }; | 353 | }; |
diff --git a/arch/arm/boot/dts/am335x-chilisom.dtsi b/arch/arm/boot/dts/am335x-chilisom.dtsi index fda457b07e15..857d9894103a 100644 --- a/arch/arm/boot/dts/am335x-chilisom.dtsi +++ b/arch/arm/boot/dts/am335x-chilisom.dtsi | |||
@@ -128,21 +128,16 @@ | |||
128 | 128 | ||
129 | }; | 129 | }; |
130 | 130 | ||
131 | &tps { | 131 | /include/ "tps65217.dtsi" |
132 | compatible = "ti,tps65217"; | ||
133 | 132 | ||
133 | &tps { | ||
134 | regulators { | 134 | regulators { |
135 | #address-cells = <1>; | ||
136 | #size-cells = <0>; | ||
137 | |||
138 | dcdc1_reg: regulator@0 { | 135 | dcdc1_reg: regulator@0 { |
139 | reg = <0>; | ||
140 | regulator-name = "vdds_dpr"; | 136 | regulator-name = "vdds_dpr"; |
141 | regulator-always-on; | 137 | regulator-always-on; |
142 | }; | 138 | }; |
143 | 139 | ||
144 | dcdc2_reg: regulator@1 { | 140 | dcdc2_reg: regulator@1 { |
145 | reg = <1>; | ||
146 | /* VDD_MPU voltage limits 0.95V - 1.26V with +/-4% tolerance */ | 141 | /* VDD_MPU voltage limits 0.95V - 1.26V with +/-4% tolerance */ |
147 | regulator-name = "vdd_mpu"; | 142 | regulator-name = "vdd_mpu"; |
148 | regulator-min-microvolt = <925000>; | 143 | regulator-min-microvolt = <925000>; |
@@ -152,7 +147,6 @@ | |||
152 | }; | 147 | }; |
153 | 148 | ||
154 | dcdc3_reg: regulator@2 { | 149 | dcdc3_reg: regulator@2 { |
155 | reg = <2>; | ||
156 | /* VDD_CORE voltage limits 0.95V - 1.1V with +/-4% tolerance */ | 150 | /* VDD_CORE voltage limits 0.95V - 1.1V with +/-4% tolerance */ |
157 | regulator-name = "vdd_core"; | 151 | regulator-name = "vdd_core"; |
158 | regulator-min-microvolt = <925000>; | 152 | regulator-min-microvolt = <925000>; |
@@ -162,28 +156,24 @@ | |||
162 | }; | 156 | }; |
163 | 157 | ||
164 | ldo1_reg: regulator@3 { | 158 | ldo1_reg: regulator@3 { |
165 | reg = <3>; | ||
166 | regulator-name = "vio,vrtc,vdds"; | 159 | regulator-name = "vio,vrtc,vdds"; |
167 | regulator-boot-on; | 160 | regulator-boot-on; |
168 | regulator-always-on; | 161 | regulator-always-on; |
169 | }; | 162 | }; |
170 | 163 | ||
171 | ldo2_reg: regulator@4 { | 164 | ldo2_reg: regulator@4 { |
172 | reg = <4>; | ||
173 | regulator-name = "vdd_3v3aux"; | 165 | regulator-name = "vdd_3v3aux"; |
174 | regulator-boot-on; | 166 | regulator-boot-on; |
175 | regulator-always-on; | 167 | regulator-always-on; |
176 | }; | 168 | }; |
177 | 169 | ||
178 | ldo3_reg: regulator@5 { | 170 | ldo3_reg: regulator@5 { |
179 | reg = <5>; | ||
180 | regulator-name = "vdd_1v8"; | 171 | regulator-name = "vdd_1v8"; |
181 | regulator-boot-on; | 172 | regulator-boot-on; |
182 | regulator-always-on; | 173 | regulator-always-on; |
183 | }; | 174 | }; |
184 | 175 | ||
185 | ldo4_reg: regulator@6 { | 176 | ldo4_reg: regulator@6 { |
186 | reg = <6>; | ||
187 | regulator-name = "vdd_3v3d"; | 177 | regulator-name = "vdd_3v3d"; |
188 | regulator-boot-on; | 178 | regulator-boot-on; |
189 | regulator-always-on; | 179 | regulator-always-on; |
diff --git a/arch/arm/boot/dts/am335x-nano.dts b/arch/arm/boot/dts/am335x-nano.dts index 77559a1ded60..f313999c503e 100644 --- a/arch/arm/boot/dts/am335x-nano.dts +++ b/arch/arm/boot/dts/am335x-nano.dts | |||
@@ -375,15 +375,11 @@ | |||
375 | wp-gpios = <&gpio3 18 0>; | 375 | wp-gpios = <&gpio3 18 0>; |
376 | }; | 376 | }; |
377 | 377 | ||
378 | &tps { | 378 | #include "tps65217.dtsi" |
379 | compatible = "ti,tps65217"; | ||
380 | 379 | ||
380 | &tps { | ||
381 | regulators { | 381 | regulators { |
382 | #address-cells = <1>; | ||
383 | #size-cells = <0>; | ||
384 | |||
385 | dcdc1_reg: regulator@0 { | 382 | dcdc1_reg: regulator@0 { |
386 | reg = <0>; | ||
387 | /* +1.5V voltage with ±4% tolerance */ | 383 | /* +1.5V voltage with ±4% tolerance */ |
388 | regulator-min-microvolt = <1450000>; | 384 | regulator-min-microvolt = <1450000>; |
389 | regulator-max-microvolt = <1550000>; | 385 | regulator-max-microvolt = <1550000>; |
@@ -392,7 +388,6 @@ | |||
392 | }; | 388 | }; |
393 | 389 | ||
394 | dcdc2_reg: regulator@1 { | 390 | dcdc2_reg: regulator@1 { |
395 | reg = <1>; | ||
396 | /* VDD_MPU voltage limits 0.95V - 1.1V with ±4% tolerance */ | 391 | /* VDD_MPU voltage limits 0.95V - 1.1V with ±4% tolerance */ |
397 | regulator-name = "vdd_mpu"; | 392 | regulator-name = "vdd_mpu"; |
398 | regulator-min-microvolt = <915000>; | 393 | regulator-min-microvolt = <915000>; |
@@ -402,7 +397,6 @@ | |||
402 | }; | 397 | }; |
403 | 398 | ||
404 | dcdc3_reg: regulator@2 { | 399 | dcdc3_reg: regulator@2 { |
405 | reg = <2>; | ||
406 | /* VDD_CORE voltage limits 0.95V - 1.1V with ±4% tolerance */ | 400 | /* VDD_CORE voltage limits 0.95V - 1.1V with ±4% tolerance */ |
407 | regulator-name = "vdd_core"; | 401 | regulator-name = "vdd_core"; |
408 | regulator-min-microvolt = <915000>; | 402 | regulator-min-microvolt = <915000>; |
@@ -412,7 +406,6 @@ | |||
412 | }; | 406 | }; |
413 | 407 | ||
414 | ldo1_reg: regulator@3 { | 408 | ldo1_reg: regulator@3 { |
415 | reg = <3>; | ||
416 | /* +1.8V voltage with ±4% tolerance */ | 409 | /* +1.8V voltage with ±4% tolerance */ |
417 | regulator-min-microvolt = <1750000>; | 410 | regulator-min-microvolt = <1750000>; |
418 | regulator-max-microvolt = <1870000>; | 411 | regulator-max-microvolt = <1870000>; |
@@ -421,7 +414,6 @@ | |||
421 | }; | 414 | }; |
422 | 415 | ||
423 | ldo2_reg: regulator@4 { | 416 | ldo2_reg: regulator@4 { |
424 | reg = <4>; | ||
425 | /* +3.3V voltage with ±4% tolerance */ | 417 | /* +3.3V voltage with ±4% tolerance */ |
426 | regulator-min-microvolt = <3175000>; | 418 | regulator-min-microvolt = <3175000>; |
427 | regulator-max-microvolt = <3430000>; | 419 | regulator-max-microvolt = <3430000>; |
@@ -430,7 +422,6 @@ | |||
430 | }; | 422 | }; |
431 | 423 | ||
432 | ldo3_reg: regulator@5 { | 424 | ldo3_reg: regulator@5 { |
433 | reg = <5>; | ||
434 | /* +1.8V voltage with ±4% tolerance */ | 425 | /* +1.8V voltage with ±4% tolerance */ |
435 | regulator-min-microvolt = <1750000>; | 426 | regulator-min-microvolt = <1750000>; |
436 | regulator-max-microvolt = <1870000>; | 427 | regulator-max-microvolt = <1870000>; |
@@ -439,7 +430,6 @@ | |||
439 | }; | 430 | }; |
440 | 431 | ||
441 | ldo4_reg: regulator@6 { | 432 | ldo4_reg: regulator@6 { |
442 | reg = <6>; | ||
443 | /* +3.3V voltage with ±4% tolerance */ | 433 | /* +3.3V voltage with ±4% tolerance */ |
444 | regulator-min-microvolt = <3175000>; | 434 | regulator-min-microvolt = <3175000>; |
445 | regulator-max-microvolt = <3430000>; | 435 | regulator-max-microvolt = <3430000>; |
diff --git a/arch/arm/boot/dts/am335x-pepper.dts b/arch/arm/boot/dts/am335x-pepper.dts index 471a3a70ea1f..8867aaaec54d 100644 --- a/arch/arm/boot/dts/am335x-pepper.dts +++ b/arch/arm/boot/dts/am335x-pepper.dts | |||
@@ -420,9 +420,9 @@ | |||
420 | vin-supply = <&vbat>; | 420 | vin-supply = <&vbat>; |
421 | }; | 421 | }; |
422 | 422 | ||
423 | &tps { | 423 | /include/ "tps65217.dtsi" |
424 | compatible = "ti,tps65217"; | ||
425 | 424 | ||
425 | &tps { | ||
426 | backlight { | 426 | backlight { |
427 | isel = <1>; /* ISET1 */ | 427 | isel = <1>; /* ISET1 */ |
428 | fdim = <200>; /* TPS65217_BL_FDIM_200HZ */ | 428 | fdim = <200>; /* TPS65217_BL_FDIM_200HZ */ |
@@ -430,17 +430,12 @@ | |||
430 | }; | 430 | }; |
431 | 431 | ||
432 | regulators { | 432 | regulators { |
433 | #address-cells = <1>; | ||
434 | #size-cells = <0>; | ||
435 | |||
436 | dcdc1_reg: regulator@0 { | 433 | dcdc1_reg: regulator@0 { |
437 | reg = <0>; | ||
438 | /* VDD_1V8 system supply */ | 434 | /* VDD_1V8 system supply */ |
439 | regulator-always-on; | 435 | regulator-always-on; |
440 | }; | 436 | }; |
441 | 437 | ||
442 | dcdc2_reg: regulator@1 { | 438 | dcdc2_reg: regulator@1 { |
443 | reg = <1>; | ||
444 | /* VDD_CORE voltage limits 0.95V - 1.26V with +/-4% tolerance */ | 439 | /* VDD_CORE voltage limits 0.95V - 1.26V with +/-4% tolerance */ |
445 | regulator-name = "vdd_core"; | 440 | regulator-name = "vdd_core"; |
446 | regulator-min-microvolt = <925000>; | 441 | regulator-min-microvolt = <925000>; |
@@ -450,7 +445,6 @@ | |||
450 | }; | 445 | }; |
451 | 446 | ||
452 | dcdc3_reg: regulator@2 { | 447 | dcdc3_reg: regulator@2 { |
453 | reg = <2>; | ||
454 | /* VDD_MPU voltage limits 0.95V - 1.1V with +/-4% tolerance */ | 448 | /* VDD_MPU voltage limits 0.95V - 1.1V with +/-4% tolerance */ |
455 | regulator-name = "vdd_mpu"; | 449 | regulator-name = "vdd_mpu"; |
456 | regulator-min-microvolt = <925000>; | 450 | regulator-min-microvolt = <925000>; |
@@ -460,21 +454,18 @@ | |||
460 | }; | 454 | }; |
461 | 455 | ||
462 | ldo1_reg: regulator@3 { | 456 | ldo1_reg: regulator@3 { |
463 | reg = <3>; | ||
464 | /* VRTC 1.8V always-on supply */ | 457 | /* VRTC 1.8V always-on supply */ |
465 | regulator-name = "vrtc,vdds"; | 458 | regulator-name = "vrtc,vdds"; |
466 | regulator-always-on; | 459 | regulator-always-on; |
467 | }; | 460 | }; |
468 | 461 | ||
469 | ldo2_reg: regulator@4 { | 462 | ldo2_reg: regulator@4 { |
470 | reg = <4>; | ||
471 | /* 3.3V rail */ | 463 | /* 3.3V rail */ |
472 | regulator-name = "vdd_3v3aux"; | 464 | regulator-name = "vdd_3v3aux"; |
473 | regulator-always-on; | 465 | regulator-always-on; |
474 | }; | 466 | }; |
475 | 467 | ||
476 | ldo3_reg: regulator@5 { | 468 | ldo3_reg: regulator@5 { |
477 | reg = <5>; | ||
478 | /* VDD_3V3A 3.3V rail */ | 469 | /* VDD_3V3A 3.3V rail */ |
479 | regulator-name = "vdd_3v3a"; | 470 | regulator-name = "vdd_3v3a"; |
480 | regulator-min-microvolt = <3300000>; | 471 | regulator-min-microvolt = <3300000>; |
@@ -482,7 +473,6 @@ | |||
482 | }; | 473 | }; |
483 | 474 | ||
484 | ldo4_reg: regulator@6 { | 475 | ldo4_reg: regulator@6 { |
485 | reg = <6>; | ||
486 | /* VDD_3V3B 3.3V rail */ | 476 | /* VDD_3V3B 3.3V rail */ |
487 | regulator-name = "vdd_3v3b"; | 477 | regulator-name = "vdd_3v3b"; |
488 | regulator-always-on; | 478 | regulator-always-on; |
diff --git a/arch/arm/boot/dts/am335x-shc.dts b/arch/arm/boot/dts/am335x-shc.dts index 1b5b044fcd91..865de8500f1c 100644 --- a/arch/arm/boot/dts/am335x-shc.dts +++ b/arch/arm/boot/dts/am335x-shc.dts | |||
@@ -46,7 +46,7 @@ | |||
46 | gpios = <&gpio1 29 GPIO_ACTIVE_HIGH>; | 46 | gpios = <&gpio1 29 GPIO_ACTIVE_HIGH>; |
47 | linux,code = <KEY_BACK>; | 47 | linux,code = <KEY_BACK>; |
48 | debounce-interval = <1000>; | 48 | debounce-interval = <1000>; |
49 | gpio-key,wakeup; | 49 | wakeup-source; |
50 | }; | 50 | }; |
51 | 51 | ||
52 | front_button { | 52 | front_button { |
@@ -54,7 +54,7 @@ | |||
54 | gpios = <&gpio1 25 GPIO_ACTIVE_HIGH>; | 54 | gpios = <&gpio1 25 GPIO_ACTIVE_HIGH>; |
55 | linux,code = <KEY_FRONT>; | 55 | linux,code = <KEY_FRONT>; |
56 | debounce-interval = <1000>; | 56 | debounce-interval = <1000>; |
57 | gpio-key,wakeup; | 57 | wakeup-source; |
58 | }; | 58 | }; |
59 | }; | 59 | }; |
60 | 60 | ||
diff --git a/arch/arm/boot/dts/am335x-sl50.dts b/arch/arm/boot/dts/am335x-sl50.dts index d38edfa53bb9..3303c281697b 100644 --- a/arch/arm/boot/dts/am335x-sl50.dts +++ b/arch/arm/boot/dts/am335x-sl50.dts | |||
@@ -375,19 +375,16 @@ | |||
375 | pinctrl-0 = <&uart4_pins>; | 375 | pinctrl-0 = <&uart4_pins>; |
376 | }; | 376 | }; |
377 | 377 | ||
378 | #include "tps65217.dtsi" | ||
379 | |||
378 | &tps { | 380 | &tps { |
379 | compatible = "ti,tps65217"; | ||
380 | ti,pmic-shutdown-controller; | 381 | ti,pmic-shutdown-controller; |
381 | 382 | ||
382 | interrupt-parent = <&intc>; | 383 | interrupt-parent = <&intc>; |
383 | interrupts = <7>; /* NNMI */ | 384 | interrupts = <7>; /* NNMI */ |
384 | 385 | ||
385 | regulators { | 386 | regulators { |
386 | #address-cells = <1>; | ||
387 | #size-cells = <0>; | ||
388 | |||
389 | dcdc1_reg: regulator@0 { | 387 | dcdc1_reg: regulator@0 { |
390 | reg = <0>; | ||
391 | /* VDDS_DDR */ | 388 | /* VDDS_DDR */ |
392 | regulator-min-microvolt = <1500000>; | 389 | regulator-min-microvolt = <1500000>; |
393 | regulator-max-microvolt = <1500000>; | 390 | regulator-max-microvolt = <1500000>; |
@@ -395,7 +392,6 @@ | |||
395 | }; | 392 | }; |
396 | 393 | ||
397 | dcdc2_reg: regulator@1 { | 394 | dcdc2_reg: regulator@1 { |
398 | reg = <1>; | ||
399 | /* VDD_MPU voltage limits 0.95V - 1.26V with +/-4% tolerance */ | 395 | /* VDD_MPU voltage limits 0.95V - 1.26V with +/-4% tolerance */ |
400 | regulator-name = "vdd_mpu"; | 396 | regulator-name = "vdd_mpu"; |
401 | regulator-min-microvolt = <925000>; | 397 | regulator-min-microvolt = <925000>; |
@@ -405,7 +401,6 @@ | |||
405 | }; | 401 | }; |
406 | 402 | ||
407 | dcdc3_reg: regulator@2 { | 403 | dcdc3_reg: regulator@2 { |
408 | reg = <2>; | ||
409 | /* VDD_CORE voltage limits 0.95V - 1.1V with +/-4% tolerance */ | 404 | /* VDD_CORE voltage limits 0.95V - 1.1V with +/-4% tolerance */ |
410 | regulator-name = "vdd_core"; | 405 | regulator-name = "vdd_core"; |
411 | regulator-min-microvolt = <925000>; | 406 | regulator-min-microvolt = <925000>; |
@@ -415,7 +410,6 @@ | |||
415 | }; | 410 | }; |
416 | 411 | ||
417 | ldo1_reg: regulator@3 { | 412 | ldo1_reg: regulator@3 { |
418 | reg = <3>; | ||
419 | /* VRTC / VIO / VDDS*/ | 413 | /* VRTC / VIO / VDDS*/ |
420 | regulator-always-on; | 414 | regulator-always-on; |
421 | regulator-min-microvolt = <1800000>; | 415 | regulator-min-microvolt = <1800000>; |
@@ -423,7 +417,6 @@ | |||
423 | }; | 417 | }; |
424 | 418 | ||
425 | ldo2_reg: regulator@4 { | 419 | ldo2_reg: regulator@4 { |
426 | reg = <4>; | ||
427 | /* VDD_3V3AUX */ | 420 | /* VDD_3V3AUX */ |
428 | regulator-always-on; | 421 | regulator-always-on; |
429 | regulator-min-microvolt = <3300000>; | 422 | regulator-min-microvolt = <3300000>; |
@@ -431,7 +424,6 @@ | |||
431 | }; | 424 | }; |
432 | 425 | ||
433 | ldo3_reg: regulator@5 { | 426 | ldo3_reg: regulator@5 { |
434 | reg = <5>; | ||
435 | /* VDD_1V8 */ | 427 | /* VDD_1V8 */ |
436 | regulator-min-microvolt = <1800000>; | 428 | regulator-min-microvolt = <1800000>; |
437 | regulator-max-microvolt = <1800000>; | 429 | regulator-max-microvolt = <1800000>; |
@@ -439,7 +431,6 @@ | |||
439 | }; | 431 | }; |
440 | 432 | ||
441 | ldo4_reg: regulator@6 { | 433 | ldo4_reg: regulator@6 { |
442 | reg = <6>; | ||
443 | /* VDD_3V3A */ | 434 | /* VDD_3V3A */ |
444 | regulator-min-microvolt = <3300000>; | 435 | regulator-min-microvolt = <3300000>; |
445 | regulator-max-microvolt = <3300000>; | 436 | regulator-max-microvolt = <3300000>; |
diff --git a/arch/arm/boot/dts/am57xx-beagle-x15.dts b/arch/arm/boot/dts/am57xx-beagle-x15.dts index 36c0fa6c362a..a0986c65be0c 100644 --- a/arch/arm/boot/dts/am57xx-beagle-x15.dts +++ b/arch/arm/boot/dts/am57xx-beagle-x15.dts | |||
@@ -173,6 +173,8 @@ | |||
173 | 173 | ||
174 | sound0_master: simple-audio-card,codec { | 174 | sound0_master: simple-audio-card,codec { |
175 | sound-dai = <&tlv320aic3104>; | 175 | sound-dai = <&tlv320aic3104>; |
176 | assigned-clocks = <&clkoutmux2_clk_mux>; | ||
177 | assigned-clock-parents = <&sys_clk2_dclk_div>; | ||
176 | clocks = <&clkout2_clk>; | 178 | clocks = <&clkout2_clk>; |
177 | }; | 179 | }; |
178 | }; | 180 | }; |
@@ -796,6 +798,8 @@ | |||
796 | pinctrl-names = "default", "sleep"; | 798 | pinctrl-names = "default", "sleep"; |
797 | pinctrl-0 = <&mcasp3_pins_default>; | 799 | pinctrl-0 = <&mcasp3_pins_default>; |
798 | pinctrl-1 = <&mcasp3_pins_sleep>; | 800 | pinctrl-1 = <&mcasp3_pins_sleep>; |
801 | assigned-clocks = <&mcasp3_ahclkx_mux>; | ||
802 | assigned-clock-parents = <&sys_clkin2>; | ||
799 | status = "okay"; | 803 | status = "okay"; |
800 | 804 | ||
801 | op-mode = <0>; /* MCASP_IIS_MODE */ | 805 | op-mode = <0>; /* MCASP_IIS_MODE */ |
diff --git a/arch/arm/boot/dts/am57xx-cl-som-am57x.dts b/arch/arm/boot/dts/am57xx-cl-som-am57x.dts index 8d93882dc8d5..1c06cb76da07 100644 --- a/arch/arm/boot/dts/am57xx-cl-som-am57x.dts +++ b/arch/arm/boot/dts/am57xx-cl-som-am57x.dts | |||
@@ -545,7 +545,7 @@ | |||
545 | ti,debounce-tol = /bits/ 16 <10>; | 545 | ti,debounce-tol = /bits/ 16 <10>; |
546 | ti,debounce-rep = /bits/ 16 <1>; | 546 | ti,debounce-rep = /bits/ 16 <1>; |
547 | 547 | ||
548 | linux,wakeup; | 548 | wakeup-source; |
549 | }; | 549 | }; |
550 | }; | 550 | }; |
551 | 551 | ||
diff --git a/arch/arm/boot/dts/imx6qdl.dtsi b/arch/arm/boot/dts/imx6qdl.dtsi index 4f6ae921656f..f74d3db4846d 100644 --- a/arch/arm/boot/dts/imx6qdl.dtsi +++ b/arch/arm/boot/dts/imx6qdl.dtsi | |||
@@ -896,7 +896,6 @@ | |||
896 | #size-cells = <1>; | 896 | #size-cells = <1>; |
897 | reg = <0x2100000 0x10000>; | 897 | reg = <0x2100000 0x10000>; |
898 | ranges = <0 0x2100000 0x10000>; | 898 | ranges = <0 0x2100000 0x10000>; |
899 | interrupt-parent = <&intc>; | ||
900 | clocks = <&clks IMX6QDL_CLK_CAAM_MEM>, | 899 | clocks = <&clks IMX6QDL_CLK_CAAM_MEM>, |
901 | <&clks IMX6QDL_CLK_CAAM_ACLK>, | 900 | <&clks IMX6QDL_CLK_CAAM_ACLK>, |
902 | <&clks IMX6QDL_CLK_CAAM_IPG>, | 901 | <&clks IMX6QDL_CLK_CAAM_IPG>, |
diff --git a/arch/arm/boot/dts/kirkwood-ds112.dts b/arch/arm/boot/dts/kirkwood-ds112.dts index bf4143c6cb8f..b84af3da8c84 100644 --- a/arch/arm/boot/dts/kirkwood-ds112.dts +++ b/arch/arm/boot/dts/kirkwood-ds112.dts | |||
@@ -14,7 +14,7 @@ | |||
14 | #include "kirkwood-synology.dtsi" | 14 | #include "kirkwood-synology.dtsi" |
15 | 15 | ||
16 | / { | 16 | / { |
17 | model = "Synology DS111"; | 17 | model = "Synology DS112"; |
18 | compatible = "synology,ds111", "marvell,kirkwood"; | 18 | compatible = "synology,ds111", "marvell,kirkwood"; |
19 | 19 | ||
20 | memory { | 20 | memory { |
diff --git a/arch/arm/boot/dts/orion5x-linkstation-lswtgl.dts b/arch/arm/boot/dts/orion5x-linkstation-lswtgl.dts index 420788229e6f..aae8a7aceab7 100644 --- a/arch/arm/boot/dts/orion5x-linkstation-lswtgl.dts +++ b/arch/arm/boot/dts/orion5x-linkstation-lswtgl.dts | |||
@@ -228,6 +228,37 @@ | |||
228 | }; | 228 | }; |
229 | }; | 229 | }; |
230 | 230 | ||
231 | &devbus_bootcs { | ||
232 | status = "okay"; | ||
233 | devbus,keep-config; | ||
234 | |||
235 | flash@0 { | ||
236 | compatible = "jedec-flash"; | ||
237 | reg = <0 0x40000>; | ||
238 | bank-width = <1>; | ||
239 | |||
240 | partitions { | ||
241 | compatible = "fixed-partitions"; | ||
242 | #address-cells = <1>; | ||
243 | #size-cells = <1>; | ||
244 | |||
245 | header@0 { | ||
246 | reg = <0 0x30000>; | ||
247 | read-only; | ||
248 | }; | ||
249 | |||
250 | uboot@30000 { | ||
251 | reg = <0x30000 0xF000>; | ||
252 | read-only; | ||
253 | }; | ||
254 | |||
255 | uboot_env@3F000 { | ||
256 | reg = <0x3F000 0x1000>; | ||
257 | }; | ||
258 | }; | ||
259 | }; | ||
260 | }; | ||
261 | |||
231 | &mdio { | 262 | &mdio { |
232 | status = "okay"; | 263 | status = "okay"; |
233 | 264 | ||
diff --git a/arch/arm/boot/dts/sama5d2-pinfunc.h b/arch/arm/boot/dts/sama5d2-pinfunc.h index 1afe24629d1f..b0c912feaa2f 100644 --- a/arch/arm/boot/dts/sama5d2-pinfunc.h +++ b/arch/arm/boot/dts/sama5d2-pinfunc.h | |||
@@ -90,7 +90,7 @@ | |||
90 | #define PIN_PA14__I2SC1_MCK PINMUX_PIN(PIN_PA14, 4, 2) | 90 | #define PIN_PA14__I2SC1_MCK PINMUX_PIN(PIN_PA14, 4, 2) |
91 | #define PIN_PA14__FLEXCOM3_IO2 PINMUX_PIN(PIN_PA14, 5, 1) | 91 | #define PIN_PA14__FLEXCOM3_IO2 PINMUX_PIN(PIN_PA14, 5, 1) |
92 | #define PIN_PA14__D9 PINMUX_PIN(PIN_PA14, 6, 2) | 92 | #define PIN_PA14__D9 PINMUX_PIN(PIN_PA14, 6, 2) |
93 | #define PIN_PA15 14 | 93 | #define PIN_PA15 15 |
94 | #define PIN_PA15__GPIO PINMUX_PIN(PIN_PA15, 0, 0) | 94 | #define PIN_PA15__GPIO PINMUX_PIN(PIN_PA15, 0, 0) |
95 | #define PIN_PA15__SPI0_MOSI PINMUX_PIN(PIN_PA15, 1, 1) | 95 | #define PIN_PA15__SPI0_MOSI PINMUX_PIN(PIN_PA15, 1, 1) |
96 | #define PIN_PA15__TF1 PINMUX_PIN(PIN_PA15, 2, 1) | 96 | #define PIN_PA15__TF1 PINMUX_PIN(PIN_PA15, 2, 1) |
diff --git a/arch/arm/boot/dts/tps65217.dtsi b/arch/arm/boot/dts/tps65217.dtsi new file mode 100644 index 000000000000..a63272422d76 --- /dev/null +++ b/arch/arm/boot/dts/tps65217.dtsi | |||
@@ -0,0 +1,56 @@ | |||
1 | /* | ||
2 | * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/ | ||
3 | * | ||
4 | * This program is free software; you can redistribute it and/or modify | ||
5 | * it under the terms of the GNU General Public License version 2 as | ||
6 | * published by the Free Software Foundation. | ||
7 | */ | ||
8 | |||
9 | /* | ||
10 | * Integrated Power Management Chip | ||
11 | * http://www.ti.com/lit/ds/symlink/tps65217.pdf | ||
12 | */ | ||
13 | |||
14 | &tps { | ||
15 | compatible = "ti,tps65217"; | ||
16 | |||
17 | regulators { | ||
18 | #address-cells = <1>; | ||
19 | #size-cells = <0>; | ||
20 | |||
21 | dcdc1_reg: regulator@0 { | ||
22 | reg = <0>; | ||
23 | regulator-compatible = "dcdc1"; | ||
24 | }; | ||
25 | |||
26 | dcdc2_reg: regulator@1 { | ||
27 | reg = <1>; | ||
28 | regulator-compatible = "dcdc2"; | ||
29 | }; | ||
30 | |||
31 | dcdc3_reg: regulator@2 { | ||
32 | reg = <2>; | ||
33 | regulator-compatible = "dcdc3"; | ||
34 | }; | ||
35 | |||
36 | ldo1_reg: regulator@3 { | ||
37 | reg = <3>; | ||
38 | regulator-compatible = "ldo1"; | ||
39 | }; | ||
40 | |||
41 | ldo2_reg: regulator@4 { | ||
42 | reg = <4>; | ||
43 | regulator-compatible = "ldo2"; | ||
44 | }; | ||
45 | |||
46 | ldo3_reg: regulator@5 { | ||
47 | reg = <5>; | ||
48 | regulator-compatible = "ldo3"; | ||
49 | }; | ||
50 | |||
51 | ldo4_reg: regulator@6 { | ||
52 | reg = <6>; | ||
53 | regulator-compatible = "ldo4"; | ||
54 | }; | ||
55 | }; | ||
56 | }; | ||
diff --git a/arch/arm/mach-omap2/board-generic.c b/arch/arm/mach-omap2/board-generic.c index 809827265fb3..bab814d2f37d 100644 --- a/arch/arm/mach-omap2/board-generic.c +++ b/arch/arm/mach-omap2/board-generic.c | |||
@@ -18,6 +18,7 @@ | |||
18 | 18 | ||
19 | #include <asm/setup.h> | 19 | #include <asm/setup.h> |
20 | #include <asm/mach/arch.h> | 20 | #include <asm/mach/arch.h> |
21 | #include <asm/system_info.h> | ||
21 | 22 | ||
22 | #include "common.h" | 23 | #include "common.h" |
23 | 24 | ||
@@ -77,12 +78,31 @@ static const char *const n900_boards_compat[] __initconst = { | |||
77 | NULL, | 78 | NULL, |
78 | }; | 79 | }; |
79 | 80 | ||
81 | /* Set system_rev from atags */ | ||
82 | static void __init rx51_set_system_rev(const struct tag *tags) | ||
83 | { | ||
84 | const struct tag *tag; | ||
85 | |||
86 | if (tags->hdr.tag != ATAG_CORE) | ||
87 | return; | ||
88 | |||
89 | for_each_tag(tag, tags) { | ||
90 | if (tag->hdr.tag == ATAG_REVISION) { | ||
91 | system_rev = tag->u.revision.rev; | ||
92 | break; | ||
93 | } | ||
94 | } | ||
95 | } | ||
96 | |||
80 | /* Legacy userspace on Nokia N900 needs ATAGS exported in /proc/atags, | 97 | /* Legacy userspace on Nokia N900 needs ATAGS exported in /proc/atags, |
81 | * save them while the data is still not overwritten | 98 | * save them while the data is still not overwritten |
82 | */ | 99 | */ |
83 | static void __init rx51_reserve(void) | 100 | static void __init rx51_reserve(void) |
84 | { | 101 | { |
85 | save_atags((const struct tag *)(PAGE_OFFSET + 0x100)); | 102 | const struct tag *tags = (const struct tag *)(PAGE_OFFSET + 0x100); |
103 | |||
104 | save_atags(tags); | ||
105 | rx51_set_system_rev(tags); | ||
86 | omap_reserve(); | 106 | omap_reserve(); |
87 | } | 107 | } |
88 | 108 | ||
diff --git a/arch/arm/mach-omap2/gpmc-onenand.c b/arch/arm/mach-omap2/gpmc-onenand.c index 7b76ce01c21d..8633c703546a 100644 --- a/arch/arm/mach-omap2/gpmc-onenand.c +++ b/arch/arm/mach-omap2/gpmc-onenand.c | |||
@@ -101,10 +101,8 @@ static void omap2_onenand_set_async_mode(void __iomem *onenand_base) | |||
101 | 101 | ||
102 | static void set_onenand_cfg(void __iomem *onenand_base) | 102 | static void set_onenand_cfg(void __iomem *onenand_base) |
103 | { | 103 | { |
104 | u32 reg; | 104 | u32 reg = ONENAND_SYS_CFG1_RDY | ONENAND_SYS_CFG1_INT; |
105 | 105 | ||
106 | reg = readw(onenand_base + ONENAND_REG_SYS_CFG1); | ||
107 | reg &= ~((0x7 << ONENAND_SYS_CFG1_BRL_SHIFT) | (0x7 << 9)); | ||
108 | reg |= (latency << ONENAND_SYS_CFG1_BRL_SHIFT) | | 106 | reg |= (latency << ONENAND_SYS_CFG1_BRL_SHIFT) | |
109 | ONENAND_SYS_CFG1_BL_16; | 107 | ONENAND_SYS_CFG1_BL_16; |
110 | if (onenand_flags & ONENAND_FLAG_SYNCREAD) | 108 | if (onenand_flags & ONENAND_FLAG_SYNCREAD) |
@@ -123,6 +121,7 @@ static void set_onenand_cfg(void __iomem *onenand_base) | |||
123 | reg |= ONENAND_SYS_CFG1_VHF; | 121 | reg |= ONENAND_SYS_CFG1_VHF; |
124 | else | 122 | else |
125 | reg &= ~ONENAND_SYS_CFG1_VHF; | 123 | reg &= ~ONENAND_SYS_CFG1_VHF; |
124 | |||
126 | writew(reg, onenand_base + ONENAND_REG_SYS_CFG1); | 125 | writew(reg, onenand_base + ONENAND_REG_SYS_CFG1); |
127 | } | 126 | } |
128 | 127 | ||
@@ -289,6 +288,7 @@ static int omap2_onenand_setup_async(void __iomem *onenand_base) | |||
289 | } | 288 | } |
290 | } | 289 | } |
291 | 290 | ||
291 | onenand_async.sync_write = true; | ||
292 | omap2_onenand_calc_async_timings(&t); | 292 | omap2_onenand_calc_async_timings(&t); |
293 | 293 | ||
294 | ret = gpmc_cs_program_settings(gpmc_onenand_data->cs, &onenand_async); | 294 | ret = gpmc_cs_program_settings(gpmc_onenand_data->cs, &onenand_async); |
diff --git a/arch/arm/mach-omap2/omap_device.c b/arch/arm/mach-omap2/omap_device.c index 0437537751bc..f7ff3b9dad87 100644 --- a/arch/arm/mach-omap2/omap_device.c +++ b/arch/arm/mach-omap2/omap_device.c | |||
@@ -191,12 +191,22 @@ static int _omap_device_notifier_call(struct notifier_block *nb, | |||
191 | { | 191 | { |
192 | struct platform_device *pdev = to_platform_device(dev); | 192 | struct platform_device *pdev = to_platform_device(dev); |
193 | struct omap_device *od; | 193 | struct omap_device *od; |
194 | int err; | ||
194 | 195 | ||
195 | switch (event) { | 196 | switch (event) { |
196 | case BUS_NOTIFY_DEL_DEVICE: | 197 | case BUS_NOTIFY_DEL_DEVICE: |
197 | if (pdev->archdata.od) | 198 | if (pdev->archdata.od) |
198 | omap_device_delete(pdev->archdata.od); | 199 | omap_device_delete(pdev->archdata.od); |
199 | break; | 200 | break; |
201 | case BUS_NOTIFY_UNBOUND_DRIVER: | ||
202 | od = to_omap_device(pdev); | ||
203 | if (od && (od->_state == OMAP_DEVICE_STATE_ENABLED)) { | ||
204 | dev_info(dev, "enabled after unload, idling\n"); | ||
205 | err = omap_device_idle(pdev); | ||
206 | if (err) | ||
207 | dev_err(dev, "failed to idle\n"); | ||
208 | } | ||
209 | break; | ||
200 | case BUS_NOTIFY_ADD_DEVICE: | 210 | case BUS_NOTIFY_ADD_DEVICE: |
201 | if (pdev->dev.of_node) | 211 | if (pdev->dev.of_node) |
202 | omap_device_build_from_dt(pdev); | 212 | omap_device_build_from_dt(pdev); |
@@ -602,8 +612,10 @@ static int _od_runtime_resume(struct device *dev) | |||
602 | int ret; | 612 | int ret; |
603 | 613 | ||
604 | ret = omap_device_enable(pdev); | 614 | ret = omap_device_enable(pdev); |
605 | if (ret) | 615 | if (ret) { |
616 | dev_err(dev, "use pm_runtime_put_sync_suspend() in driver?\n"); | ||
606 | return ret; | 617 | return ret; |
618 | } | ||
607 | 619 | ||
608 | return pm_generic_runtime_resume(dev); | 620 | return pm_generic_runtime_resume(dev); |
609 | } | 621 | } |
diff --git a/arch/arm/mach-shmobile/common.h b/arch/arm/mach-shmobile/common.h index 9cb11215ceba..b3a4ed5289ec 100644 --- a/arch/arm/mach-shmobile/common.h +++ b/arch/arm/mach-shmobile/common.h | |||
@@ -4,7 +4,6 @@ | |||
4 | extern void shmobile_init_delay(void); | 4 | extern void shmobile_init_delay(void); |
5 | extern void shmobile_boot_vector(void); | 5 | extern void shmobile_boot_vector(void); |
6 | extern unsigned long shmobile_boot_fn; | 6 | extern unsigned long shmobile_boot_fn; |
7 | extern unsigned long shmobile_boot_arg; | ||
8 | extern unsigned long shmobile_boot_size; | 7 | extern unsigned long shmobile_boot_size; |
9 | extern void shmobile_smp_boot(void); | 8 | extern void shmobile_smp_boot(void); |
10 | extern void shmobile_smp_sleep(void); | 9 | extern void shmobile_smp_sleep(void); |
diff --git a/arch/arm/mach-shmobile/headsmp-scu.S b/arch/arm/mach-shmobile/headsmp-scu.S index fa5248c52399..5e503d91ad70 100644 --- a/arch/arm/mach-shmobile/headsmp-scu.S +++ b/arch/arm/mach-shmobile/headsmp-scu.S | |||
@@ -38,9 +38,3 @@ ENTRY(shmobile_boot_scu) | |||
38 | 38 | ||
39 | b secondary_startup | 39 | b secondary_startup |
40 | ENDPROC(shmobile_boot_scu) | 40 | ENDPROC(shmobile_boot_scu) |
41 | |||
42 | .text | ||
43 | .align 2 | ||
44 | .globl shmobile_scu_base | ||
45 | shmobile_scu_base: | ||
46 | .space 4 | ||
diff --git a/arch/arm/mach-shmobile/headsmp.S b/arch/arm/mach-shmobile/headsmp.S index 330c1fc63197..32e0bf6e3ccb 100644 --- a/arch/arm/mach-shmobile/headsmp.S +++ b/arch/arm/mach-shmobile/headsmp.S | |||
@@ -24,7 +24,6 @@ | |||
24 | .arm | 24 | .arm |
25 | .align 12 | 25 | .align 12 |
26 | ENTRY(shmobile_boot_vector) | 26 | ENTRY(shmobile_boot_vector) |
27 | ldr r0, 2f | ||
28 | ldr r1, 1f | 27 | ldr r1, 1f |
29 | bx r1 | 28 | bx r1 |
30 | 29 | ||
@@ -34,9 +33,6 @@ ENDPROC(shmobile_boot_vector) | |||
34 | .globl shmobile_boot_fn | 33 | .globl shmobile_boot_fn |
35 | shmobile_boot_fn: | 34 | shmobile_boot_fn: |
36 | 1: .space 4 | 35 | 1: .space 4 |
37 | .globl shmobile_boot_arg | ||
38 | shmobile_boot_arg: | ||
39 | 2: .space 4 | ||
40 | .globl shmobile_boot_size | 36 | .globl shmobile_boot_size |
41 | shmobile_boot_size: | 37 | shmobile_boot_size: |
42 | .long . - shmobile_boot_vector | 38 | .long . - shmobile_boot_vector |
@@ -46,13 +42,15 @@ shmobile_boot_size: | |||
46 | */ | 42 | */ |
47 | 43 | ||
48 | ENTRY(shmobile_smp_boot) | 44 | ENTRY(shmobile_smp_boot) |
49 | @ r0 = MPIDR_HWID_BITMASK | ||
50 | mrc p15, 0, r1, c0, c0, 5 @ r1 = MPIDR | 45 | mrc p15, 0, r1, c0, c0, 5 @ r1 = MPIDR |
51 | and r0, r1, r0 @ r0 = cpu_logical_map() value | 46 | and r0, r1, #0xffffff @ MPIDR_HWID_BITMASK |
47 | @ r0 = cpu_logical_map() value | ||
52 | mov r1, #0 @ r1 = CPU index | 48 | mov r1, #0 @ r1 = CPU index |
53 | adr r5, 1f @ array of per-cpu mpidr values | 49 | adr r2, 1f |
54 | adr r6, 2f @ array of per-cpu functions | 50 | ldmia r2, {r5, r6, r7} |
55 | adr r7, 3f @ array of per-cpu arguments | 51 | add r5, r5, r2 @ array of per-cpu mpidr values |
52 | add r6, r6, r2 @ array of per-cpu functions | ||
53 | add r7, r7, r2 @ array of per-cpu arguments | ||
56 | 54 | ||
57 | shmobile_smp_boot_find_mpidr: | 55 | shmobile_smp_boot_find_mpidr: |
58 | ldr r8, [r5, r1, lsl #2] | 56 | ldr r8, [r5, r1, lsl #2] |
@@ -80,12 +78,18 @@ ENTRY(shmobile_smp_sleep) | |||
80 | b shmobile_smp_boot | 78 | b shmobile_smp_boot |
81 | ENDPROC(shmobile_smp_sleep) | 79 | ENDPROC(shmobile_smp_sleep) |
82 | 80 | ||
81 | .align 2 | ||
82 | 1: .long shmobile_smp_mpidr - . | ||
83 | .long shmobile_smp_fn - 1b | ||
84 | .long shmobile_smp_arg - 1b | ||
85 | |||
86 | .bss | ||
83 | .globl shmobile_smp_mpidr | 87 | .globl shmobile_smp_mpidr |
84 | shmobile_smp_mpidr: | 88 | shmobile_smp_mpidr: |
85 | 1: .space NR_CPUS * 4 | 89 | .space NR_CPUS * 4 |
86 | .globl shmobile_smp_fn | 90 | .globl shmobile_smp_fn |
87 | shmobile_smp_fn: | 91 | shmobile_smp_fn: |
88 | 2: .space NR_CPUS * 4 | 92 | .space NR_CPUS * 4 |
89 | .globl shmobile_smp_arg | 93 | .globl shmobile_smp_arg |
90 | shmobile_smp_arg: | 94 | shmobile_smp_arg: |
91 | 3: .space NR_CPUS * 4 | 95 | .space NR_CPUS * 4 |
diff --git a/arch/arm/mach-shmobile/platsmp-apmu.c b/arch/arm/mach-shmobile/platsmp-apmu.c index 911884f7e28b..aba75c89f9c1 100644 --- a/arch/arm/mach-shmobile/platsmp-apmu.c +++ b/arch/arm/mach-shmobile/platsmp-apmu.c | |||
@@ -123,7 +123,6 @@ void __init shmobile_smp_apmu_prepare_cpus(unsigned int max_cpus, | |||
123 | { | 123 | { |
124 | /* install boot code shared by all CPUs */ | 124 | /* install boot code shared by all CPUs */ |
125 | shmobile_boot_fn = virt_to_phys(shmobile_smp_boot); | 125 | shmobile_boot_fn = virt_to_phys(shmobile_smp_boot); |
126 | shmobile_boot_arg = MPIDR_HWID_BITMASK; | ||
127 | 126 | ||
128 | /* perform per-cpu setup */ | 127 | /* perform per-cpu setup */ |
129 | apmu_parse_cfg(apmu_init_cpu, apmu_config, num); | 128 | apmu_parse_cfg(apmu_init_cpu, apmu_config, num); |
diff --git a/arch/arm/mach-shmobile/platsmp-scu.c b/arch/arm/mach-shmobile/platsmp-scu.c index 64663110ab6c..081a097c9219 100644 --- a/arch/arm/mach-shmobile/platsmp-scu.c +++ b/arch/arm/mach-shmobile/platsmp-scu.c | |||
@@ -17,6 +17,9 @@ | |||
17 | #include <asm/smp_scu.h> | 17 | #include <asm/smp_scu.h> |
18 | #include "common.h" | 18 | #include "common.h" |
19 | 19 | ||
20 | |||
21 | void __iomem *shmobile_scu_base; | ||
22 | |||
20 | static int shmobile_smp_scu_notifier_call(struct notifier_block *nfb, | 23 | static int shmobile_smp_scu_notifier_call(struct notifier_block *nfb, |
21 | unsigned long action, void *hcpu) | 24 | unsigned long action, void *hcpu) |
22 | { | 25 | { |
@@ -41,7 +44,6 @@ void __init shmobile_smp_scu_prepare_cpus(unsigned int max_cpus) | |||
41 | { | 44 | { |
42 | /* install boot code shared by all CPUs */ | 45 | /* install boot code shared by all CPUs */ |
43 | shmobile_boot_fn = virt_to_phys(shmobile_smp_boot); | 46 | shmobile_boot_fn = virt_to_phys(shmobile_smp_boot); |
44 | shmobile_boot_arg = MPIDR_HWID_BITMASK; | ||
45 | 47 | ||
46 | /* enable SCU and cache coherency on booting CPU */ | 48 | /* enable SCU and cache coherency on booting CPU */ |
47 | scu_enable(shmobile_scu_base); | 49 | scu_enable(shmobile_scu_base); |
diff --git a/arch/arm/mach-shmobile/smp-r8a7779.c b/arch/arm/mach-shmobile/smp-r8a7779.c index b854fe2095ad..0b024a9dbd43 100644 --- a/arch/arm/mach-shmobile/smp-r8a7779.c +++ b/arch/arm/mach-shmobile/smp-r8a7779.c | |||
@@ -92,8 +92,6 @@ static void __init r8a7779_smp_prepare_cpus(unsigned int max_cpus) | |||
92 | { | 92 | { |
93 | /* Map the reset vector (in headsmp-scu.S, headsmp.S) */ | 93 | /* Map the reset vector (in headsmp-scu.S, headsmp.S) */ |
94 | __raw_writel(__pa(shmobile_boot_vector), AVECR); | 94 | __raw_writel(__pa(shmobile_boot_vector), AVECR); |
95 | shmobile_boot_fn = virt_to_phys(shmobile_boot_scu); | ||
96 | shmobile_boot_arg = (unsigned long)shmobile_scu_base; | ||
97 | 95 | ||
98 | /* setup r8a7779 specific SCU bits */ | 96 | /* setup r8a7779 specific SCU bits */ |
99 | shmobile_scu_base = IOMEM(R8A7779_SCU_BASE); | 97 | shmobile_scu_base = IOMEM(R8A7779_SCU_BASE); |