diff options
71 files changed, 252 insertions, 152 deletions
diff --git a/Documentation/devicetree/bindings/pinctrl/samsung-pinctrl.txt b/Documentation/devicetree/bindings/pinctrl/samsung-pinctrl.txt index e97a27856b21..4598a47aa0cd 100644 --- a/Documentation/devicetree/bindings/pinctrl/samsung-pinctrl.txt +++ b/Documentation/devicetree/bindings/pinctrl/samsung-pinctrl.txt | |||
@@ -7,9 +7,9 @@ on-chip controllers onto these pads. | |||
7 | 7 | ||
8 | Required Properties: | 8 | Required Properties: |
9 | - compatible: should be one of the following. | 9 | - compatible: should be one of the following. |
10 | - "samsung,pinctrl-exynos4210": for Exynos4210 compatible pin-controller. | 10 | - "samsung,exynos4210-pinctrl": for Exynos4210 compatible pin-controller. |
11 | - "samsung,pinctrl-exynos4x12": for Exynos4x12 compatible pin-controller. | 11 | - "samsung,exynos4x12-pinctrl": for Exynos4x12 compatible pin-controller. |
12 | - "samsung,pinctrl-exynos5250": for Exynos5250 compatible pin-controller. | 12 | - "samsung,exynos5250-pinctrl": for Exynos5250 compatible pin-controller. |
13 | 13 | ||
14 | - reg: Base address of the pin controller hardware module and length of | 14 | - reg: Base address of the pin controller hardware module and length of |
15 | the address space it occupies. | 15 | the address space it occupies. |
@@ -142,7 +142,7 @@ the following format 'pinctrl{n}' where n is a unique number for the alias. | |||
142 | Example: A pin-controller node with pin banks: | 142 | Example: A pin-controller node with pin banks: |
143 | 143 | ||
144 | pinctrl_0: pinctrl@11400000 { | 144 | pinctrl_0: pinctrl@11400000 { |
145 | compatible = "samsung,pinctrl-exynos4210"; | 145 | compatible = "samsung,exynos4210-pinctrl"; |
146 | reg = <0x11400000 0x1000>; | 146 | reg = <0x11400000 0x1000>; |
147 | interrupts = <0 47 0>; | 147 | interrupts = <0 47 0>; |
148 | 148 | ||
@@ -185,7 +185,7 @@ Example: A pin-controller node with pin banks: | |||
185 | Example 1: A pin-controller node with pin groups. | 185 | Example 1: A pin-controller node with pin groups. |
186 | 186 | ||
187 | pinctrl_0: pinctrl@11400000 { | 187 | pinctrl_0: pinctrl@11400000 { |
188 | compatible = "samsung,pinctrl-exynos4210"; | 188 | compatible = "samsung,exynos4210-pinctrl"; |
189 | reg = <0x11400000 0x1000>; | 189 | reg = <0x11400000 0x1000>; |
190 | interrupts = <0 47 0>; | 190 | interrupts = <0 47 0>; |
191 | 191 | ||
@@ -230,7 +230,7 @@ Example 1: A pin-controller node with pin groups. | |||
230 | Example 2: A pin-controller node with external wakeup interrupt controller node. | 230 | Example 2: A pin-controller node with external wakeup interrupt controller node. |
231 | 231 | ||
232 | pinctrl_1: pinctrl@11000000 { | 232 | pinctrl_1: pinctrl@11000000 { |
233 | compatible = "samsung,pinctrl-exynos4210"; | 233 | compatible = "samsung,exynos4210-pinctrl"; |
234 | reg = <0x11000000 0x1000>; | 234 | reg = <0x11000000 0x1000>; |
235 | interrupts = <0 46 0> | 235 | interrupts = <0 46 0> |
236 | 236 | ||
diff --git a/MAINTAINERS b/MAINTAINERS index f5b9851755a2..22b754a8b4b3 100644 --- a/MAINTAINERS +++ b/MAINTAINERS | |||
@@ -1256,12 +1256,17 @@ M: Tony Prisk <linux@prisktech.co.nz> | |||
1256 | L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers) | 1256 | L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers) |
1257 | S: Maintained | 1257 | S: Maintained |
1258 | F: arch/arm/mach-vt8500/ | 1258 | F: arch/arm/mach-vt8500/ |
1259 | F: drivers/clocksource/vt8500_timer.c | ||
1260 | F: drivers/gpio/gpio-vt8500.c | ||
1261 | F: drivers/mmc/host/wmt-sdmmc.c | ||
1262 | F: drivers/pwm/pwm-vt8500.c | ||
1263 | F: drivers/rtc/rtc-vt8500.c | ||
1264 | F: drivers/tty/serial/vt8500_serial.c | ||
1265 | F: drivers/usb/host/ehci-vt8500.c | ||
1266 | F: drivers/usb/host/uhci-platform.c | ||
1259 | F: drivers/video/vt8500lcdfb.* | 1267 | F: drivers/video/vt8500lcdfb.* |
1260 | F: drivers/video/wm8505fb* | 1268 | F: drivers/video/wm8505fb* |
1261 | F: drivers/video/wmt_ge_rops.* | 1269 | F: drivers/video/wmt_ge_rops.* |
1262 | F: drivers/tty/serial/vt8500_serial.c | ||
1263 | F: drivers/rtc/rtc-vt8500.c | ||
1264 | F: drivers/mmc/host/wmt-sdmmc.c | ||
1265 | 1270 | ||
1266 | ARM/ZIPIT Z2 SUPPORT | 1271 | ARM/ZIPIT Z2 SUPPORT |
1267 | M: Marek Vasut <marek.vasut@gmail.com> | 1272 | M: Marek Vasut <marek.vasut@gmail.com> |
@@ -1270,6 +1275,14 @@ S: Maintained | |||
1270 | F: arch/arm/mach-pxa/z2.c | 1275 | F: arch/arm/mach-pxa/z2.c |
1271 | F: arch/arm/mach-pxa/include/mach/z2.h | 1276 | F: arch/arm/mach-pxa/include/mach/z2.h |
1272 | 1277 | ||
1278 | ARM/ZYNQ ARCHITECTURE | ||
1279 | M: Michal Simek <michal.simek@xilinx.com> | ||
1280 | L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers) | ||
1281 | W: http://wiki.xilinx.com | ||
1282 | T: git git://git.xilinx.com/linux-xlnx.git | ||
1283 | S: Supported | ||
1284 | F: arch/arm/mach-zynq/ | ||
1285 | |||
1273 | ARM64 PORT (AARCH64 ARCHITECTURE) | 1286 | ARM64 PORT (AARCH64 ARCHITECTURE) |
1274 | M: Catalin Marinas <catalin.marinas@arm.com> | 1287 | M: Catalin Marinas <catalin.marinas@arm.com> |
1275 | M: Will Deacon <will.deacon@arm.com> | 1288 | M: Will Deacon <will.deacon@arm.com> |
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index f410cb16dd22..09238c83e6d6 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig | |||
@@ -260,7 +260,8 @@ config MMU | |||
260 | # | 260 | # |
261 | choice | 261 | choice |
262 | prompt "ARM system type" | 262 | prompt "ARM system type" |
263 | default ARCH_MULTIPLATFORM | 263 | default ARCH_VERSATILE if !MMU |
264 | default ARCH_MULTIPLATFORM if MMU | ||
264 | 265 | ||
265 | config ARCH_MULTIPLATFORM | 266 | config ARCH_MULTIPLATFORM |
266 | bool "Allow multiple platforms to be selected" | 267 | bool "Allow multiple platforms to be selected" |
@@ -1449,6 +1450,10 @@ config ISA_DMA | |||
1449 | bool | 1450 | bool |
1450 | select ISA_DMA_API | 1451 | select ISA_DMA_API |
1451 | 1452 | ||
1453 | config ARCH_NO_VIRT_TO_BUS | ||
1454 | def_bool y | ||
1455 | depends on !ARCH_RPC && !ARCH_NETWINDER && !ARCH_SHARK | ||
1456 | |||
1452 | # Select ISA DMA interface | 1457 | # Select ISA DMA interface |
1453 | config ISA_DMA_API | 1458 | config ISA_DMA_API |
1454 | bool | 1459 | bool |
diff --git a/arch/arm/boot/dts/at91sam9n12.dtsi b/arch/arm/boot/dts/at91sam9n12.dtsi index 80e29c605d4e..4801717566dd 100644 --- a/arch/arm/boot/dts/at91sam9n12.dtsi +++ b/arch/arm/boot/dts/at91sam9n12.dtsi | |||
@@ -324,8 +324,6 @@ | |||
324 | compatible = "atmel,at91sam9260-usart"; | 324 | compatible = "atmel,at91sam9260-usart"; |
325 | reg = <0xf801c000 0x4000>; | 325 | reg = <0xf801c000 0x4000>; |
326 | interrupts = <5 4 5>; | 326 | interrupts = <5 4 5>; |
327 | atmel,use-dma-rx; | ||
328 | atmel,use-dma-tx; | ||
329 | pinctrl-names = "default"; | 327 | pinctrl-names = "default"; |
330 | pinctrl-0 = <&pinctrl_usart0>; | 328 | pinctrl-0 = <&pinctrl_usart0>; |
331 | status = "disabled"; | 329 | status = "disabled"; |
@@ -335,8 +333,6 @@ | |||
335 | compatible = "atmel,at91sam9260-usart"; | 333 | compatible = "atmel,at91sam9260-usart"; |
336 | reg = <0xf8020000 0x4000>; | 334 | reg = <0xf8020000 0x4000>; |
337 | interrupts = <6 4 5>; | 335 | interrupts = <6 4 5>; |
338 | atmel,use-dma-rx; | ||
339 | atmel,use-dma-tx; | ||
340 | pinctrl-names = "default"; | 336 | pinctrl-names = "default"; |
341 | pinctrl-0 = <&pinctrl_usart1>; | 337 | pinctrl-0 = <&pinctrl_usart1>; |
342 | status = "disabled"; | 338 | status = "disabled"; |
@@ -346,8 +342,6 @@ | |||
346 | compatible = "atmel,at91sam9260-usart"; | 342 | compatible = "atmel,at91sam9260-usart"; |
347 | reg = <0xf8024000 0x4000>; | 343 | reg = <0xf8024000 0x4000>; |
348 | interrupts = <7 4 5>; | 344 | interrupts = <7 4 5>; |
349 | atmel,use-dma-rx; | ||
350 | atmel,use-dma-tx; | ||
351 | pinctrl-names = "default"; | 345 | pinctrl-names = "default"; |
352 | pinctrl-0 = <&pinctrl_usart2>; | 346 | pinctrl-0 = <&pinctrl_usart2>; |
353 | status = "disabled"; | 347 | status = "disabled"; |
@@ -357,8 +351,6 @@ | |||
357 | compatible = "atmel,at91sam9260-usart"; | 351 | compatible = "atmel,at91sam9260-usart"; |
358 | reg = <0xf8028000 0x4000>; | 352 | reg = <0xf8028000 0x4000>; |
359 | interrupts = <8 4 5>; | 353 | interrupts = <8 4 5>; |
360 | atmel,use-dma-rx; | ||
361 | atmel,use-dma-tx; | ||
362 | pinctrl-names = "default"; | 354 | pinctrl-names = "default"; |
363 | pinctrl-0 = <&pinctrl_usart3>; | 355 | pinctrl-0 = <&pinctrl_usart3>; |
364 | status = "disabled"; | 356 | status = "disabled"; |
diff --git a/arch/arm/boot/dts/at91sam9x5.dtsi b/arch/arm/boot/dts/at91sam9x5.dtsi index 8ecca6948d81..d112c3af8ce2 100644 --- a/arch/arm/boot/dts/at91sam9x5.dtsi +++ b/arch/arm/boot/dts/at91sam9x5.dtsi | |||
@@ -197,9 +197,9 @@ | |||
197 | }; | 197 | }; |
198 | 198 | ||
199 | usart3 { | 199 | usart3 { |
200 | pinctrl_uart3: usart3-0 { | 200 | pinctrl_usart3: usart3-0 { |
201 | atmel,pins = | 201 | atmel,pins = |
202 | <2 23 0x2 0x1 /* PC22 periph B with pullup */ | 202 | <2 22 0x2 0x1 /* PC22 periph B with pullup */ |
203 | 2 23 0x2 0x0>; /* PC23 periph B */ | 203 | 2 23 0x2 0x0>; /* PC23 periph B */ |
204 | }; | 204 | }; |
205 | 205 | ||
@@ -402,8 +402,6 @@ | |||
402 | compatible = "atmel,at91sam9260-usart"; | 402 | compatible = "atmel,at91sam9260-usart"; |
403 | reg = <0xf801c000 0x200>; | 403 | reg = <0xf801c000 0x200>; |
404 | interrupts = <5 4 5>; | 404 | interrupts = <5 4 5>; |
405 | atmel,use-dma-rx; | ||
406 | atmel,use-dma-tx; | ||
407 | pinctrl-names = "default"; | 405 | pinctrl-names = "default"; |
408 | pinctrl-0 = <&pinctrl_usart0>; | 406 | pinctrl-0 = <&pinctrl_usart0>; |
409 | status = "disabled"; | 407 | status = "disabled"; |
@@ -413,8 +411,6 @@ | |||
413 | compatible = "atmel,at91sam9260-usart"; | 411 | compatible = "atmel,at91sam9260-usart"; |
414 | reg = <0xf8020000 0x200>; | 412 | reg = <0xf8020000 0x200>; |
415 | interrupts = <6 4 5>; | 413 | interrupts = <6 4 5>; |
416 | atmel,use-dma-rx; | ||
417 | atmel,use-dma-tx; | ||
418 | pinctrl-names = "default"; | 414 | pinctrl-names = "default"; |
419 | pinctrl-0 = <&pinctrl_usart1>; | 415 | pinctrl-0 = <&pinctrl_usart1>; |
420 | status = "disabled"; | 416 | status = "disabled"; |
@@ -424,8 +420,6 @@ | |||
424 | compatible = "atmel,at91sam9260-usart"; | 420 | compatible = "atmel,at91sam9260-usart"; |
425 | reg = <0xf8024000 0x200>; | 421 | reg = <0xf8024000 0x200>; |
426 | interrupts = <7 4 5>; | 422 | interrupts = <7 4 5>; |
427 | atmel,use-dma-rx; | ||
428 | atmel,use-dma-tx; | ||
429 | pinctrl-names = "default"; | 423 | pinctrl-names = "default"; |
430 | pinctrl-0 = <&pinctrl_usart2>; | 424 | pinctrl-0 = <&pinctrl_usart2>; |
431 | status = "disabled"; | 425 | status = "disabled"; |
diff --git a/arch/arm/boot/dts/dove.dtsi b/arch/arm/boot/dts/dove.dtsi index 42eac1ff3cc8..740630f9cd65 100644 --- a/arch/arm/boot/dts/dove.dtsi +++ b/arch/arm/boot/dts/dove.dtsi | |||
@@ -93,6 +93,7 @@ | |||
93 | reg = <0xd0400 0x20>; | 93 | reg = <0xd0400 0x20>; |
94 | ngpios = <32>; | 94 | ngpios = <32>; |
95 | interrupt-controller; | 95 | interrupt-controller; |
96 | #interrupt-cells = <2>; | ||
96 | interrupts = <12>, <13>, <14>, <60>; | 97 | interrupts = <12>, <13>, <14>, <60>; |
97 | }; | 98 | }; |
98 | 99 | ||
@@ -103,6 +104,7 @@ | |||
103 | reg = <0xd0420 0x20>; | 104 | reg = <0xd0420 0x20>; |
104 | ngpios = <32>; | 105 | ngpios = <32>; |
105 | interrupt-controller; | 106 | interrupt-controller; |
107 | #interrupt-cells = <2>; | ||
106 | interrupts = <61>; | 108 | interrupts = <61>; |
107 | }; | 109 | }; |
108 | 110 | ||
diff --git a/arch/arm/boot/dts/exynos4210.dtsi b/arch/arm/boot/dts/exynos4210.dtsi index e31bfc4a6f09..2feffc70814c 100644 --- a/arch/arm/boot/dts/exynos4210.dtsi +++ b/arch/arm/boot/dts/exynos4210.dtsi | |||
@@ -48,13 +48,13 @@ | |||
48 | }; | 48 | }; |
49 | 49 | ||
50 | pinctrl_0: pinctrl@11400000 { | 50 | pinctrl_0: pinctrl@11400000 { |
51 | compatible = "samsung,pinctrl-exynos4210"; | 51 | compatible = "samsung,exynos4210-pinctrl"; |
52 | reg = <0x11400000 0x1000>; | 52 | reg = <0x11400000 0x1000>; |
53 | interrupts = <0 47 0>; | 53 | interrupts = <0 47 0>; |
54 | }; | 54 | }; |
55 | 55 | ||
56 | pinctrl_1: pinctrl@11000000 { | 56 | pinctrl_1: pinctrl@11000000 { |
57 | compatible = "samsung,pinctrl-exynos4210"; | 57 | compatible = "samsung,exynos4210-pinctrl"; |
58 | reg = <0x11000000 0x1000>; | 58 | reg = <0x11000000 0x1000>; |
59 | interrupts = <0 46 0>; | 59 | interrupts = <0 46 0>; |
60 | 60 | ||
@@ -66,7 +66,7 @@ | |||
66 | }; | 66 | }; |
67 | 67 | ||
68 | pinctrl_2: pinctrl@03860000 { | 68 | pinctrl_2: pinctrl@03860000 { |
69 | compatible = "samsung,pinctrl-exynos4210"; | 69 | compatible = "samsung,exynos4210-pinctrl"; |
70 | reg = <0x03860000 0x1000>; | 70 | reg = <0x03860000 0x1000>; |
71 | }; | 71 | }; |
72 | 72 | ||
diff --git a/arch/arm/boot/dts/exynos4x12-pinctrl.dtsi b/arch/arm/boot/dts/exynos4x12-pinctrl.dtsi index 8e6115adcd97..099cec79e2ae 100644 --- a/arch/arm/boot/dts/exynos4x12-pinctrl.dtsi +++ b/arch/arm/boot/dts/exynos4x12-pinctrl.dtsi | |||
@@ -661,7 +661,7 @@ | |||
661 | 661 | ||
662 | sd4_bus8: sd4-bus-width8 { | 662 | sd4_bus8: sd4-bus-width8 { |
663 | samsung,pins = "gpk1-3", "gpk1-4", "gpk1-5", "gpk1-6"; | 663 | samsung,pins = "gpk1-3", "gpk1-4", "gpk1-5", "gpk1-6"; |
664 | samsung,pin-function = <3>; | 664 | samsung,pin-function = <4>; |
665 | samsung,pin-pud = <4>; | 665 | samsung,pin-pud = <4>; |
666 | samsung,pin-drv = <3>; | 666 | samsung,pin-drv = <3>; |
667 | }; | 667 | }; |
diff --git a/arch/arm/boot/dts/exynos4x12.dtsi b/arch/arm/boot/dts/exynos4x12.dtsi index 179a62e46c9d..9a8780694909 100644 --- a/arch/arm/boot/dts/exynos4x12.dtsi +++ b/arch/arm/boot/dts/exynos4x12.dtsi | |||
@@ -37,13 +37,13 @@ | |||
37 | }; | 37 | }; |
38 | 38 | ||
39 | pinctrl_0: pinctrl@11400000 { | 39 | pinctrl_0: pinctrl@11400000 { |
40 | compatible = "samsung,pinctrl-exynos4x12"; | 40 | compatible = "samsung,exynos4x12-pinctrl"; |
41 | reg = <0x11400000 0x1000>; | 41 | reg = <0x11400000 0x1000>; |
42 | interrupts = <0 47 0>; | 42 | interrupts = <0 47 0>; |
43 | }; | 43 | }; |
44 | 44 | ||
45 | pinctrl_1: pinctrl@11000000 { | 45 | pinctrl_1: pinctrl@11000000 { |
46 | compatible = "samsung,pinctrl-exynos4x12"; | 46 | compatible = "samsung,exynos4x12-pinctrl"; |
47 | reg = <0x11000000 0x1000>; | 47 | reg = <0x11000000 0x1000>; |
48 | interrupts = <0 46 0>; | 48 | interrupts = <0 46 0>; |
49 | 49 | ||
@@ -55,14 +55,14 @@ | |||
55 | }; | 55 | }; |
56 | 56 | ||
57 | pinctrl_2: pinctrl@03860000 { | 57 | pinctrl_2: pinctrl@03860000 { |
58 | compatible = "samsung,pinctrl-exynos4x12"; | 58 | compatible = "samsung,exynos4x12-pinctrl"; |
59 | reg = <0x03860000 0x1000>; | 59 | reg = <0x03860000 0x1000>; |
60 | interrupt-parent = <&combiner>; | 60 | interrupt-parent = <&combiner>; |
61 | interrupts = <10 0>; | 61 | interrupts = <10 0>; |
62 | }; | 62 | }; |
63 | 63 | ||
64 | pinctrl_3: pinctrl@106E0000 { | 64 | pinctrl_3: pinctrl@106E0000 { |
65 | compatible = "samsung,pinctrl-exynos4x12"; | 65 | compatible = "samsung,exynos4x12-pinctrl"; |
66 | reg = <0x106E0000 0x1000>; | 66 | reg = <0x106E0000 0x1000>; |
67 | interrupts = <0 72 0>; | 67 | interrupts = <0 72 0>; |
68 | }; | 68 | }; |
diff --git a/arch/arm/boot/dts/exynos5440.dtsi b/arch/arm/boot/dts/exynos5440.dtsi index 024269de8ee5..5f3562ad6746 100644 --- a/arch/arm/boot/dts/exynos5440.dtsi +++ b/arch/arm/boot/dts/exynos5440.dtsi | |||
@@ -86,7 +86,7 @@ | |||
86 | }; | 86 | }; |
87 | 87 | ||
88 | pinctrl { | 88 | pinctrl { |
89 | compatible = "samsung,pinctrl-exynos5440"; | 89 | compatible = "samsung,exynos5440-pinctrl"; |
90 | reg = <0xE0000 0x1000>; | 90 | reg = <0xE0000 0x1000>; |
91 | interrupt-controller; | 91 | interrupt-controller; |
92 | #interrupt-cells = <2>; | 92 | #interrupt-cells = <2>; |
@@ -154,6 +154,6 @@ | |||
154 | rtc { | 154 | rtc { |
155 | compatible = "samsung,s3c6410-rtc"; | 155 | compatible = "samsung,s3c6410-rtc"; |
156 | reg = <0x130000 0x1000>; | 156 | reg = <0x130000 0x1000>; |
157 | interrupts = <0 16 0>, <0 17 0>; | 157 | interrupts = <0 17 0>, <0 16 0>; |
158 | }; | 158 | }; |
159 | }; | 159 | }; |
diff --git a/arch/arm/boot/dts/imx6q.dtsi b/arch/arm/boot/dts/imx6q.dtsi index d6265ca97119..ff1205ea5719 100644 --- a/arch/arm/boot/dts/imx6q.dtsi +++ b/arch/arm/boot/dts/imx6q.dtsi | |||
@@ -866,7 +866,7 @@ | |||
866 | compatible = "fsl,imx6q-fec"; | 866 | compatible = "fsl,imx6q-fec"; |
867 | reg = <0x02188000 0x4000>; | 867 | reg = <0x02188000 0x4000>; |
868 | interrupts = <0 118 0x04 0 119 0x04>; | 868 | interrupts = <0 118 0x04 0 119 0x04>; |
869 | clocks = <&clks 117>, <&clks 117>, <&clks 177>; | 869 | clocks = <&clks 117>, <&clks 117>, <&clks 190>; |
870 | clock-names = "ipg", "ahb", "ptp"; | 870 | clock-names = "ipg", "ahb", "ptp"; |
871 | status = "disabled"; | 871 | status = "disabled"; |
872 | }; | 872 | }; |
diff --git a/arch/arm/boot/dts/vexpress-v2p-ca15-tc1.dts b/arch/arm/boot/dts/vexpress-v2p-ca15-tc1.dts index a3d37ec2655d..73187173117c 100644 --- a/arch/arm/boot/dts/vexpress-v2p-ca15-tc1.dts +++ b/arch/arm/boot/dts/vexpress-v2p-ca15-tc1.dts | |||
@@ -70,7 +70,7 @@ | |||
70 | compatible = "arm,sp805", "arm,primecell"; | 70 | compatible = "arm,sp805", "arm,primecell"; |
71 | status = "disabled"; | 71 | status = "disabled"; |
72 | reg = <0 0x2b060000 0 0x1000>; | 72 | reg = <0 0x2b060000 0 0x1000>; |
73 | interrupts = <98>; | 73 | interrupts = <0 98 4>; |
74 | clocks = <&oscclk7>; | 74 | clocks = <&oscclk7>; |
75 | clock-names = "apb_pclk"; | 75 | clock-names = "apb_pclk"; |
76 | }; | 76 | }; |
diff --git a/arch/arm/boot/dts/vexpress-v2p-ca15_a7.dts b/arch/arm/boot/dts/vexpress-v2p-ca15_a7.dts index cf8071ad22d5..dfe371ec2749 100644 --- a/arch/arm/boot/dts/vexpress-v2p-ca15_a7.dts +++ b/arch/arm/boot/dts/vexpress-v2p-ca15_a7.dts | |||
@@ -72,7 +72,7 @@ | |||
72 | wdt@2a490000 { | 72 | wdt@2a490000 { |
73 | compatible = "arm,sp805", "arm,primecell"; | 73 | compatible = "arm,sp805", "arm,primecell"; |
74 | reg = <0 0x2a490000 0 0x1000>; | 74 | reg = <0 0x2a490000 0 0x1000>; |
75 | interrupts = <98>; | 75 | interrupts = <0 98 4>; |
76 | clocks = <&oscclk6a>, <&oscclk6a>; | 76 | clocks = <&oscclk6a>, <&oscclk6a>; |
77 | clock-names = "wdogclk", "apb_pclk"; | 77 | clock-names = "wdogclk", "apb_pclk"; |
78 | }; | 78 | }; |
diff --git a/arch/arm/configs/marzen_defconfig b/arch/arm/configs/marzen_defconfig index 728a43c446f8..afb17d630d44 100644 --- a/arch/arm/configs/marzen_defconfig +++ b/arch/arm/configs/marzen_defconfig | |||
@@ -83,7 +83,6 @@ CONFIG_USB=y | |||
83 | CONFIG_USB_RCAR_PHY=y | 83 | CONFIG_USB_RCAR_PHY=y |
84 | CONFIG_MMC=y | 84 | CONFIG_MMC=y |
85 | CONFIG_MMC_SDHI=y | 85 | CONFIG_MMC_SDHI=y |
86 | CONFIG_USB=y | ||
87 | CONFIG_USB_EHCI_HCD=y | 86 | CONFIG_USB_EHCI_HCD=y |
88 | CONFIG_USB_OHCI_HCD=y | 87 | CONFIG_USB_OHCI_HCD=y |
89 | CONFIG_USB_OHCI_HCD_PLATFORM=y | 88 | CONFIG_USB_OHCI_HCD_PLATFORM=y |
diff --git a/arch/arm/configs/mvebu_defconfig b/arch/arm/configs/mvebu_defconfig index b5bc96cb65a7..cbd91bce1ca9 100644 --- a/arch/arm/configs/mvebu_defconfig +++ b/arch/arm/configs/mvebu_defconfig | |||
@@ -33,6 +33,8 @@ CONFIG_MVNETA=y | |||
33 | CONFIG_MARVELL_PHY=y | 33 | CONFIG_MARVELL_PHY=y |
34 | CONFIG_SERIAL_8250=y | 34 | CONFIG_SERIAL_8250=y |
35 | CONFIG_SERIAL_8250_CONSOLE=y | 35 | CONFIG_SERIAL_8250_CONSOLE=y |
36 | CONFIG_I2C=y | ||
37 | CONFIG_I2C_MV64XXX=y | ||
36 | CONFIG_SERIAL_8250_DW=y | 38 | CONFIG_SERIAL_8250_DW=y |
37 | CONFIG_GPIOLIB=y | 39 | CONFIG_GPIOLIB=y |
38 | CONFIG_GPIO_SYSFS=y | 40 | CONFIG_GPIO_SYSFS=y |
diff --git a/arch/arm/configs/shark_defconfig b/arch/arm/configs/shark_defconfig index caa07db90cf5..e319b2c56f11 100644 --- a/arch/arm/configs/shark_defconfig +++ b/arch/arm/configs/shark_defconfig | |||
@@ -73,7 +73,6 @@ CONFIG_PARTITION_ADVANCED=y | |||
73 | CONFIG_NLS_CODEPAGE_437=m | 73 | CONFIG_NLS_CODEPAGE_437=m |
74 | CONFIG_NLS_CODEPAGE_850=m | 74 | CONFIG_NLS_CODEPAGE_850=m |
75 | CONFIG_NLS_ISO8859_1=m | 75 | CONFIG_NLS_ISO8859_1=m |
76 | # CONFIG_ENABLE_WARN_DEPRECATED is not set | ||
77 | # CONFIG_ENABLE_MUST_CHECK is not set | 76 | # CONFIG_ENABLE_MUST_CHECK is not set |
78 | CONFIG_DEBUG_KERNEL=y | 77 | CONFIG_DEBUG_KERNEL=y |
79 | # CONFIG_SCHED_DEBUG is not set | 78 | # CONFIG_SCHED_DEBUG is not set |
diff --git a/arch/arm/configs/u8500_defconfig b/arch/arm/configs/u8500_defconfig index 231dca604737..426270fe080d 100644 --- a/arch/arm/configs/u8500_defconfig +++ b/arch/arm/configs/u8500_defconfig | |||
@@ -66,9 +66,9 @@ CONFIG_SPI=y | |||
66 | CONFIG_SPI_PL022=y | 66 | CONFIG_SPI_PL022=y |
67 | CONFIG_GPIO_STMPE=y | 67 | CONFIG_GPIO_STMPE=y |
68 | CONFIG_GPIO_TC3589X=y | 68 | CONFIG_GPIO_TC3589X=y |
69 | CONFIG_POWER_SUPPLY=y | 69 | # CONFIG_POWER_SUPPLY is not set |
70 | CONFIG_AB8500_BM=y | 70 | # CONFIG_AB8500_BM is not set |
71 | CONFIG_AB8500_BATTERY_THERM_ON_BATCTRL=y | 71 | # CONFIG_AB8500_BATTERY_THERM_ON_BATCTRL is not set |
72 | CONFIG_THERMAL=y | 72 | CONFIG_THERMAL=y |
73 | CONFIG_CPU_THERMAL=y | 73 | CONFIG_CPU_THERMAL=y |
74 | CONFIG_MFD_STMPE=y | 74 | CONFIG_MFD_STMPE=y |
diff --git a/arch/arm/include/asm/dma.h b/arch/arm/include/asm/dma.h index 5694a0d6576b..58b8c6a0ab1f 100644 --- a/arch/arm/include/asm/dma.h +++ b/arch/arm/include/asm/dma.h | |||
@@ -105,7 +105,7 @@ extern void set_dma_sg(unsigned int chan, struct scatterlist *sg, int nr_sg); | |||
105 | */ | 105 | */ |
106 | extern void __set_dma_addr(unsigned int chan, void *addr); | 106 | extern void __set_dma_addr(unsigned int chan, void *addr); |
107 | #define set_dma_addr(chan, addr) \ | 107 | #define set_dma_addr(chan, addr) \ |
108 | __set_dma_addr(chan, bus_to_virt(addr)) | 108 | __set_dma_addr(chan, (void *)__bus_to_virt(addr)) |
109 | 109 | ||
110 | /* Set the DMA byte count for this channel | 110 | /* Set the DMA byte count for this channel |
111 | * | 111 | * |
diff --git a/arch/arm/include/asm/memory.h b/arch/arm/include/asm/memory.h index 64c770d24198..57870ab313c5 100644 --- a/arch/arm/include/asm/memory.h +++ b/arch/arm/include/asm/memory.h | |||
@@ -245,6 +245,7 @@ static inline void *phys_to_virt(phys_addr_t x) | |||
245 | #define __bus_to_pfn(x) __phys_to_pfn(x) | 245 | #define __bus_to_pfn(x) __phys_to_pfn(x) |
246 | #endif | 246 | #endif |
247 | 247 | ||
248 | #ifdef CONFIG_VIRT_TO_BUS | ||
248 | static inline __deprecated unsigned long virt_to_bus(void *x) | 249 | static inline __deprecated unsigned long virt_to_bus(void *x) |
249 | { | 250 | { |
250 | return __virt_to_bus((unsigned long)x); | 251 | return __virt_to_bus((unsigned long)x); |
@@ -254,6 +255,7 @@ static inline __deprecated void *bus_to_virt(unsigned long x) | |||
254 | { | 255 | { |
255 | return (void *)__bus_to_virt(x); | 256 | return (void *)__bus_to_virt(x); |
256 | } | 257 | } |
258 | #endif | ||
257 | 259 | ||
258 | /* | 260 | /* |
259 | * Conversion between a struct page and a physical address. | 261 | * Conversion between a struct page and a physical address. |
diff --git a/arch/arm/mach-exynos/common.c b/arch/arm/mach-exynos/common.c index 1a89824a5f78..0c7e3ad7ba93 100644 --- a/arch/arm/mach-exynos/common.c +++ b/arch/arm/mach-exynos/common.c | |||
@@ -299,6 +299,7 @@ void exynos4_restart(char mode, const char *cmd) | |||
299 | 299 | ||
300 | void exynos5_restart(char mode, const char *cmd) | 300 | void exynos5_restart(char mode, const char *cmd) |
301 | { | 301 | { |
302 | struct device_node *np; | ||
302 | u32 val; | 303 | u32 val; |
303 | void __iomem *addr; | 304 | void __iomem *addr; |
304 | 305 | ||
@@ -306,8 +307,9 @@ void exynos5_restart(char mode, const char *cmd) | |||
306 | val = 0x1; | 307 | val = 0x1; |
307 | addr = EXYNOS_SWRESET; | 308 | addr = EXYNOS_SWRESET; |
308 | } else if (of_machine_is_compatible("samsung,exynos5440")) { | 309 | } else if (of_machine_is_compatible("samsung,exynos5440")) { |
309 | val = (0x10 << 20) | (0x1 << 16); | 310 | np = of_find_compatible_node(NULL, NULL, "samsung,exynos5440-clock"); |
310 | addr = EXYNOS5440_SWRESET; | 311 | addr = of_iomap(np, 0) + 0xcc; |
312 | val = (0xfff << 20) | (0x1 << 16); | ||
311 | } else { | 313 | } else { |
312 | pr_err("%s: cannot support non-DT\n", __func__); | 314 | pr_err("%s: cannot support non-DT\n", __func__); |
313 | return; | 315 | return; |
@@ -1031,8 +1033,8 @@ static int __init exynos_init_irq_eint(void) | |||
1031 | * interrupt support code here can be completely removed. | 1033 | * interrupt support code here can be completely removed. |
1032 | */ | 1034 | */ |
1033 | static const struct of_device_id exynos_pinctrl_ids[] = { | 1035 | static const struct of_device_id exynos_pinctrl_ids[] = { |
1034 | { .compatible = "samsung,pinctrl-exynos4210", }, | 1036 | { .compatible = "samsung,exynos4210-pinctrl", }, |
1035 | { .compatible = "samsung,pinctrl-exynos4x12", }, | 1037 | { .compatible = "samsung,exynos4x12-pinctrl", }, |
1036 | }; | 1038 | }; |
1037 | struct device_node *pctrl_np, *wkup_np; | 1039 | struct device_node *pctrl_np, *wkup_np; |
1038 | const char *wkup_compat = "samsung,exynos4210-wakeup-eint"; | 1040 | const char *wkup_compat = "samsung,exynos4210-wakeup-eint"; |
diff --git a/arch/arm/mach-exynos/pm.c b/arch/arm/mach-exynos/pm.c index b9b539cac81e..5106ab83e593 100644 --- a/arch/arm/mach-exynos/pm.c +++ b/arch/arm/mach-exynos/pm.c | |||
@@ -91,8 +91,8 @@ static int exynos_cpu_suspend(unsigned long arg) | |||
91 | /* issue the standby signal into the pm unit. */ | 91 | /* issue the standby signal into the pm unit. */ |
92 | cpu_do_idle(); | 92 | cpu_do_idle(); |
93 | 93 | ||
94 | /* we should never get past here */ | 94 | pr_info("Failed to suspend the system\n"); |
95 | panic("sleep resumed to originator?"); | 95 | return 1; /* Aborting suspend */ |
96 | } | 96 | } |
97 | 97 | ||
98 | static void exynos_pm_prepare(void) | 98 | static void exynos_pm_prepare(void) |
@@ -282,6 +282,8 @@ static void exynos_pm_resume(void) | |||
282 | if (!(tmp & S5P_CENTRAL_LOWPWR_CFG)) { | 282 | if (!(tmp & S5P_CENTRAL_LOWPWR_CFG)) { |
283 | tmp |= S5P_CENTRAL_LOWPWR_CFG; | 283 | tmp |= S5P_CENTRAL_LOWPWR_CFG; |
284 | __raw_writel(tmp, S5P_CENTRAL_SEQ_CONFIGURATION); | 284 | __raw_writel(tmp, S5P_CENTRAL_SEQ_CONFIGURATION); |
285 | /* clear the wakeup state register */ | ||
286 | __raw_writel(0x0, S5P_WAKEUP_STAT); | ||
285 | /* No need to perform below restore code */ | 287 | /* No need to perform below restore code */ |
286 | goto early_wakeup; | 288 | goto early_wakeup; |
287 | } | 289 | } |
diff --git a/arch/arm/mach-imx/Kconfig b/arch/arm/mach-imx/Kconfig index 0a2349dc7018..64b40a4615b5 100644 --- a/arch/arm/mach-imx/Kconfig +++ b/arch/arm/mach-imx/Kconfig | |||
@@ -488,7 +488,7 @@ config MACH_MX31ADS_WM1133_EV1 | |||
488 | bool "Support Wolfson Microelectronics 1133-EV1 module" | 488 | bool "Support Wolfson Microelectronics 1133-EV1 module" |
489 | depends on MACH_MX31ADS | 489 | depends on MACH_MX31ADS |
490 | depends on MFD_WM8350_I2C | 490 | depends on MFD_WM8350_I2C |
491 | depends on REGULATOR_WM8350 | 491 | depends on REGULATOR_WM8350 = y |
492 | select MFD_WM8350_CONFIG_MODE_0 | 492 | select MFD_WM8350_CONFIG_MODE_0 |
493 | select MFD_WM8352_CONFIG_MODE_0 | 493 | select MFD_WM8352_CONFIG_MODE_0 |
494 | help | 494 | help |
diff --git a/arch/arm/mach-imx/clk-imx25.c b/arch/arm/mach-imx/clk-imx25.c index 2c570cdaae7b..69858c78f40d 100644 --- a/arch/arm/mach-imx/clk-imx25.c +++ b/arch/arm/mach-imx/clk-imx25.c | |||
@@ -224,6 +224,9 @@ static int __init __mx25_clocks_init(unsigned long osc_rate) | |||
224 | 224 | ||
225 | clk_prepare_enable(clk[emi_ahb]); | 225 | clk_prepare_enable(clk[emi_ahb]); |
226 | 226 | ||
227 | /* Clock source for gpt must be derived from AHB */ | ||
228 | clk_set_parent(clk[per5_sel], clk[ahb]); | ||
229 | |||
227 | clk_register_clkdev(clk[ipg], "ipg", "imx-gpt.0"); | 230 | clk_register_clkdev(clk[ipg], "ipg", "imx-gpt.0"); |
228 | clk_register_clkdev(clk[gpt_ipg_per], "per", "imx-gpt.0"); | 231 | clk_register_clkdev(clk[gpt_ipg_per], "per", "imx-gpt.0"); |
229 | 232 | ||
diff --git a/arch/arm/mach-imx/clk-imx27.c b/arch/arm/mach-imx/clk-imx27.c index 1ffe3b534e51..e30369a58e4e 100644 --- a/arch/arm/mach-imx/clk-imx27.c +++ b/arch/arm/mach-imx/clk-imx27.c | |||
@@ -228,9 +228,12 @@ int __init mx27_clocks_init(unsigned long fref) | |||
228 | clk_register_clkdev(clk[sdhc2_ipg_gate], "ipg", "imx21-mmc.1"); | 228 | clk_register_clkdev(clk[sdhc2_ipg_gate], "ipg", "imx21-mmc.1"); |
229 | clk_register_clkdev(clk[per2_gate], "per", "imx21-mmc.2"); | 229 | clk_register_clkdev(clk[per2_gate], "per", "imx21-mmc.2"); |
230 | clk_register_clkdev(clk[sdhc2_ipg_gate], "ipg", "imx21-mmc.2"); | 230 | clk_register_clkdev(clk[sdhc2_ipg_gate], "ipg", "imx21-mmc.2"); |
231 | clk_register_clkdev(clk[cspi1_ipg_gate], NULL, "imx27-cspi.0"); | 231 | clk_register_clkdev(clk[per2_gate], "per", "imx27-cspi.0"); |
232 | clk_register_clkdev(clk[cspi2_ipg_gate], NULL, "imx27-cspi.1"); | 232 | clk_register_clkdev(clk[cspi1_ipg_gate], "ipg", "imx27-cspi.0"); |
233 | clk_register_clkdev(clk[cspi3_ipg_gate], NULL, "imx27-cspi.2"); | 233 | clk_register_clkdev(clk[per2_gate], "per", "imx27-cspi.1"); |
234 | clk_register_clkdev(clk[cspi2_ipg_gate], "ipg", "imx27-cspi.1"); | ||
235 | clk_register_clkdev(clk[per2_gate], "per", "imx27-cspi.2"); | ||
236 | clk_register_clkdev(clk[cspi3_ipg_gate], "ipg", "imx27-cspi.2"); | ||
234 | clk_register_clkdev(clk[per3_gate], "per", "imx21-fb.0"); | 237 | clk_register_clkdev(clk[per3_gate], "per", "imx21-fb.0"); |
235 | clk_register_clkdev(clk[lcdc_ipg_gate], "ipg", "imx21-fb.0"); | 238 | clk_register_clkdev(clk[lcdc_ipg_gate], "ipg", "imx21-fb.0"); |
236 | clk_register_clkdev(clk[lcdc_ahb_gate], "ahb", "imx21-fb.0"); | 239 | clk_register_clkdev(clk[lcdc_ahb_gate], "ahb", "imx21-fb.0"); |
diff --git a/arch/arm/mach-integrator/common.h b/arch/arm/mach-integrator/common.h index 79197d8b34aa..72516658be1e 100644 --- a/arch/arm/mach-integrator/common.h +++ b/arch/arm/mach-integrator/common.h | |||
@@ -1,10 +1,5 @@ | |||
1 | #include <linux/amba/serial.h> | 1 | #include <linux/amba/serial.h> |
2 | #ifdef CONFIG_ARCH_INTEGRATOR_AP | ||
3 | extern struct amba_pl010_data ap_uart_data; | 2 | extern struct amba_pl010_data ap_uart_data; |
4 | #else | ||
5 | /* Not used without Integrator/AP support anyway */ | ||
6 | struct amba_pl010_data ap_uart_data {}; | ||
7 | #endif | ||
8 | void integrator_init_early(void); | 3 | void integrator_init_early(void); |
9 | int integrator_init(bool is_cp); | 4 | int integrator_init(bool is_cp); |
10 | void integrator_reserve(void); | 5 | void integrator_reserve(void); |
diff --git a/arch/arm/mach-integrator/core.c b/arch/arm/mach-integrator/core.c index 39c060f75e47..81461d218717 100644 --- a/arch/arm/mach-integrator/core.c +++ b/arch/arm/mach-integrator/core.c | |||
@@ -71,7 +71,7 @@ int __init integrator_init(bool is_cp) | |||
71 | * hard-code them. The Integator/CP and forward have proper cell IDs. | 71 | * hard-code them. The Integator/CP and forward have proper cell IDs. |
72 | * Else we leave them undefined to the bus driver can autoprobe them. | 72 | * Else we leave them undefined to the bus driver can autoprobe them. |
73 | */ | 73 | */ |
74 | if (!is_cp) { | 74 | if (!is_cp && IS_ENABLED(CONFIG_ARCH_INTEGRATOR_AP)) { |
75 | rtc_device.periphid = 0x00041030; | 75 | rtc_device.periphid = 0x00041030; |
76 | uart0_device.periphid = 0x00041010; | 76 | uart0_device.periphid = 0x00041010; |
77 | uart1_device.periphid = 0x00041010; | 77 | uart1_device.periphid = 0x00041010; |
diff --git a/arch/arm/mach-integrator/integrator_ap.c b/arch/arm/mach-integrator/integrator_ap.c index 11e2a4145807..592c168f4b62 100644 --- a/arch/arm/mach-integrator/integrator_ap.c +++ b/arch/arm/mach-integrator/integrator_ap.c | |||
@@ -94,7 +94,7 @@ void __iomem *ap_syscon_base; | |||
94 | * f1b00000 1b000000 GPIO | 94 | * f1b00000 1b000000 GPIO |
95 | */ | 95 | */ |
96 | 96 | ||
97 | static struct map_desc ap_io_desc[] __initdata = { | 97 | static struct map_desc ap_io_desc[] __initdata __maybe_unused = { |
98 | { | 98 | { |
99 | .virtual = IO_ADDRESS(INTEGRATOR_HDR_BASE), | 99 | .virtual = IO_ADDRESS(INTEGRATOR_HDR_BASE), |
100 | .pfn = __phys_to_pfn(INTEGRATOR_HDR_BASE), | 100 | .pfn = __phys_to_pfn(INTEGRATOR_HDR_BASE), |
@@ -613,7 +613,6 @@ static struct map_desc ap_io_desc_atag[] __initdata = { | |||
613 | static void __init ap_map_io_atag(void) | 613 | static void __init ap_map_io_atag(void) |
614 | { | 614 | { |
615 | iotable_init(ap_io_desc_atag, ARRAY_SIZE(ap_io_desc_atag)); | 615 | iotable_init(ap_io_desc_atag, ARRAY_SIZE(ap_io_desc_atag)); |
616 | ap_syscon_base = __io_address(INTEGRATOR_SC_BASE); | ||
617 | ap_map_io(); | 616 | ap_map_io(); |
618 | } | 617 | } |
619 | 618 | ||
@@ -685,6 +684,7 @@ static void __init ap_init(void) | |||
685 | 684 | ||
686 | platform_device_register(&cfi_flash_device); | 685 | platform_device_register(&cfi_flash_device); |
687 | 686 | ||
687 | ap_syscon_base = __io_address(INTEGRATOR_SC_BASE); | ||
688 | sc_dec = readl(ap_syscon_base + INTEGRATOR_SC_DEC_OFFSET); | 688 | sc_dec = readl(ap_syscon_base + INTEGRATOR_SC_DEC_OFFSET); |
689 | for (i = 0; i < 4; i++) { | 689 | for (i = 0; i < 4; i++) { |
690 | struct lm_device *lmdev; | 690 | struct lm_device *lmdev; |
diff --git a/arch/arm/mach-integrator/integrator_cp.c b/arch/arm/mach-integrator/integrator_cp.c index 7322838c0447..01a888d7b0b8 100644 --- a/arch/arm/mach-integrator/integrator_cp.c +++ b/arch/arm/mach-integrator/integrator_cp.c | |||
@@ -78,7 +78,7 @@ static void __iomem *intcp_con_base; | |||
78 | * fcb00000 cb000000 CP system control | 78 | * fcb00000 cb000000 CP system control |
79 | */ | 79 | */ |
80 | 80 | ||
81 | static struct map_desc intcp_io_desc[] __initdata = { | 81 | static struct map_desc intcp_io_desc[] __initdata __maybe_unused = { |
82 | { | 82 | { |
83 | .virtual = IO_ADDRESS(INTEGRATOR_HDR_BASE), | 83 | .virtual = IO_ADDRESS(INTEGRATOR_HDR_BASE), |
84 | .pfn = __phys_to_pfn(INTEGRATOR_HDR_BASE), | 84 | .pfn = __phys_to_pfn(INTEGRATOR_HDR_BASE), |
diff --git a/arch/arm/mach-msm/proc_comm.h b/arch/arm/mach-msm/proc_comm.h index 12da4cacd4a8..e8d043a0e990 100644 --- a/arch/arm/mach-msm/proc_comm.h +++ b/arch/arm/mach-msm/proc_comm.h | |||
@@ -253,6 +253,6 @@ enum { | |||
253 | (((drvstr) & 0xF) << 17)) | 253 | (((drvstr) & 0xF) << 17)) |
254 | 254 | ||
255 | int msm_proc_comm(unsigned cmd, unsigned *data1, unsigned *data2); | 255 | int msm_proc_comm(unsigned cmd, unsigned *data1, unsigned *data2); |
256 | void __init proc_comm_boot_wait(void); | 256 | void proc_comm_boot_wait(void); |
257 | 257 | ||
258 | #endif | 258 | #endif |
diff --git a/arch/arm/mach-mvebu/Makefile b/arch/arm/mach-mvebu/Makefile index 99df4df680fd..da93bcbc74c1 100644 --- a/arch/arm/mach-mvebu/Makefile +++ b/arch/arm/mach-mvebu/Makefile | |||
@@ -3,7 +3,8 @@ ccflags-$(CONFIG_ARCH_MULTIPLATFORM) := -I$(srctree)/$(src)/include \ | |||
3 | 3 | ||
4 | AFLAGS_coherency_ll.o := -Wa,-march=armv7-a | 4 | AFLAGS_coherency_ll.o := -Wa,-march=armv7-a |
5 | 5 | ||
6 | obj-y += system-controller.o | 6 | obj-y += system-controller.o |
7 | obj-$(CONFIG_MACH_ARMADA_370_XP) += armada-370-xp.o irq-armada-370-xp.o addr-map.o coherency.o coherency_ll.o pmsu.o | 7 | obj-$(CONFIG_MACH_ARMADA_370_XP) += armada-370-xp.o |
8 | obj-$(CONFIG_ARCH_MVEBU) += addr-map.o coherency.o coherency_ll.o pmsu.o irq-armada-370-xp.o | ||
8 | obj-$(CONFIG_SMP) += platsmp.o headsmp.o | 9 | obj-$(CONFIG_SMP) += platsmp.o headsmp.o |
9 | obj-$(CONFIG_HOTPLUG_CPU) += hotplug.o | 10 | obj-$(CONFIG_HOTPLUG_CPU) += hotplug.o |
diff --git a/arch/arm/mach-omap2/omap-wakeupgen.c b/arch/arm/mach-omap2/omap-wakeupgen.c index 5d3b4f4f81ae..8633a43acae2 100644 --- a/arch/arm/mach-omap2/omap-wakeupgen.c +++ b/arch/arm/mach-omap2/omap-wakeupgen.c | |||
@@ -46,7 +46,7 @@ | |||
46 | 46 | ||
47 | static void __iomem *wakeupgen_base; | 47 | static void __iomem *wakeupgen_base; |
48 | static void __iomem *sar_base; | 48 | static void __iomem *sar_base; |
49 | static DEFINE_SPINLOCK(wakeupgen_lock); | 49 | static DEFINE_RAW_SPINLOCK(wakeupgen_lock); |
50 | static unsigned int irq_target_cpu[MAX_IRQS]; | 50 | static unsigned int irq_target_cpu[MAX_IRQS]; |
51 | static unsigned int irq_banks = MAX_NR_REG_BANKS; | 51 | static unsigned int irq_banks = MAX_NR_REG_BANKS; |
52 | static unsigned int max_irqs = MAX_IRQS; | 52 | static unsigned int max_irqs = MAX_IRQS; |
@@ -134,9 +134,9 @@ static void wakeupgen_mask(struct irq_data *d) | |||
134 | { | 134 | { |
135 | unsigned long flags; | 135 | unsigned long flags; |
136 | 136 | ||
137 | spin_lock_irqsave(&wakeupgen_lock, flags); | 137 | raw_spin_lock_irqsave(&wakeupgen_lock, flags); |
138 | _wakeupgen_clear(d->irq, irq_target_cpu[d->irq]); | 138 | _wakeupgen_clear(d->irq, irq_target_cpu[d->irq]); |
139 | spin_unlock_irqrestore(&wakeupgen_lock, flags); | 139 | raw_spin_unlock_irqrestore(&wakeupgen_lock, flags); |
140 | } | 140 | } |
141 | 141 | ||
142 | /* | 142 | /* |
@@ -146,9 +146,9 @@ static void wakeupgen_unmask(struct irq_data *d) | |||
146 | { | 146 | { |
147 | unsigned long flags; | 147 | unsigned long flags; |
148 | 148 | ||
149 | spin_lock_irqsave(&wakeupgen_lock, flags); | 149 | raw_spin_lock_irqsave(&wakeupgen_lock, flags); |
150 | _wakeupgen_set(d->irq, irq_target_cpu[d->irq]); | 150 | _wakeupgen_set(d->irq, irq_target_cpu[d->irq]); |
151 | spin_unlock_irqrestore(&wakeupgen_lock, flags); | 151 | raw_spin_unlock_irqrestore(&wakeupgen_lock, flags); |
152 | } | 152 | } |
153 | 153 | ||
154 | #ifdef CONFIG_HOTPLUG_CPU | 154 | #ifdef CONFIG_HOTPLUG_CPU |
@@ -189,7 +189,7 @@ static void wakeupgen_irqmask_all(unsigned int cpu, unsigned int set) | |||
189 | { | 189 | { |
190 | unsigned long flags; | 190 | unsigned long flags; |
191 | 191 | ||
192 | spin_lock_irqsave(&wakeupgen_lock, flags); | 192 | raw_spin_lock_irqsave(&wakeupgen_lock, flags); |
193 | if (set) { | 193 | if (set) { |
194 | _wakeupgen_save_masks(cpu); | 194 | _wakeupgen_save_masks(cpu); |
195 | _wakeupgen_set_all(cpu, WKG_MASK_ALL); | 195 | _wakeupgen_set_all(cpu, WKG_MASK_ALL); |
@@ -197,7 +197,7 @@ static void wakeupgen_irqmask_all(unsigned int cpu, unsigned int set) | |||
197 | _wakeupgen_set_all(cpu, WKG_UNMASK_ALL); | 197 | _wakeupgen_set_all(cpu, WKG_UNMASK_ALL); |
198 | _wakeupgen_restore_masks(cpu); | 198 | _wakeupgen_restore_masks(cpu); |
199 | } | 199 | } |
200 | spin_unlock_irqrestore(&wakeupgen_lock, flags); | 200 | raw_spin_unlock_irqrestore(&wakeupgen_lock, flags); |
201 | } | 201 | } |
202 | #endif | 202 | #endif |
203 | 203 | ||
diff --git a/arch/arm/mach-omap2/timer.c b/arch/arm/mach-omap2/timer.c index b8ad6e632bb8..265de51b43d9 100644 --- a/arch/arm/mach-omap2/timer.c +++ b/arch/arm/mach-omap2/timer.c | |||
@@ -228,7 +228,7 @@ static int __init omap_dm_timer_init_one(struct omap_dm_timer *timer, | |||
228 | int r = 0; | 228 | int r = 0; |
229 | 229 | ||
230 | if (of_have_populated_dt()) { | 230 | if (of_have_populated_dt()) { |
231 | np = omap_get_timer_dt(omap_timer_match, NULL); | 231 | np = omap_get_timer_dt(omap_timer_match, property); |
232 | if (!np) | 232 | if (!np) |
233 | return -ENODEV; | 233 | return -ENODEV; |
234 | 234 | ||
diff --git a/arch/arm/mach-omap2/twl-common.c b/arch/arm/mach-omap2/twl-common.c index e49b40b4c90a..6a7aec6d1174 100644 --- a/arch/arm/mach-omap2/twl-common.c +++ b/arch/arm/mach-omap2/twl-common.c | |||
@@ -23,6 +23,7 @@ | |||
23 | #include <linux/i2c.h> | 23 | #include <linux/i2c.h> |
24 | #include <linux/i2c/twl.h> | 24 | #include <linux/i2c/twl.h> |
25 | #include <linux/gpio.h> | 25 | #include <linux/gpio.h> |
26 | #include <linux/string.h> | ||
26 | #include <linux/regulator/machine.h> | 27 | #include <linux/regulator/machine.h> |
27 | #include <linux/regulator/fixed.h> | 28 | #include <linux/regulator/fixed.h> |
28 | 29 | ||
@@ -56,7 +57,7 @@ void __init omap_pmic_init(int bus, u32 clkrate, | |||
56 | struct twl4030_platform_data *pmic_data) | 57 | struct twl4030_platform_data *pmic_data) |
57 | { | 58 | { |
58 | omap_mux_init_signal("sys_nirq", OMAP_PIN_INPUT_PULLUP | OMAP_PIN_OFF_WAKEUPENABLE); | 59 | omap_mux_init_signal("sys_nirq", OMAP_PIN_INPUT_PULLUP | OMAP_PIN_OFF_WAKEUPENABLE); |
59 | strncpy(pmic_i2c_board_info.type, pmic_type, | 60 | strlcpy(pmic_i2c_board_info.type, pmic_type, |
60 | sizeof(pmic_i2c_board_info.type)); | 61 | sizeof(pmic_i2c_board_info.type)); |
61 | pmic_i2c_board_info.irq = pmic_irq; | 62 | pmic_i2c_board_info.irq = pmic_irq; |
62 | pmic_i2c_board_info.platform_data = pmic_data; | 63 | pmic_i2c_board_info.platform_data = pmic_data; |
diff --git a/arch/arm/mach-pxa/include/mach/palmtreo.h b/arch/arm/mach-pxa/include/mach/palmtreo.h index 2d3f14e3be29..714b6574393e 100644 --- a/arch/arm/mach-pxa/include/mach/palmtreo.h +++ b/arch/arm/mach-pxa/include/mach/palmtreo.h | |||
@@ -38,13 +38,14 @@ | |||
38 | #define GPIO_NR_TREO_LCD_POWER 25 | 38 | #define GPIO_NR_TREO_LCD_POWER 25 |
39 | 39 | ||
40 | /* Treo680 specific GPIOs */ | 40 | /* Treo680 specific GPIOs */ |
41 | #ifdef CONFIG_MACH_TREO680 | ||
42 | #define GPIO_NR_TREO680_SD_READONLY 33 | 41 | #define GPIO_NR_TREO680_SD_READONLY 33 |
43 | #define GPIO_NR_TREO680_SD_POWER 42 | 42 | #define GPIO_NR_TREO680_SD_POWER 42 |
44 | #define GPIO_NR_TREO680_VIBRATE_EN 44 | 43 | #define GPIO_NR_TREO680_VIBRATE_EN 44 |
45 | #define GPIO_NR_TREO680_KEYB_BL 24 | 44 | #define GPIO_NR_TREO680_KEYB_BL 24 |
46 | #define GPIO_NR_TREO680_BT_EN 43 | 45 | #define GPIO_NR_TREO680_BT_EN 43 |
47 | #endif /* CONFIG_MACH_TREO680 */ | 46 | #define GPIO_NR_TREO680_LCD_POWER 77 |
47 | #define GPIO_NR_TREO680_LCD_EN 86 | ||
48 | #define GPIO_NR_TREO680_LCD_EN_N 25 | ||
48 | 49 | ||
49 | /* Centro685 specific GPIOs */ | 50 | /* Centro685 specific GPIOs */ |
50 | #define GPIO_NR_CENTRO_SD_POWER 21 | 51 | #define GPIO_NR_CENTRO_SD_POWER 21 |
diff --git a/arch/arm/mach-pxa/include/mach/smemc.h b/arch/arm/mach-pxa/include/mach/smemc.h index b7de471b273a..b802f285fe00 100644 --- a/arch/arm/mach-pxa/include/mach/smemc.h +++ b/arch/arm/mach-pxa/include/mach/smemc.h | |||
@@ -37,6 +37,7 @@ | |||
37 | #define CSADRCFG1 (SMEMC_VIRT + 0x84) /* Address Configuration Register for CS1 */ | 37 | #define CSADRCFG1 (SMEMC_VIRT + 0x84) /* Address Configuration Register for CS1 */ |
38 | #define CSADRCFG2 (SMEMC_VIRT + 0x88) /* Address Configuration Register for CS2 */ | 38 | #define CSADRCFG2 (SMEMC_VIRT + 0x88) /* Address Configuration Register for CS2 */ |
39 | #define CSADRCFG3 (SMEMC_VIRT + 0x8C) /* Address Configuration Register for CS3 */ | 39 | #define CSADRCFG3 (SMEMC_VIRT + 0x8C) /* Address Configuration Register for CS3 */ |
40 | #define CSMSADRCFG (SMEMC_VIRT + 0xA0) /* Chip Select Configuration Register */ | ||
40 | 41 | ||
41 | /* | 42 | /* |
42 | * More handy macros for PCMCIA | 43 | * More handy macros for PCMCIA |
diff --git a/arch/arm/mach-pxa/palmtreo.c b/arch/arm/mach-pxa/palmtreo.c index 3f3c48f2f7ce..577512845a6c 100644 --- a/arch/arm/mach-pxa/palmtreo.c +++ b/arch/arm/mach-pxa/palmtreo.c | |||
@@ -98,9 +98,6 @@ static unsigned long treo_pin_config[] __initdata = { | |||
98 | GPIO96_KP_MKOUT_6, | 98 | GPIO96_KP_MKOUT_6, |
99 | GPIO93_KP_DKIN_0 | WAKEUP_ON_LEVEL_HIGH, /* Hotsync button */ | 99 | GPIO93_KP_DKIN_0 | WAKEUP_ON_LEVEL_HIGH, /* Hotsync button */ |
100 | 100 | ||
101 | /* LCD */ | ||
102 | GPIOxx_LCD_TFT_16BPP, | ||
103 | |||
104 | /* Quick Capture Interface */ | 101 | /* Quick Capture Interface */ |
105 | GPIO84_CIF_FV, | 102 | GPIO84_CIF_FV, |
106 | GPIO85_CIF_LV, | 103 | GPIO85_CIF_LV, |
@@ -140,6 +137,12 @@ static unsigned long treo680_pin_config[] __initdata = { | |||
140 | /* MATRIX KEYPAD - different wake up source */ | 137 | /* MATRIX KEYPAD - different wake up source */ |
141 | GPIO100_KP_MKIN_0 | WAKEUP_ON_LEVEL_HIGH, | 138 | GPIO100_KP_MKIN_0 | WAKEUP_ON_LEVEL_HIGH, |
142 | GPIO99_KP_MKIN_5, | 139 | GPIO99_KP_MKIN_5, |
140 | |||
141 | /* LCD... L_BIAS alt fn not configured on Treo680; is GPIO instead */ | ||
142 | GPIOxx_LCD_16BPP, | ||
143 | GPIO74_LCD_FCLK, | ||
144 | GPIO75_LCD_LCLK, | ||
145 | GPIO76_LCD_PCLK, | ||
143 | }; | 146 | }; |
144 | #endif /* CONFIG_MACH_TREO680 */ | 147 | #endif /* CONFIG_MACH_TREO680 */ |
145 | 148 | ||
@@ -155,6 +158,9 @@ static unsigned long centro685_pin_config[] __initdata = { | |||
155 | /* MATRIX KEYPAD - different wake up source */ | 158 | /* MATRIX KEYPAD - different wake up source */ |
156 | GPIO100_KP_MKIN_0, | 159 | GPIO100_KP_MKIN_0, |
157 | GPIO99_KP_MKIN_5 | WAKEUP_ON_LEVEL_HIGH, | 160 | GPIO99_KP_MKIN_5 | WAKEUP_ON_LEVEL_HIGH, |
161 | |||
162 | /* LCD */ | ||
163 | GPIOxx_LCD_TFT_16BPP, | ||
158 | }; | 164 | }; |
159 | #endif /* CONFIG_MACH_CENTRO */ | 165 | #endif /* CONFIG_MACH_CENTRO */ |
160 | 166 | ||
@@ -328,7 +334,6 @@ static inline void palmtreo_uhc_init(void) {} | |||
328 | /****************************************************************************** | 334 | /****************************************************************************** |
329 | * Vibra and LEDs | 335 | * Vibra and LEDs |
330 | ******************************************************************************/ | 336 | ******************************************************************************/ |
331 | #ifdef CONFIG_MACH_TREO680 | ||
332 | static struct gpio_led treo680_gpio_leds[] = { | 337 | static struct gpio_led treo680_gpio_leds[] = { |
333 | { | 338 | { |
334 | .name = "treo680:vibra:vibra", | 339 | .name = "treo680:vibra:vibra", |
@@ -379,21 +384,17 @@ static struct gpio_led_platform_data centro_gpio_led_info = { | |||
379 | static struct platform_device palmtreo_leds = { | 384 | static struct platform_device palmtreo_leds = { |
380 | .name = "leds-gpio", | 385 | .name = "leds-gpio", |
381 | .id = -1, | 386 | .id = -1, |
382 | .dev = { | ||
383 | .platform_data = &treo680_gpio_led_info, | ||
384 | } | ||
385 | }; | 387 | }; |
386 | 388 | ||
387 | static void __init palmtreo_leds_init(void) | 389 | static void __init palmtreo_leds_init(void) |
388 | { | 390 | { |
389 | if (machine_is_centro()) | 391 | if (machine_is_centro()) |
390 | palmtreo_leds.dev.platform_data = ¢ro_gpio_led_info; | 392 | palmtreo_leds.dev.platform_data = ¢ro_gpio_led_info; |
393 | else if (machine_is_treo680()) | ||
394 | palmtreo_leds.dev.platform_data = &treo680_gpio_led_info; | ||
391 | 395 | ||
392 | platform_device_register(&palmtreo_leds); | 396 | platform_device_register(&palmtreo_leds); |
393 | } | 397 | } |
394 | #else | ||
395 | static inline void palmtreo_leds_init(void) {} | ||
396 | #endif | ||
397 | 398 | ||
398 | /****************************************************************************** | 399 | /****************************************************************************** |
399 | * Machine init | 400 | * Machine init |
@@ -424,10 +425,59 @@ static void __init palmphone_common_init(void) | |||
424 | } | 425 | } |
425 | 426 | ||
426 | #ifdef CONFIG_MACH_TREO680 | 427 | #ifdef CONFIG_MACH_TREO680 |
428 | void __init treo680_gpio_init(void) | ||
429 | { | ||
430 | unsigned int gpio; | ||
431 | |||
432 | /* drive all three lcd gpios high initially */ | ||
433 | const unsigned long lcd_flags = GPIOF_INIT_HIGH | GPIOF_DIR_OUT; | ||
434 | |||
435 | /* | ||
436 | * LCD GPIO initialization... | ||
437 | */ | ||
438 | |||
439 | /* | ||
440 | * This is likely the power to the lcd. Toggling it low/high appears to | ||
441 | * turn the lcd off/on. Can be toggled after lcd is initialized without | ||
442 | * any apparent adverse effects to the lcd operation. Note that this | ||
443 | * gpio line is used by the lcd controller as the L_BIAS signal, but | ||
444 | * treo680 configures it as gpio. | ||
445 | */ | ||
446 | gpio = GPIO_NR_TREO680_LCD_POWER; | ||
447 | if (gpio_request_one(gpio, lcd_flags, "LCD power") < 0) | ||
448 | goto fail; | ||
449 | |||
450 | /* | ||
451 | * These two are called "enables", for lack of a better understanding. | ||
452 | * If either of these are toggled after the lcd is initialized, the | ||
453 | * image becomes degraded. N.B. The IPL shipped with the treo | ||
454 | * configures GPIO_NR_TREO680_LCD_EN_N as output and drives it high. If | ||
455 | * the IPL is ever reprogrammed, this initialization may be need to be | ||
456 | * revisited. | ||
457 | */ | ||
458 | gpio = GPIO_NR_TREO680_LCD_EN; | ||
459 | if (gpio_request_one(gpio, lcd_flags, "LCD enable") < 0) | ||
460 | goto fail; | ||
461 | gpio = GPIO_NR_TREO680_LCD_EN_N; | ||
462 | if (gpio_request_one(gpio, lcd_flags, "LCD enable_n") < 0) | ||
463 | goto fail; | ||
464 | |||
465 | /* driving this low turns LCD on */ | ||
466 | gpio_set_value(GPIO_NR_TREO680_LCD_EN_N, 0); | ||
467 | |||
468 | return; | ||
469 | fail: | ||
470 | pr_err("gpio %d initialization failed\n", gpio); | ||
471 | gpio_free(GPIO_NR_TREO680_LCD_POWER); | ||
472 | gpio_free(GPIO_NR_TREO680_LCD_EN); | ||
473 | gpio_free(GPIO_NR_TREO680_LCD_EN_N); | ||
474 | } | ||
475 | |||
427 | static void __init treo680_init(void) | 476 | static void __init treo680_init(void) |
428 | { | 477 | { |
429 | pxa2xx_mfp_config(ARRAY_AND_SIZE(treo680_pin_config)); | 478 | pxa2xx_mfp_config(ARRAY_AND_SIZE(treo680_pin_config)); |
430 | palmphone_common_init(); | 479 | palmphone_common_init(); |
480 | treo680_gpio_init(); | ||
431 | palm27x_mmc_init(GPIO_NR_TREO_SD_DETECT_N, GPIO_NR_TREO680_SD_READONLY, | 481 | palm27x_mmc_init(GPIO_NR_TREO_SD_DETECT_N, GPIO_NR_TREO680_SD_READONLY, |
432 | GPIO_NR_TREO680_SD_POWER, 0); | 482 | GPIO_NR_TREO680_SD_POWER, 0); |
433 | } | 483 | } |
diff --git a/arch/arm/mach-pxa/smemc.c b/arch/arm/mach-pxa/smemc.c index 79923058d10f..f38aa890b2c9 100644 --- a/arch/arm/mach-pxa/smemc.c +++ b/arch/arm/mach-pxa/smemc.c | |||
@@ -40,6 +40,8 @@ static void pxa3xx_smemc_resume(void) | |||
40 | __raw_writel(csadrcfg[1], CSADRCFG1); | 40 | __raw_writel(csadrcfg[1], CSADRCFG1); |
41 | __raw_writel(csadrcfg[2], CSADRCFG2); | 41 | __raw_writel(csadrcfg[2], CSADRCFG2); |
42 | __raw_writel(csadrcfg[3], CSADRCFG3); | 42 | __raw_writel(csadrcfg[3], CSADRCFG3); |
43 | /* CSMSADRCFG wakes up in its default state (0), so we need to set it */ | ||
44 | __raw_writel(0x2, CSMSADRCFG); | ||
43 | } | 45 | } |
44 | 46 | ||
45 | static struct syscore_ops smemc_syscore_ops = { | 47 | static struct syscore_ops smemc_syscore_ops = { |
@@ -49,8 +51,19 @@ static struct syscore_ops smemc_syscore_ops = { | |||
49 | 51 | ||
50 | static int __init smemc_init(void) | 52 | static int __init smemc_init(void) |
51 | { | 53 | { |
52 | if (cpu_is_pxa3xx()) | 54 | if (cpu_is_pxa3xx()) { |
55 | /* | ||
56 | * The only documentation we have on the | ||
57 | * Chip Select Configuration Register (CSMSADRCFG) is that | ||
58 | * it must be programmed to 0x2. | ||
59 | * Moreover, in the bit definitions, the second bit | ||
60 | * (CSMSADRCFG[1]) is called "SETALWAYS". | ||
61 | * Other bits are reserved in this register. | ||
62 | */ | ||
63 | __raw_writel(0x2, CSMSADRCFG); | ||
64 | |||
53 | register_syscore_ops(&smemc_syscore_ops); | 65 | register_syscore_ops(&smemc_syscore_ops); |
66 | } | ||
54 | 67 | ||
55 | return 0; | 68 | return 0; |
56 | } | 69 | } |
diff --git a/arch/arm/mach-pxa/spitz.c b/arch/arm/mach-pxa/spitz.c index 2073f0e6db0d..7e2cb880daa6 100644 --- a/arch/arm/mach-pxa/spitz.c +++ b/arch/arm/mach-pxa/spitz.c | |||
@@ -732,7 +732,7 @@ static inline void spitz_lcd_init(void) {} | |||
732 | #endif | 732 | #endif |
733 | 733 | ||
734 | /****************************************************************************** | 734 | /****************************************************************************** |
735 | * Framebuffer | 735 | * NAND Flash |
736 | ******************************************************************************/ | 736 | ******************************************************************************/ |
737 | #if defined(CONFIG_MTD_NAND_SHARPSL) || defined(CONFIG_MTD_NAND_SHARPSL_MODULE) | 737 | #if defined(CONFIG_MTD_NAND_SHARPSL) || defined(CONFIG_MTD_NAND_SHARPSL_MODULE) |
738 | static struct mtd_partition spitz_nand_partitions[] = { | 738 | static struct mtd_partition spitz_nand_partitions[] = { |
@@ -858,7 +858,7 @@ static inline void spitz_nor_init(void) {} | |||
858 | #endif | 858 | #endif |
859 | 859 | ||
860 | /****************************************************************************** | 860 | /****************************************************************************** |
861 | * GPIO expander | 861 | * I2C devices |
862 | ******************************************************************************/ | 862 | ******************************************************************************/ |
863 | #if defined(CONFIG_I2C_PXA) || defined(CONFIG_I2C_PXA_MODULE) | 863 | #if defined(CONFIG_I2C_PXA) || defined(CONFIG_I2C_PXA_MODULE) |
864 | static struct pca953x_platform_data akita_pca953x_pdata = { | 864 | static struct pca953x_platform_data akita_pca953x_pdata = { |
diff --git a/arch/arm/mach-s3c24xx/Kconfig b/arch/arm/mach-s3c24xx/Kconfig index 3445c4f42347..7079a70b1ab8 100644 --- a/arch/arm/mach-s3c24xx/Kconfig +++ b/arch/arm/mach-s3c24xx/Kconfig | |||
@@ -226,6 +226,7 @@ config MACH_QT2410 | |||
226 | config ARCH_SMDK2410 | 226 | config ARCH_SMDK2410 |
227 | bool "SMDK2410/A9M2410" | 227 | bool "SMDK2410/A9M2410" |
228 | select S3C24XX_SMDK | 228 | select S3C24XX_SMDK |
229 | select S3C_DEV_USB_HOST | ||
229 | help | 230 | help |
230 | Say Y here if you are using the SMDK2410 or the derived module A9M2410 | 231 | Say Y here if you are using the SMDK2410 or the derived module A9M2410 |
231 | <http://www.fsforth.de> | 232 | <http://www.fsforth.de> |
@@ -273,6 +274,7 @@ config S3C2412_DMA | |||
273 | 274 | ||
274 | config S3C2412_PM | 275 | config S3C2412_PM |
275 | bool | 276 | bool |
277 | select S3C2412_PM_SLEEP | ||
276 | help | 278 | help |
277 | Internal config node to apply S3C2412 power management | 279 | Internal config node to apply S3C2412 power management |
278 | 280 | ||
diff --git a/arch/arm/mach-s3c24xx/common-s3c2443.c b/arch/arm/mach-s3c24xx/common-s3c2443.c index aeb4a24ff3ed..f6b9f2ef01bd 100644 --- a/arch/arm/mach-s3c24xx/common-s3c2443.c +++ b/arch/arm/mach-s3c24xx/common-s3c2443.c | |||
@@ -132,7 +132,7 @@ static struct clk *clk_msysclk_sources[] = { | |||
132 | [3] = &clk_mpllref, | 132 | [3] = &clk_mpllref, |
133 | }; | 133 | }; |
134 | 134 | ||
135 | struct clksrc_clk clk_msysclk = { | 135 | static struct clksrc_clk clk_msysclk = { |
136 | .clk = { | 136 | .clk = { |
137 | .name = "msysclk", | 137 | .name = "msysclk", |
138 | .parent = &clk_xtal, | 138 | .parent = &clk_xtal, |
diff --git a/arch/arm/mach-s3c24xx/common.c b/arch/arm/mach-s3c24xx/common.c index 0c9e9a785ef6..6bcf87f65f9e 100644 --- a/arch/arm/mach-s3c24xx/common.c +++ b/arch/arm/mach-s3c24xx/common.c | |||
@@ -197,7 +197,7 @@ static unsigned long s3c24xx_read_idcode_v4(void) | |||
197 | 197 | ||
198 | static void s3c24xx_default_idle(void) | 198 | static void s3c24xx_default_idle(void) |
199 | { | 199 | { |
200 | unsigned long tmp; | 200 | unsigned long tmp = 0; |
201 | int i; | 201 | int i; |
202 | 202 | ||
203 | /* idle the system by using the idle mode which will wait for an | 203 | /* idle the system by using the idle mode which will wait for an |
diff --git a/arch/arm/mach-s3c24xx/include/mach/debug-macro.S b/arch/arm/mach-s3c24xx/include/mach/debug-macro.S index 4135de87d1f7..13ed33c69113 100644 --- a/arch/arm/mach-s3c24xx/include/mach/debug-macro.S +++ b/arch/arm/mach-s3c24xx/include/mach/debug-macro.S | |||
@@ -40,17 +40,17 @@ | |||
40 | addeq \rd, \rx, #(S3C24XX_PA_GPIO - S3C24XX_PA_UART) | 40 | addeq \rd, \rx, #(S3C24XX_PA_GPIO - S3C24XX_PA_UART) |
41 | addne \rd, \rx, #(S3C24XX_VA_GPIO - S3C24XX_VA_UART) | 41 | addne \rd, \rx, #(S3C24XX_VA_GPIO - S3C24XX_VA_UART) |
42 | bic \rd, \rd, #0xff000 | 42 | bic \rd, \rd, #0xff000 |
43 | ldr \rd, [ \rd, # S3C2410_GSTATUS1 - S3C2410_GPIOREG(0) ] | 43 | ldr \rd, [\rd, # S3C2410_GSTATUS1 - S3C2410_GPIOREG(0)] |
44 | and \rd, \rd, #0x00ff0000 | 44 | and \rd, \rd, #0x00ff0000 |
45 | teq \rd, #0x00440000 @ is it 2440? | 45 | teq \rd, #0x00440000 @ is it 2440? |
46 | 1004: | 46 | 1004: |
47 | ldr \rd, [ \rx, # S3C2410_UFSTAT ] | 47 | ldr \rd, [\rx, # S3C2410_UFSTAT] |
48 | moveq \rd, \rd, lsr #SHIFT_2440TXF | 48 | moveq \rd, \rd, lsr #SHIFT_2440TXF |
49 | tst \rd, #S3C2410_UFSTAT_TXFULL | 49 | tst \rd, #S3C2410_UFSTAT_TXFULL |
50 | .endm | 50 | .endm |
51 | 51 | ||
52 | .macro fifo_full_s3c2410 rd, rx | 52 | .macro fifo_full_s3c2410 rd, rx |
53 | ldr \rd, [ \rx, # S3C2410_UFSTAT ] | 53 | ldr \rd, [\rx, # S3C2410_UFSTAT] |
54 | tst \rd, #S3C2410_UFSTAT_TXFULL | 54 | tst \rd, #S3C2410_UFSTAT_TXFULL |
55 | .endm | 55 | .endm |
56 | 56 | ||
@@ -68,18 +68,18 @@ | |||
68 | addeq \rd, \rx, #(S3C24XX_PA_GPIO - S3C24XX_PA_UART) | 68 | addeq \rd, \rx, #(S3C24XX_PA_GPIO - S3C24XX_PA_UART) |
69 | addne \rd, \rx, #(S3C24XX_VA_GPIO - S3C24XX_VA_UART) | 69 | addne \rd, \rx, #(S3C24XX_VA_GPIO - S3C24XX_VA_UART) |
70 | bic \rd, \rd, #0xff000 | 70 | bic \rd, \rd, #0xff000 |
71 | ldr \rd, [ \rd, # S3C2410_GSTATUS1 - S3C2410_GPIOREG(0) ] | 71 | ldr \rd, [\rd, # S3C2410_GSTATUS1 - S3C2410_GPIOREG(0)] |
72 | and \rd, \rd, #0x00ff0000 | 72 | and \rd, \rd, #0x00ff0000 |
73 | teq \rd, #0x00440000 @ is it 2440? | 73 | teq \rd, #0x00440000 @ is it 2440? |
74 | 74 | ||
75 | 10000: | 75 | 10000: |
76 | ldr \rd, [ \rx, # S3C2410_UFSTAT ] | 76 | ldr \rd, [\rx, # S3C2410_UFSTAT] |
77 | andne \rd, \rd, #S3C2410_UFSTAT_TXMASK | 77 | andne \rd, \rd, #S3C2410_UFSTAT_TXMASK |
78 | andeq \rd, \rd, #S3C2440_UFSTAT_TXMASK | 78 | andeq \rd, \rd, #S3C2440_UFSTAT_TXMASK |
79 | .endm | 79 | .endm |
80 | 80 | ||
81 | .macro fifo_level_s3c2410 rd, rx | 81 | .macro fifo_level_s3c2410 rd, rx |
82 | ldr \rd, [ \rx, # S3C2410_UFSTAT ] | 82 | ldr \rd, [\rx, # S3C2410_UFSTAT] |
83 | and \rd, \rd, #S3C2410_UFSTAT_TXMASK | 83 | and \rd, \rd, #S3C2410_UFSTAT_TXMASK |
84 | .endm | 84 | .endm |
85 | 85 | ||
diff --git a/arch/arm/mach-s3c24xx/include/mach/entry-macro.S b/arch/arm/mach-s3c24xx/include/mach/entry-macro.S index 7615a14773fa..6a21beeba1da 100644 --- a/arch/arm/mach-s3c24xx/include/mach/entry-macro.S +++ b/arch/arm/mach-s3c24xx/include/mach/entry-macro.S | |||
@@ -31,10 +31,10 @@ | |||
31 | 31 | ||
32 | @@ try the interrupt offset register, since it is there | 32 | @@ try the interrupt offset register, since it is there |
33 | 33 | ||
34 | ldr \irqstat, [ \base, #INTPND ] | 34 | ldr \irqstat, [\base, #INTPND ] |
35 | teq \irqstat, #0 | 35 | teq \irqstat, #0 |
36 | beq 1002f | 36 | beq 1002f |
37 | ldr \irqnr, [ \base, #INTOFFSET ] | 37 | ldr \irqnr, [\base, #INTOFFSET ] |
38 | mov \tmp, #1 | 38 | mov \tmp, #1 |
39 | tst \irqstat, \tmp, lsl \irqnr | 39 | tst \irqstat, \tmp, lsl \irqnr |
40 | bne 1001f | 40 | bne 1001f |
diff --git a/arch/arm/mach-s3c24xx/mach-osiris.c b/arch/arm/mach-s3c24xx/mach-osiris.c index bb36d832bd3d..c52100ef2322 100644 --- a/arch/arm/mach-s3c24xx/mach-osiris.c +++ b/arch/arm/mach-s3c24xx/mach-osiris.c | |||
@@ -22,6 +22,7 @@ | |||
22 | #include <linux/clk.h> | 22 | #include <linux/clk.h> |
23 | #include <linux/i2c.h> | 23 | #include <linux/i2c.h> |
24 | #include <linux/io.h> | 24 | #include <linux/io.h> |
25 | #include <linux/platform_device.h> | ||
25 | 26 | ||
26 | #include <linux/i2c/tps65010.h> | 27 | #include <linux/i2c/tps65010.h> |
27 | 28 | ||
diff --git a/arch/arm/mach-s3c24xx/pm-h1940.S b/arch/arm/mach-s3c24xx/pm-h1940.S index c93bf2db9f4d..6183a688012b 100644 --- a/arch/arm/mach-s3c24xx/pm-h1940.S +++ b/arch/arm/mach-s3c24xx/pm-h1940.S | |||
@@ -30,4 +30,4 @@ | |||
30 | 30 | ||
31 | h1940_pm_return: | 31 | h1940_pm_return: |
32 | mov r0, #S3C2410_PA_GPIO | 32 | mov r0, #S3C2410_PA_GPIO |
33 | ldr pc, [ r0, #S3C2410_GSTATUS3 - S3C24XX_VA_GPIO ] | 33 | ldr pc, [r0, #S3C2410_GSTATUS3 - S3C24XX_VA_GPIO] |
diff --git a/arch/arm/mach-s3c24xx/pm-s3c2412.c b/arch/arm/mach-s3c24xx/pm-s3c2412.c index c60f67a75aff..f5dc2b254a5a 100644 --- a/arch/arm/mach-s3c24xx/pm-s3c2412.c +++ b/arch/arm/mach-s3c24xx/pm-s3c2412.c | |||
@@ -48,7 +48,8 @@ static int s3c2412_cpu_suspend(unsigned long arg) | |||
48 | 48 | ||
49 | s3c2412_sleep_enter(); | 49 | s3c2412_sleep_enter(); |
50 | 50 | ||
51 | panic("sleep resumed to originator?"); | 51 | pr_info("Failed to suspend the system\n"); |
52 | return 1; /* Aborting suspend */ | ||
52 | } | 53 | } |
53 | 54 | ||
54 | static void s3c2412_pm_prepare(void) | 55 | static void s3c2412_pm_prepare(void) |
diff --git a/arch/arm/mach-s3c24xx/pm-s3c2416.c b/arch/arm/mach-s3c24xx/pm-s3c2416.c index 1bd4817b8eb8..1a9e8dd194ff 100644 --- a/arch/arm/mach-s3c24xx/pm-s3c2416.c +++ b/arch/arm/mach-s3c24xx/pm-s3c2416.c | |||
@@ -34,7 +34,8 @@ static int s3c2416_cpu_suspend(unsigned long arg) | |||
34 | 34 | ||
35 | s3c2412_sleep_enter(); | 35 | s3c2412_sleep_enter(); |
36 | 36 | ||
37 | panic("sleep resumed to originator?"); | 37 | pr_info("Failed to suspend the system\n"); |
38 | return 1; /* Aborting suspend */ | ||
38 | } | 39 | } |
39 | 40 | ||
40 | static void s3c2416_pm_prepare(void) | 41 | static void s3c2416_pm_prepare(void) |
diff --git a/arch/arm/mach-s3c24xx/sleep-s3c2410.S b/arch/arm/mach-s3c24xx/sleep-s3c2410.S index dd5b6388a5a5..65200ae72c90 100644 --- a/arch/arm/mach-s3c24xx/sleep-s3c2410.S +++ b/arch/arm/mach-s3c24xx/sleep-s3c2410.S | |||
@@ -45,9 +45,9 @@ ENTRY(s3c2410_cpu_suspend) | |||
45 | ldr r4, =S3C2410_REFRESH | 45 | ldr r4, =S3C2410_REFRESH |
46 | ldr r5, =S3C24XX_MISCCR | 46 | ldr r5, =S3C24XX_MISCCR |
47 | ldr r6, =S3C2410_CLKCON | 47 | ldr r6, =S3C2410_CLKCON |
48 | ldr r7, [ r4 ] @ get REFRESH (and ensure in TLB) | 48 | ldr r7, [r4] @ get REFRESH (and ensure in TLB) |
49 | ldr r8, [ r5 ] @ get MISCCR (and ensure in TLB) | 49 | ldr r8, [r5] @ get MISCCR (and ensure in TLB) |
50 | ldr r9, [ r6 ] @ get CLKCON (and ensure in TLB) | 50 | ldr r9, [r6] @ get CLKCON (and ensure in TLB) |
51 | 51 | ||
52 | orr r7, r7, #S3C2410_REFRESH_SELF @ SDRAM sleep command | 52 | orr r7, r7, #S3C2410_REFRESH_SELF @ SDRAM sleep command |
53 | orr r8, r8, #S3C2410_MISCCR_SDSLEEP @ SDRAM power-down signals | 53 | orr r8, r8, #S3C2410_MISCCR_SDSLEEP @ SDRAM power-down signals |
@@ -61,8 +61,8 @@ ENTRY(s3c2410_cpu_suspend) | |||
61 | @@ align next bit of code to cache line | 61 | @@ align next bit of code to cache line |
62 | .align 5 | 62 | .align 5 |
63 | s3c2410_do_sleep: | 63 | s3c2410_do_sleep: |
64 | streq r7, [ r4 ] @ SDRAM sleep command | 64 | streq r7, [r4] @ SDRAM sleep command |
65 | streq r8, [ r5 ] @ SDRAM power-down config | 65 | streq r8, [r5] @ SDRAM power-down config |
66 | streq r9, [ r6 ] @ CPU sleep | 66 | streq r9, [r6] @ CPU sleep |
67 | 1: beq 1b | 67 | 1: beq 1b |
68 | mov pc, r14 | 68 | mov pc, r14 |
diff --git a/arch/arm/mach-s3c24xx/sleep-s3c2412.S b/arch/arm/mach-s3c24xx/sleep-s3c2412.S index c82418ed714d..5adaceb7da13 100644 --- a/arch/arm/mach-s3c24xx/sleep-s3c2412.S +++ b/arch/arm/mach-s3c24xx/sleep-s3c2412.S | |||
@@ -57,12 +57,12 @@ s3c2412_sleep_enter1: | |||
57 | * retry, as simply returning causes the system to lock. | 57 | * retry, as simply returning causes the system to lock. |
58 | */ | 58 | */ |
59 | 59 | ||
60 | ldrne r9, [ r1 ] | 60 | ldrne r9, [r1] |
61 | strne r9, [ r1 ] | 61 | strne r9, [r1] |
62 | ldrne r9, [ r2 ] | 62 | ldrne r9, [r2] |
63 | strne r9, [ r2 ] | 63 | strne r9, [r2] |
64 | ldrne r9, [ r3 ] | 64 | ldrne r9, [r3] |
65 | strne r9, [ r3 ] | 65 | strne r9, [r3] |
66 | bne s3c2412_sleep_enter1 | 66 | bne s3c2412_sleep_enter1 |
67 | 67 | ||
68 | mov pc, r14 | 68 | mov pc, r14 |
diff --git a/arch/arm/mach-s3c64xx/pm.c b/arch/arm/mach-s3c64xx/pm.c index d2e1a16690bd..ce8499063228 100644 --- a/arch/arm/mach-s3c64xx/pm.c +++ b/arch/arm/mach-s3c64xx/pm.c | |||
@@ -296,7 +296,8 @@ static int s3c64xx_cpu_suspend(unsigned long arg) | |||
296 | 296 | ||
297 | /* we should never get past here */ | 297 | /* we should never get past here */ |
298 | 298 | ||
299 | panic("sleep resumed to originator?"); | 299 | pr_info("Failed to suspend the system\n"); |
300 | return 1; /* Aborting suspend */ | ||
300 | } | 301 | } |
301 | 302 | ||
302 | /* mapping of interrupts to parts of the wakeup mask */ | 303 | /* mapping of interrupts to parts of the wakeup mask */ |
diff --git a/arch/arm/mach-s5p64x0/pm.c b/arch/arm/mach-s5p64x0/pm.c index 9cba18bfe47b..97c2a08ad490 100644 --- a/arch/arm/mach-s5p64x0/pm.c +++ b/arch/arm/mach-s5p64x0/pm.c | |||
@@ -103,8 +103,8 @@ static int s5p64x0_cpu_suspend(unsigned long arg) | |||
103 | "mcr p15, 0, %0, c7, c10, 4\n\t" | 103 | "mcr p15, 0, %0, c7, c10, 4\n\t" |
104 | "mcr p15, 0, %0, c7, c0, 4" : : "r" (tmp)); | 104 | "mcr p15, 0, %0, c7, c0, 4" : : "r" (tmp)); |
105 | 105 | ||
106 | /* we should never get past here */ | 106 | pr_info("Failed to suspend the system\n"); |
107 | panic("sleep resumed to originator?"); | 107 | return 1; /* Aborting suspend */ |
108 | } | 108 | } |
109 | 109 | ||
110 | /* mapping of interrupts to parts of the wakeup mask */ | 110 | /* mapping of interrupts to parts of the wakeup mask */ |
diff --git a/arch/arm/mach-s5pv210/include/mach/uncompress.h b/arch/arm/mach-s5pv210/include/mach/uncompress.h index 08ff2fda1fb9..ef977ea8546d 100644 --- a/arch/arm/mach-s5pv210/include/mach/uncompress.h +++ b/arch/arm/mach-s5pv210/include/mach/uncompress.h | |||
@@ -19,6 +19,8 @@ | |||
19 | static void arch_detect_cpu(void) | 19 | static void arch_detect_cpu(void) |
20 | { | 20 | { |
21 | /* we do not need to do any cpu detection here at the moment. */ | 21 | /* we do not need to do any cpu detection here at the moment. */ |
22 | fifo_mask = S5PV210_UFSTAT_TXMASK; | ||
23 | fifo_max = 63 << S5PV210_UFSTAT_TXSHIFT; | ||
22 | } | 24 | } |
23 | 25 | ||
24 | #endif /* __ASM_ARCH_UNCOMPRESS_H */ | 26 | #endif /* __ASM_ARCH_UNCOMPRESS_H */ |
diff --git a/arch/arm/mach-s5pv210/pm.c b/arch/arm/mach-s5pv210/pm.c index 736bfb103cbc..2b68a67b6e95 100644 --- a/arch/arm/mach-s5pv210/pm.c +++ b/arch/arm/mach-s5pv210/pm.c | |||
@@ -104,8 +104,8 @@ static int s5pv210_cpu_suspend(unsigned long arg) | |||
104 | "mcr p15, 0, %0, c7, c10, 4\n\t" | 104 | "mcr p15, 0, %0, c7, c10, 4\n\t" |
105 | "wfi" : : "r" (tmp)); | 105 | "wfi" : : "r" (tmp)); |
106 | 106 | ||
107 | /* we should never get past here */ | 107 | pr_info("Failed to suspend the system\n"); |
108 | panic("sleep resumed to originator?"); | 108 | return 1; /* Aborting suspend */ |
109 | } | 109 | } |
110 | 110 | ||
111 | static void s5pv210_pm_prepare(void) | 111 | static void s5pv210_pm_prepare(void) |
diff --git a/arch/arm/mach-sa1100/lart.c b/arch/arm/mach-sa1100/lart.c index f69f78fc3ddd..bca7e60b24d3 100644 --- a/arch/arm/mach-sa1100/lart.c +++ b/arch/arm/mach-sa1100/lart.c | |||
@@ -24,9 +24,6 @@ | |||
24 | 24 | ||
25 | #include "generic.h" | 25 | #include "generic.h" |
26 | 26 | ||
27 | |||
28 | #warning "include/asm/arch-sa1100/ide.h needs fixing for lart" | ||
29 | |||
30 | static struct mcp_plat_data lart_mcp_data = { | 27 | static struct mcp_plat_data lart_mcp_data = { |
31 | .mccr0 = MCCR0_ADM, | 28 | .mccr0 = MCCR0_ADM, |
32 | .sclk_rate = 11981000, | 29 | .sclk_rate = 11981000, |
diff --git a/arch/arm/mach-ux500/cpu.c b/arch/arm/mach-ux500/cpu.c index 721e7b4275f3..d4dcec53171a 100644 --- a/arch/arm/mach-ux500/cpu.c +++ b/arch/arm/mach-ux500/cpu.c | |||
@@ -71,13 +71,11 @@ void __init ux500_init_irq(void) | |||
71 | * Init clocks here so that they are available for system timer | 71 | * Init clocks here so that they are available for system timer |
72 | * initialization. | 72 | * initialization. |
73 | */ | 73 | */ |
74 | if (cpu_is_u8500_family()) | 74 | if (cpu_is_u8500_family() || cpu_is_u9540()) |
75 | db8500_prcmu_early_init(); | 75 | db8500_prcmu_early_init(); |
76 | 76 | ||
77 | if (cpu_is_u8500_family()) | 77 | if (cpu_is_u8500_family() || cpu_is_u9540()) |
78 | u8500_clk_init(); | 78 | u8500_clk_init(); |
79 | else if (cpu_is_u9540()) | ||
80 | u9540_clk_init(); | ||
81 | else if (cpu_is_u8540()) | 79 | else if (cpu_is_u8540()) |
82 | u8540_clk_init(); | 80 | u8540_clk_init(); |
83 | } | 81 | } |
diff --git a/arch/arm/mach-ux500/cpuidle.c b/arch/arm/mach-ux500/cpuidle.c index b54884bd2549..ce9149302cc3 100644 --- a/arch/arm/mach-ux500/cpuidle.c +++ b/arch/arm/mach-ux500/cpuidle.c | |||
@@ -40,8 +40,10 @@ static inline int ux500_enter_idle(struct cpuidle_device *dev, | |||
40 | goto wfi; | 40 | goto wfi; |
41 | 41 | ||
42 | /* decouple the gic from the A9 cores */ | 42 | /* decouple the gic from the A9 cores */ |
43 | if (prcmu_gic_decouple()) | 43 | if (prcmu_gic_decouple()) { |
44 | spin_unlock(&master_lock); | ||
44 | goto out; | 45 | goto out; |
46 | } | ||
45 | 47 | ||
46 | /* If an error occur, we will have to recouple the gic | 48 | /* If an error occur, we will have to recouple the gic |
47 | * manually */ | 49 | * manually */ |
diff --git a/arch/arm/mach-versatile/Kconfig b/arch/arm/mach-versatile/Kconfig index 63d8e9f81b99..1dba3688275f 100644 --- a/arch/arm/mach-versatile/Kconfig +++ b/arch/arm/mach-versatile/Kconfig | |||
@@ -25,4 +25,9 @@ config MACH_VERSATILE_DT | |||
25 | Include support for the ARM(R) Versatile/PB platform, | 25 | Include support for the ARM(R) Versatile/PB platform, |
26 | using the device tree for discovery | 26 | using the device tree for discovery |
27 | 27 | ||
28 | config MACH_VERSATILE_AUTO | ||
29 | def_bool y | ||
30 | depends on !ARCH_VERSATILE_PB && !MACH_VERSATILE_AB | ||
31 | select MACH_VERSATILE_DT | ||
32 | |||
28 | endmenu | 33 | endmenu |
diff --git a/arch/arm/mach-versatile/core.c b/arch/arm/mach-versatile/core.c index a78827b70270..43478c299cc8 100644 --- a/arch/arm/mach-versatile/core.c +++ b/arch/arm/mach-versatile/core.c | |||
@@ -127,7 +127,7 @@ void __init versatile_init_irq(void) | |||
127 | writel(PIC_MASK, VA_SIC_BASE + SIC_INT_PIC_ENABLE); | 127 | writel(PIC_MASK, VA_SIC_BASE + SIC_INT_PIC_ENABLE); |
128 | } | 128 | } |
129 | 129 | ||
130 | static struct map_desc versatile_io_desc[] __initdata = { | 130 | static struct map_desc versatile_io_desc[] __initdata __maybe_unused = { |
131 | { | 131 | { |
132 | .virtual = IO_ADDRESS(VERSATILE_SYS_BASE), | 132 | .virtual = IO_ADDRESS(VERSATILE_SYS_BASE), |
133 | .pfn = __phys_to_pfn(VERSATILE_SYS_BASE), | 133 | .pfn = __phys_to_pfn(VERSATILE_SYS_BASE), |
diff --git a/arch/arm/mach-w90x900/include/mach/entry-macro.S b/arch/arm/mach-w90x900/include/mach/entry-macro.S index e286daca6827..0ff612ac95ba 100644 --- a/arch/arm/mach-w90x900/include/mach/entry-macro.S +++ b/arch/arm/mach-w90x900/include/mach/entry-macro.S | |||
@@ -19,8 +19,8 @@ | |||
19 | 19 | ||
20 | mov \base, #AIC_BA | 20 | mov \base, #AIC_BA |
21 | 21 | ||
22 | ldr \irqnr, [ \base, #AIC_IPER] | 22 | ldr \irqnr, [\base, #AIC_IPER] |
23 | ldr \irqnr, [ \base, #AIC_ISNR] | 23 | ldr \irqnr, [\base, #AIC_ISNR] |
24 | cmp \irqnr, #0 | 24 | cmp \irqnr, #0 |
25 | 25 | ||
26 | .endm | 26 | .endm |
diff --git a/arch/arm/plat-omap/dma.c b/arch/arm/plat-omap/dma.c index 4136b20cba3c..e06c34bdc34a 100644 --- a/arch/arm/plat-omap/dma.c +++ b/arch/arm/plat-omap/dma.c | |||
@@ -2019,7 +2019,7 @@ static int omap_system_dma_probe(struct platform_device *pdev) | |||
2019 | errata = p->errata; | 2019 | errata = p->errata; |
2020 | 2020 | ||
2021 | if ((d->dev_caps & RESERVE_CHANNEL) && omap_dma_reserve_channels | 2021 | if ((d->dev_caps & RESERVE_CHANNEL) && omap_dma_reserve_channels |
2022 | && (omap_dma_reserve_channels <= dma_lch_count)) | 2022 | && (omap_dma_reserve_channels < d->lch_count)) |
2023 | d->lch_count = omap_dma_reserve_channels; | 2023 | d->lch_count = omap_dma_reserve_channels; |
2024 | 2024 | ||
2025 | dma_lch_count = d->lch_count; | 2025 | dma_lch_count = d->lch_count; |
diff --git a/arch/arm/plat-orion/mpp.c b/arch/arm/plat-orion/mpp.c index e686fe76a96b..7310bcfb299f 100644 --- a/arch/arm/plat-orion/mpp.c +++ b/arch/arm/plat-orion/mpp.c | |||
@@ -49,7 +49,7 @@ void __init orion_mpp_conf(unsigned int *mpp_list, unsigned int variant_mask, | |||
49 | "number (%u)\n", num); | 49 | "number (%u)\n", num); |
50 | continue; | 50 | continue; |
51 | } | 51 | } |
52 | if (variant_mask & !(*mpp_list & variant_mask)) { | 52 | if (variant_mask && !(*mpp_list & variant_mask)) { |
53 | printk(KERN_WARNING | 53 | printk(KERN_WARNING |
54 | "orion_mpp_conf: requested MPP%u config " | 54 | "orion_mpp_conf: requested MPP%u config " |
55 | "unavailable on this hardware\n", num); | 55 | "unavailable on this hardware\n", num); |
diff --git a/arch/arm/plat-samsung/include/plat/debug-macro.S b/arch/arm/plat-samsung/include/plat/debug-macro.S index 207e275362a8..f3a9cff6d5d4 100644 --- a/arch/arm/plat-samsung/include/plat/debug-macro.S +++ b/arch/arm/plat-samsung/include/plat/debug-macro.S | |||
@@ -14,12 +14,12 @@ | |||
14 | /* The S5PV210/S5PC110 implementations are as belows. */ | 14 | /* The S5PV210/S5PC110 implementations are as belows. */ |
15 | 15 | ||
16 | .macro fifo_level_s5pv210 rd, rx | 16 | .macro fifo_level_s5pv210 rd, rx |
17 | ldr \rd, [ \rx, # S3C2410_UFSTAT ] | 17 | ldr \rd, [\rx, # S3C2410_UFSTAT] |
18 | and \rd, \rd, #S5PV210_UFSTAT_TXMASK | 18 | and \rd, \rd, #S5PV210_UFSTAT_TXMASK |
19 | .endm | 19 | .endm |
20 | 20 | ||
21 | .macro fifo_full_s5pv210 rd, rx | 21 | .macro fifo_full_s5pv210 rd, rx |
22 | ldr \rd, [ \rx, # S3C2410_UFSTAT ] | 22 | ldr \rd, [\rx, # S3C2410_UFSTAT] |
23 | tst \rd, #S5PV210_UFSTAT_TXFULL | 23 | tst \rd, #S5PV210_UFSTAT_TXFULL |
24 | .endm | 24 | .endm |
25 | 25 | ||
@@ -27,7 +27,7 @@ | |||
27 | * most widely re-used */ | 27 | * most widely re-used */ |
28 | 28 | ||
29 | .macro fifo_level_s3c2440 rd, rx | 29 | .macro fifo_level_s3c2440 rd, rx |
30 | ldr \rd, [ \rx, # S3C2410_UFSTAT ] | 30 | ldr \rd, [\rx, # S3C2410_UFSTAT] |
31 | and \rd, \rd, #S3C2440_UFSTAT_TXMASK | 31 | and \rd, \rd, #S3C2440_UFSTAT_TXMASK |
32 | .endm | 32 | .endm |
33 | 33 | ||
@@ -36,7 +36,7 @@ | |||
36 | #endif | 36 | #endif |
37 | 37 | ||
38 | .macro fifo_full_s3c2440 rd, rx | 38 | .macro fifo_full_s3c2440 rd, rx |
39 | ldr \rd, [ \rx, # S3C2410_UFSTAT ] | 39 | ldr \rd, [\rx, # S3C2410_UFSTAT] |
40 | tst \rd, #S3C2440_UFSTAT_TXFULL | 40 | tst \rd, #S3C2440_UFSTAT_TXFULL |
41 | .endm | 41 | .endm |
42 | 42 | ||
@@ -45,11 +45,11 @@ | |||
45 | #endif | 45 | #endif |
46 | 46 | ||
47 | .macro senduart,rd,rx | 47 | .macro senduart,rd,rx |
48 | strb \rd, [\rx, # S3C2410_UTXH ] | 48 | strb \rd, [\rx, # S3C2410_UTXH] |
49 | .endm | 49 | .endm |
50 | 50 | ||
51 | .macro busyuart, rd, rx | 51 | .macro busyuart, rd, rx |
52 | ldr \rd, [ \rx, # S3C2410_UFCON ] | 52 | ldr \rd, [\rx, # S3C2410_UFCON] |
53 | tst \rd, #S3C2410_UFCON_FIFOMODE @ fifo enabled? | 53 | tst \rd, #S3C2410_UFCON_FIFOMODE @ fifo enabled? |
54 | beq 1001f @ | 54 | beq 1001f @ |
55 | @ FIFO enabled... | 55 | @ FIFO enabled... |
@@ -60,7 +60,7 @@ | |||
60 | 60 | ||
61 | 1001: | 61 | 1001: |
62 | @ busy waiting for non fifo | 62 | @ busy waiting for non fifo |
63 | ldr \rd, [ \rx, # S3C2410_UTRSTAT ] | 63 | ldr \rd, [\rx, # S3C2410_UTRSTAT] |
64 | tst \rd, #S3C2410_UTRSTAT_TXFE | 64 | tst \rd, #S3C2410_UTRSTAT_TXFE |
65 | beq 1001b | 65 | beq 1001b |
66 | 66 | ||
@@ -68,7 +68,7 @@ | |||
68 | .endm | 68 | .endm |
69 | 69 | ||
70 | .macro waituart,rd,rx | 70 | .macro waituart,rd,rx |
71 | ldr \rd, [ \rx, # S3C2410_UFCON ] | 71 | ldr \rd, [\rx, # S3C2410_UFCON] |
72 | tst \rd, #S3C2410_UFCON_FIFOMODE @ fifo enabled? | 72 | tst \rd, #S3C2410_UFCON_FIFOMODE @ fifo enabled? |
73 | beq 1001f @ | 73 | beq 1001f @ |
74 | @ FIFO enabled... | 74 | @ FIFO enabled... |
@@ -79,7 +79,7 @@ | |||
79 | b 1002f | 79 | b 1002f |
80 | 1001: | 80 | 1001: |
81 | @ idle waiting for non fifo | 81 | @ idle waiting for non fifo |
82 | ldr \rd, [ \rx, # S3C2410_UTRSTAT ] | 82 | ldr \rd, [\rx, # S3C2410_UTRSTAT] |
83 | tst \rd, #S3C2410_UTRSTAT_TXFE | 83 | tst \rd, #S3C2410_UTRSTAT_TXFE |
84 | beq 1001b | 84 | beq 1001b |
85 | 85 | ||
diff --git a/arch/arm/plat-samsung/include/plat/fimc-core.h b/arch/arm/plat-samsung/include/plat/fimc-core.h index 945a99d59563..1d6cb2b8b094 100644 --- a/arch/arm/plat-samsung/include/plat/fimc-core.h +++ b/arch/arm/plat-samsung/include/plat/fimc-core.h | |||
@@ -43,6 +43,8 @@ static inline void s3c_fimc_setname(int id, char *name) | |||
43 | s5p_device_fimc3.name = name; | 43 | s5p_device_fimc3.name = name; |
44 | break; | 44 | break; |
45 | #endif | 45 | #endif |
46 | default: | ||
47 | break; | ||
46 | } | 48 | } |
47 | } | 49 | } |
48 | 50 | ||
diff --git a/arch/arm/plat-samsung/include/plat/sdhci.h b/arch/arm/plat-samsung/include/plat/sdhci.h index 151cc9195cf6..9b87f38fc4f4 100644 --- a/arch/arm/plat-samsung/include/plat/sdhci.h +++ b/arch/arm/plat-samsung/include/plat/sdhci.h | |||
@@ -374,6 +374,8 @@ static inline void s3c_sdhci_setname(int id, char *name) | |||
374 | s3c_device_hsmmc3.name = name; | 374 | s3c_device_hsmmc3.name = name; |
375 | break; | 375 | break; |
376 | #endif | 376 | #endif |
377 | default: | ||
378 | break; | ||
377 | } | 379 | } |
378 | } | 380 | } |
379 | 381 | ||
diff --git a/arch/arm/plat-samsung/pm.c b/arch/arm/plat-samsung/pm.c index 15070284343e..002b1472293b 100644 --- a/arch/arm/plat-samsung/pm.c +++ b/arch/arm/plat-samsung/pm.c | |||
@@ -51,7 +51,7 @@ void s3c_pm_dbg(const char *fmt, ...) | |||
51 | char buff[256]; | 51 | char buff[256]; |
52 | 52 | ||
53 | va_start(va, fmt); | 53 | va_start(va, fmt); |
54 | vsprintf(buff, fmt, va); | 54 | vsnprintf(buff, sizeof(buff), fmt, va); |
55 | va_end(va); | 55 | va_end(va); |
56 | 56 | ||
57 | printascii(buff); | 57 | printascii(buff); |
@@ -243,6 +243,7 @@ int (*pm_cpu_sleep)(unsigned long); | |||
243 | 243 | ||
244 | static int s3c_pm_enter(suspend_state_t state) | 244 | static int s3c_pm_enter(suspend_state_t state) |
245 | { | 245 | { |
246 | int ret; | ||
246 | /* ensure the debug is initialised (if enabled) */ | 247 | /* ensure the debug is initialised (if enabled) */ |
247 | 248 | ||
248 | s3c_pm_debug_init(); | 249 | s3c_pm_debug_init(); |
@@ -300,7 +301,9 @@ static int s3c_pm_enter(suspend_state_t state) | |||
300 | * we resume as it saves its own register state and restores it | 301 | * we resume as it saves its own register state and restores it |
301 | * during the resume. */ | 302 | * during the resume. */ |
302 | 303 | ||
303 | cpu_suspend(0, pm_cpu_sleep); | 304 | ret = cpu_suspend(0, pm_cpu_sleep); |
305 | if (ret) | ||
306 | return ret; | ||
304 | 307 | ||
305 | /* restore the system state */ | 308 | /* restore the system state */ |
306 | 309 | ||
diff --git a/arch/arm/plat-spear/Kconfig b/arch/arm/plat-spear/Kconfig index 87dbd81bdf51..739d016eb273 100644 --- a/arch/arm/plat-spear/Kconfig +++ b/arch/arm/plat-spear/Kconfig | |||
@@ -10,6 +10,7 @@ choice | |||
10 | 10 | ||
11 | config ARCH_SPEAR13XX | 11 | config ARCH_SPEAR13XX |
12 | bool "ST SPEAr13xx with Device Tree" | 12 | bool "ST SPEAr13xx with Device Tree" |
13 | select ARCH_HAVE_CPUFREQ | ||
13 | select ARM_GIC | 14 | select ARM_GIC |
14 | select CPU_V7 | 15 | select CPU_V7 |
15 | select GPIO_SPEAR_SPICS | 16 | select GPIO_SPEAR_SPICS |
diff --git a/drivers/gpio/gpio-samsung.c b/drivers/gpio/gpio-samsung.c index 76be7eed79de..b2016ed941ac 100644 --- a/drivers/gpio/gpio-samsung.c +++ b/drivers/gpio/gpio-samsung.c | |||
@@ -3023,9 +3023,9 @@ static __init int samsung_gpiolib_init(void) | |||
3023 | */ | 3023 | */ |
3024 | struct device_node *pctrl_np; | 3024 | struct device_node *pctrl_np; |
3025 | static const struct of_device_id exynos_pinctrl_ids[] = { | 3025 | static const struct of_device_id exynos_pinctrl_ids[] = { |
3026 | { .compatible = "samsung,pinctrl-exynos4210", }, | 3026 | { .compatible = "samsung,exynos4210-pinctrl", }, |
3027 | { .compatible = "samsung,pinctrl-exynos4x12", }, | 3027 | { .compatible = "samsung,exynos4x12-pinctrl", }, |
3028 | { .compatible = "samsung,pinctrl-exynos5440", }, | 3028 | { .compatible = "samsung,exynos5440-pinctrl", }, |
3029 | }; | 3029 | }; |
3030 | for_each_matching_node(pctrl_np, exynos_pinctrl_ids) | 3030 | for_each_matching_node(pctrl_np, exynos_pinctrl_ids) |
3031 | if (pctrl_np && of_device_is_available(pctrl_np)) | 3031 | if (pctrl_np && of_device_is_available(pctrl_np)) |
diff --git a/drivers/mfd/vexpress-sysreg.c b/drivers/mfd/vexpress-sysreg.c index 77048b18439e..558c2928f261 100644 --- a/drivers/mfd/vexpress-sysreg.c +++ b/drivers/mfd/vexpress-sysreg.c | |||
@@ -313,7 +313,7 @@ static void vexpress_sysreg_config_complete(unsigned long data) | |||
313 | } | 313 | } |
314 | 314 | ||
315 | 315 | ||
316 | void __init vexpress_sysreg_setup(struct device_node *node) | 316 | void vexpress_sysreg_setup(struct device_node *node) |
317 | { | 317 | { |
318 | if (WARN_ON(!vexpress_sysreg_base)) | 318 | if (WARN_ON(!vexpress_sysreg_base)) |
319 | return; | 319 | return; |
diff --git a/drivers/pinctrl/pinctrl-samsung.c b/drivers/pinctrl/pinctrl-samsung.c index 5f8441ef59ca..f206df175656 100644 --- a/drivers/pinctrl/pinctrl-samsung.c +++ b/drivers/pinctrl/pinctrl-samsung.c | |||
@@ -944,9 +944,9 @@ static int samsung_pinctrl_probe(struct platform_device *pdev) | |||
944 | } | 944 | } |
945 | 945 | ||
946 | static const struct of_device_id samsung_pinctrl_dt_match[] = { | 946 | static const struct of_device_id samsung_pinctrl_dt_match[] = { |
947 | { .compatible = "samsung,pinctrl-exynos4210", | 947 | { .compatible = "samsung,exynos4210-pinctrl", |
948 | .data = (void *)exynos4210_pin_ctrl }, | 948 | .data = (void *)exynos4210_pin_ctrl }, |
949 | { .compatible = "samsung,pinctrl-exynos4x12", | 949 | { .compatible = "samsung,exynos4x12-pinctrl", |
950 | .data = (void *)exynos4x12_pin_ctrl }, | 950 | .data = (void *)exynos4x12_pin_ctrl }, |
951 | {}, | 951 | {}, |
952 | }; | 952 | }; |
diff --git a/include/linux/platform_data/i2c-s3c2410.h b/include/linux/platform_data/i2c-s3c2410.h index 51d52e767a19..2a50048c1c44 100644 --- a/include/linux/platform_data/i2c-s3c2410.h +++ b/include/linux/platform_data/i2c-s3c2410.h | |||
@@ -15,6 +15,8 @@ | |||
15 | 15 | ||
16 | #define S3C_IICFLG_FILTER (1<<0) /* enable s3c2440 filter */ | 16 | #define S3C_IICFLG_FILTER (1<<0) /* enable s3c2440 filter */ |
17 | 17 | ||
18 | struct platform_device; | ||
19 | |||
18 | /** | 20 | /** |
19 | * struct s3c2410_platform_i2c - Platform data for s3c I2C. | 21 | * struct s3c2410_platform_i2c - Platform data for s3c I2C. |
20 | * @bus_num: The bus number to use (if possible). | 22 | * @bus_num: The bus number to use (if possible). |
diff --git a/scripts/sortextable.h b/scripts/sortextable.h index e4fd45b7e456..f5eb43d42926 100644 --- a/scripts/sortextable.h +++ b/scripts/sortextable.h | |||
@@ -182,7 +182,7 @@ do_func(Elf_Ehdr *ehdr, char const *const fname, table_sort_t custom_sort) | |||
182 | _r(&sort_needed_sym->st_value) - | 182 | _r(&sort_needed_sym->st_value) - |
183 | _r(&sort_needed_sec->sh_addr); | 183 | _r(&sort_needed_sec->sh_addr); |
184 | 184 | ||
185 | #if 1 | 185 | #if 0 |
186 | printf("sort done marker at %lx\n", | 186 | printf("sort done marker at %lx\n", |
187 | (unsigned long)((char *)sort_done_location - (char *)ehdr)); | 187 | (unsigned long)((char *)sort_done_location - (char *)ehdr)); |
188 | #endif | 188 | #endif |