diff options
author | Olof Johansson <olof@lixom.net> | 2015-04-03 17:56:56 -0400 |
---|---|---|
committer | Olof Johansson <olof@lixom.net> | 2015-04-03 17:56:56 -0400 |
commit | 30a5c1894a4c932f5a417f0a6ec369c7da81204b (patch) | |
tree | bdcc76efc154539409470f8c6c11fefca22aeed8 | |
parent | 77e3c09e451ae78b64f7b89fc1690804da726787 (diff) | |
parent | a11176e65b8727158bc355ca0cb00bf70cd69e48 (diff) |
Merge tag 'samsung-fixes-v4.1' of git://git.kernel.org/pub/scm/linux/kernel/git/kgene/linux-samsung into next/fixes-non-critical
Merge "Samsung non-critical fixes for v4.1" from Kukjin Kim:
- mostly trivial build fixes with random configurations
from Arnd Bergmann
for s3c24xx:
avoid a Kconfig warning and fix header file inclusions,
and fix building without PM_SLEEP and use SAMSUNG_WAKEMASK
for s3c64xx:
fix __initdata section mismatch and add I2C dependencies,
and fix building with PM_SLEEP
* tag 'samsung-fixes-v4.1' of git://git.kernel.org/pub/scm/linux/kernel/git/kgene/linux-samsung:
ARM: S3C24XX: avoid a Kconfig warning
ARM: S3C24XX: fix header file inclusions
ARM: S3C24XX: fix building without PM_SLEEP
ARM: S3C24XX: use SAMSUNG_WAKEMASK for s3c2416
ARM: S3C64XX: fix __initdata section mismatch
ARM: S3C64XX: fix building without CONFIG_PM_SLEEP
ARM: S3C64XX: add I2C dependencies where needed
Signed-off-by: Olof Johansson <olof@lixom.net>
-rw-r--r-- | arch/arm/mach-s3c24xx/Kconfig | 19 | ||||
-rw-r--r-- | arch/arm/mach-s3c24xx/Makefile | 3 | ||||
-rw-r--r-- | arch/arm/mach-s3c24xx/include/mach/pm-core.h | 24 | ||||
-rw-r--r-- | arch/arm/mach-s3c24xx/pm-s3c2416.c | 3 | ||||
-rw-r--r-- | arch/arm/mach-s3c24xx/pm.c | 6 | ||||
-rw-r--r-- | arch/arm/mach-s3c24xx/s3c2410.c | 2 | ||||
-rw-r--r-- | arch/arm/mach-s3c24xx/s3c2412.c | 2 | ||||
-rw-r--r-- | arch/arm/mach-s3c24xx/s3c2416.c | 2 | ||||
-rw-r--r-- | arch/arm/mach-s3c24xx/s3c2440.c | 4 | ||||
-rw-r--r-- | arch/arm/mach-s3c24xx/s3c2442.c | 4 | ||||
-rw-r--r-- | arch/arm/mach-s3c24xx/s3c244x.c | 7 | ||||
-rw-r--r-- | arch/arm/mach-s3c64xx/Kconfig | 4 | ||||
-rw-r--r-- | arch/arm/mach-s3c64xx/Makefile | 3 | ||||
-rw-r--r-- | arch/arm/mach-s3c64xx/mach-smdk6410.c | 2 | ||||
-rw-r--r-- | arch/arm/mach-s3c64xx/pm.c | 2 | ||||
-rw-r--r-- | arch/arm/plat-samsung/include/plat/pm.h | 14 | ||||
-rw-r--r-- | arch/arm/plat-samsung/pm-debug.c | 1 | ||||
-rw-r--r-- | arch/arm/plat-samsung/pm.c | 20 |
18 files changed, 69 insertions, 53 deletions
diff --git a/arch/arm/mach-s3c24xx/Kconfig b/arch/arm/mach-s3c24xx/Kconfig index 79c49ff77f6e..23bec3a85b22 100644 --- a/arch/arm/mach-s3c24xx/Kconfig +++ b/arch/arm/mach-s3c24xx/Kconfig | |||
@@ -39,14 +39,14 @@ config CPU_S3C2412 | |||
39 | bool "SAMSUNG S3C2412" | 39 | bool "SAMSUNG S3C2412" |
40 | select CPU_ARM926T | 40 | select CPU_ARM926T |
41 | select S3C2412_COMMON_CLK | 41 | select S3C2412_COMMON_CLK |
42 | select S3C2412_PM if PM | 42 | select S3C2412_PM if PM_SLEEP |
43 | help | 43 | help |
44 | Support for the S3C2412 and S3C2413 SoCs from the S3C24XX line | 44 | Support for the S3C2412 and S3C2413 SoCs from the S3C24XX line |
45 | 45 | ||
46 | config CPU_S3C2416 | 46 | config CPU_S3C2416 |
47 | bool "SAMSUNG S3C2416/S3C2450" | 47 | bool "SAMSUNG S3C2416/S3C2450" |
48 | select CPU_ARM926T | 48 | select CPU_ARM926T |
49 | select S3C2416_PM if PM | 49 | select S3C2416_PM if PM_SLEEP |
50 | select S3C2443_COMMON_CLK | 50 | select S3C2443_COMMON_CLK |
51 | help | 51 | help |
52 | Support for the S3C2416 SoC from the S3C24XX line | 52 | Support for the S3C2416 SoC from the S3C24XX line |
@@ -55,7 +55,7 @@ config CPU_S3C2440 | |||
55 | bool "SAMSUNG S3C2440" | 55 | bool "SAMSUNG S3C2440" |
56 | select CPU_ARM920T | 56 | select CPU_ARM920T |
57 | select S3C2410_COMMON_CLK | 57 | select S3C2410_COMMON_CLK |
58 | select S3C2410_PM if PM | 58 | select S3C2410_PM if PM_SLEEP |
59 | help | 59 | help |
60 | Support for S3C2440 Samsung Mobile CPU based systems. | 60 | Support for S3C2440 Samsung Mobile CPU based systems. |
61 | 61 | ||
@@ -63,7 +63,7 @@ config CPU_S3C2442 | |||
63 | bool "SAMSUNG S3C2442" | 63 | bool "SAMSUNG S3C2442" |
64 | select CPU_ARM920T | 64 | select CPU_ARM920T |
65 | select S3C2410_COMMON_CLK | 65 | select S3C2410_COMMON_CLK |
66 | select S3C2410_PM if PM | 66 | select S3C2410_PM if PM_SLEEP |
67 | help | 67 | help |
68 | Support for S3C2442 Samsung Mobile CPU based systems. | 68 | Support for S3C2442 Samsung Mobile CPU based systems. |
69 | 69 | ||
@@ -228,11 +228,6 @@ config H1940BT | |||
228 | This is a simple driver that is able to control | 228 | This is a simple driver that is able to control |
229 | the state of built in bluetooth chip on h1940. | 229 | the state of built in bluetooth chip on h1940. |
230 | 230 | ||
231 | config PM_H1940 | ||
232 | bool | ||
233 | help | ||
234 | Internal node for H1940 and related PM | ||
235 | |||
236 | config MACH_N30 | 231 | config MACH_N30 |
237 | bool "Acer N30 family" | 232 | bool "Acer N30 family" |
238 | select S3C_DEV_NAND | 233 | select S3C_DEV_NAND |
@@ -362,6 +357,7 @@ if CPU_S3C2416 | |||
362 | config S3C2416_PM | 357 | config S3C2416_PM |
363 | bool | 358 | bool |
364 | select S3C2412_PM_SLEEP | 359 | select S3C2412_PM_SLEEP |
360 | select SAMSUNG_WAKEMASK | ||
365 | help | 361 | help |
366 | Internal config node to apply S3C2416 power management | 362 | Internal config node to apply S3C2416 power management |
367 | 363 | ||
@@ -584,6 +580,11 @@ config MACH_SMDK2443 | |||
584 | 580 | ||
585 | endif # CPU_S3C2443 | 581 | endif # CPU_S3C2443 |
586 | 582 | ||
583 | config PM_H1940 | ||
584 | bool | ||
585 | help | ||
586 | Internal node for H1940 and related PM | ||
587 | |||
587 | endmenu # SAMSUNG S3C24XX SoCs Support | 588 | endmenu # SAMSUNG S3C24XX SoCs Support |
588 | 589 | ||
589 | endif # ARCH_S3C24XX | 590 | endif # ARCH_S3C24XX |
diff --git a/arch/arm/mach-s3c24xx/Makefile b/arch/arm/mach-s3c24xx/Makefile index b40a22fe082a..05920c8a5764 100644 --- a/arch/arm/mach-s3c24xx/Makefile +++ b/arch/arm/mach-s3c24xx/Makefile | |||
@@ -32,7 +32,8 @@ obj-$(CONFIG_CPU_S3C2443) += s3c2443.o | |||
32 | 32 | ||
33 | # PM | 33 | # PM |
34 | 34 | ||
35 | obj-$(CONFIG_PM) += pm.o irq-pm.o sleep.o | 35 | obj-$(CONFIG_PM) += pm.o |
36 | obj-$(CONFIG_PM_SLEEP) += irq-pm.o sleep.o | ||
36 | 37 | ||
37 | # common code | 38 | # common code |
38 | 39 | ||
diff --git a/arch/arm/mach-s3c24xx/include/mach/pm-core.h b/arch/arm/mach-s3c24xx/include/mach/pm-core.h index 2eef7e6f7675..69459dbbdcad 100644 --- a/arch/arm/mach-s3c24xx/include/mach/pm-core.h +++ b/arch/arm/mach-s3c24xx/include/mach/pm-core.h | |||
@@ -10,6 +10,11 @@ | |||
10 | * it under the terms of the GNU General Public License version 2 as | 10 | * it under the terms of the GNU General Public License version 2 as |
11 | * published by the Free Software Foundation. | 11 | * published by the Free Software Foundation. |
12 | */ | 12 | */ |
13 | #include <linux/delay.h> | ||
14 | #include <linux/io.h> | ||
15 | |||
16 | #include "regs-clock.h" | ||
17 | #include "regs-irq.h" | ||
13 | 18 | ||
14 | static inline void s3c_pm_debug_init_uart(void) | 19 | static inline void s3c_pm_debug_init_uart(void) |
15 | { | 20 | { |
@@ -42,8 +47,23 @@ static inline void s3c_pm_arch_stop_clocks(void) | |||
42 | __raw_writel(0x00, S3C2410_CLKCON); /* turn off clocks over sleep */ | 47 | __raw_writel(0x00, S3C2410_CLKCON); /* turn off clocks over sleep */ |
43 | } | 48 | } |
44 | 49 | ||
45 | static void s3c_pm_show_resume_irqs(int start, unsigned long which, | 50 | /* s3c2410_pm_show_resume_irqs |
46 | unsigned long mask); | 51 | * |
52 | * print any IRQs asserted at resume time (ie, we woke from) | ||
53 | */ | ||
54 | static inline void s3c_pm_show_resume_irqs(int start, unsigned long which, | ||
55 | unsigned long mask) | ||
56 | { | ||
57 | int i; | ||
58 | |||
59 | which &= ~mask; | ||
60 | |||
61 | for (i = 0; i <= 31; i++) { | ||
62 | if (which & (1L<<i)) { | ||
63 | S3C_PMDBG("IRQ %d asserted at resume\n", start+i); | ||
64 | } | ||
65 | } | ||
66 | } | ||
47 | 67 | ||
48 | static inline void s3c_pm_arch_show_resume_irqs(void) | 68 | static inline void s3c_pm_arch_show_resume_irqs(void) |
49 | { | 69 | { |
diff --git a/arch/arm/mach-s3c24xx/pm-s3c2416.c b/arch/arm/mach-s3c24xx/pm-s3c2416.c index 44923895f558..c0e328e37bd6 100644 --- a/arch/arm/mach-s3c24xx/pm-s3c2416.c +++ b/arch/arm/mach-s3c24xx/pm-s3c2416.c | |||
@@ -23,6 +23,7 @@ | |||
23 | 23 | ||
24 | #include "s3c2412-power.h" | 24 | #include "s3c2412-power.h" |
25 | 25 | ||
26 | #ifdef CONFIG_PM_SLEEP | ||
26 | extern void s3c2412_sleep_enter(void); | 27 | extern void s3c2412_sleep_enter(void); |
27 | 28 | ||
28 | static int s3c2416_cpu_suspend(unsigned long arg) | 29 | static int s3c2416_cpu_suspend(unsigned long arg) |
@@ -70,7 +71,7 @@ static __init int s3c2416_pm_init(void) | |||
70 | } | 71 | } |
71 | 72 | ||
72 | arch_initcall(s3c2416_pm_init); | 73 | arch_initcall(s3c2416_pm_init); |
73 | 74 | #endif | |
74 | 75 | ||
75 | static void s3c2416_pm_resume(void) | 76 | static void s3c2416_pm_resume(void) |
76 | { | 77 | { |
diff --git a/arch/arm/mach-s3c24xx/pm.c b/arch/arm/mach-s3c24xx/pm.c index b19256ec8d40..5d510bca0844 100644 --- a/arch/arm/mach-s3c24xx/pm.c +++ b/arch/arm/mach-s3c24xx/pm.c | |||
@@ -50,6 +50,7 @@ | |||
50 | 50 | ||
51 | #define PFX "s3c24xx-pm: " | 51 | #define PFX "s3c24xx-pm: " |
52 | 52 | ||
53 | #ifdef CONFIG_PM_SLEEP | ||
53 | static struct sleep_save core_save[] = { | 54 | static struct sleep_save core_save[] = { |
54 | /* we restore the timings here, with the proviso that the board | 55 | /* we restore the timings here, with the proviso that the board |
55 | * brings the system up in an slower, or equal frequency setting | 56 | * brings the system up in an slower, or equal frequency setting |
@@ -67,6 +68,7 @@ static struct sleep_save core_save[] = { | |||
67 | SAVE_ITEM(S3C2410_BANKCON4), | 68 | SAVE_ITEM(S3C2410_BANKCON4), |
68 | SAVE_ITEM(S3C2410_BANKCON5), | 69 | SAVE_ITEM(S3C2410_BANKCON5), |
69 | }; | 70 | }; |
71 | #endif | ||
70 | 72 | ||
71 | /* s3c_pm_check_resume_pin | 73 | /* s3c_pm_check_resume_pin |
72 | * | 74 | * |
@@ -121,7 +123,7 @@ void s3c_pm_configure_extint(void) | |||
121 | } | 123 | } |
122 | } | 124 | } |
123 | 125 | ||
124 | 126 | #ifdef CONFIG_PM_SLEEP | |
125 | void s3c_pm_restore_core(void) | 127 | void s3c_pm_restore_core(void) |
126 | { | 128 | { |
127 | s3c_pm_do_restore_core(core_save, ARRAY_SIZE(core_save)); | 129 | s3c_pm_do_restore_core(core_save, ARRAY_SIZE(core_save)); |
@@ -131,4 +133,4 @@ void s3c_pm_save_core(void) | |||
131 | { | 133 | { |
132 | s3c_pm_do_save(core_save, ARRAY_SIZE(core_save)); | 134 | s3c_pm_do_save(core_save, ARRAY_SIZE(core_save)); |
133 | } | 135 | } |
134 | 136 | #endif | |
diff --git a/arch/arm/mach-s3c24xx/s3c2410.c b/arch/arm/mach-s3c24xx/s3c2410.c index 2a6985a4a0ff..5061d66ca10c 100644 --- a/arch/arm/mach-s3c24xx/s3c2410.c +++ b/arch/arm/mach-s3c24xx/s3c2410.c | |||
@@ -121,7 +121,7 @@ int __init s3c2410_init(void) | |||
121 | { | 121 | { |
122 | printk("S3C2410: Initialising architecture\n"); | 122 | printk("S3C2410: Initialising architecture\n"); |
123 | 123 | ||
124 | #ifdef CONFIG_PM | 124 | #ifdef CONFIG_PM_SLEEP |
125 | register_syscore_ops(&s3c2410_pm_syscore_ops); | 125 | register_syscore_ops(&s3c2410_pm_syscore_ops); |
126 | register_syscore_ops(&s3c24xx_irq_syscore_ops); | 126 | register_syscore_ops(&s3c24xx_irq_syscore_ops); |
127 | #endif | 127 | #endif |
diff --git a/arch/arm/mach-s3c24xx/s3c2412.c b/arch/arm/mach-s3c24xx/s3c2412.c index ecf2c77ab88b..64a13605cfc3 100644 --- a/arch/arm/mach-s3c24xx/s3c2412.c +++ b/arch/arm/mach-s3c24xx/s3c2412.c | |||
@@ -172,7 +172,7 @@ int __init s3c2412_init(void) | |||
172 | { | 172 | { |
173 | printk("S3C2412: Initialising architecture\n"); | 173 | printk("S3C2412: Initialising architecture\n"); |
174 | 174 | ||
175 | #ifdef CONFIG_PM | 175 | #ifdef CONFIG_PM_SLEEP |
176 | register_syscore_ops(&s3c2412_pm_syscore_ops); | 176 | register_syscore_ops(&s3c2412_pm_syscore_ops); |
177 | register_syscore_ops(&s3c24xx_irq_syscore_ops); | 177 | register_syscore_ops(&s3c24xx_irq_syscore_ops); |
178 | #endif | 178 | #endif |
diff --git a/arch/arm/mach-s3c24xx/s3c2416.c b/arch/arm/mach-s3c24xx/s3c2416.c index bfd4da86deb8..3f8ca2a3ef17 100644 --- a/arch/arm/mach-s3c24xx/s3c2416.c +++ b/arch/arm/mach-s3c24xx/s3c2416.c | |||
@@ -98,7 +98,7 @@ int __init s3c2416_init(void) | |||
98 | s3c_adc_setname("s3c2416-adc"); | 98 | s3c_adc_setname("s3c2416-adc"); |
99 | s3c_rtc_setname("s3c2416-rtc"); | 99 | s3c_rtc_setname("s3c2416-rtc"); |
100 | 100 | ||
101 | #ifdef CONFIG_PM | 101 | #ifdef CONFIG_PM_SLEEP |
102 | register_syscore_ops(&s3c2416_pm_syscore_ops); | 102 | register_syscore_ops(&s3c2416_pm_syscore_ops); |
103 | register_syscore_ops(&s3c24xx_irq_syscore_ops); | 103 | register_syscore_ops(&s3c24xx_irq_syscore_ops); |
104 | register_syscore_ops(&s3c2416_irq_syscore_ops); | 104 | register_syscore_ops(&s3c2416_irq_syscore_ops); |
diff --git a/arch/arm/mach-s3c24xx/s3c2440.c b/arch/arm/mach-s3c24xx/s3c2440.c index 03d379f1fc52..eb733555fab5 100644 --- a/arch/arm/mach-s3c24xx/s3c2440.c +++ b/arch/arm/mach-s3c24xx/s3c2440.c | |||
@@ -57,11 +57,11 @@ int __init s3c2440_init(void) | |||
57 | 57 | ||
58 | /* register suspend/resume handlers */ | 58 | /* register suspend/resume handlers */ |
59 | 59 | ||
60 | #ifdef CONFIG_PM | 60 | #ifdef CONFIG_PM_SLEEP |
61 | register_syscore_ops(&s3c2410_pm_syscore_ops); | 61 | register_syscore_ops(&s3c2410_pm_syscore_ops); |
62 | register_syscore_ops(&s3c24xx_irq_syscore_ops); | 62 | register_syscore_ops(&s3c24xx_irq_syscore_ops); |
63 | #endif | ||
64 | register_syscore_ops(&s3c244x_pm_syscore_ops); | 63 | register_syscore_ops(&s3c244x_pm_syscore_ops); |
64 | #endif | ||
65 | 65 | ||
66 | /* register our system device for everything else */ | 66 | /* register our system device for everything else */ |
67 | 67 | ||
diff --git a/arch/arm/mach-s3c24xx/s3c2442.c b/arch/arm/mach-s3c24xx/s3c2442.c index 7b043349f1c8..893998ede022 100644 --- a/arch/arm/mach-s3c24xx/s3c2442.c +++ b/arch/arm/mach-s3c24xx/s3c2442.c | |||
@@ -60,11 +60,11 @@ int __init s3c2442_init(void) | |||
60 | { | 60 | { |
61 | printk("S3C2442: Initialising architecture\n"); | 61 | printk("S3C2442: Initialising architecture\n"); |
62 | 62 | ||
63 | #ifdef CONFIG_PM | 63 | #ifdef CONFIG_PM_SLEEP |
64 | register_syscore_ops(&s3c2410_pm_syscore_ops); | 64 | register_syscore_ops(&s3c2410_pm_syscore_ops); |
65 | register_syscore_ops(&s3c24xx_irq_syscore_ops); | 65 | register_syscore_ops(&s3c24xx_irq_syscore_ops); |
66 | #endif | ||
67 | register_syscore_ops(&s3c244x_pm_syscore_ops); | 66 | register_syscore_ops(&s3c244x_pm_syscore_ops); |
67 | #endif | ||
68 | 68 | ||
69 | return device_register(&s3c2442_dev); | 69 | return device_register(&s3c2442_dev); |
70 | } | 70 | } |
diff --git a/arch/arm/mach-s3c24xx/s3c244x.c b/arch/arm/mach-s3c24xx/s3c244x.c index 177f97802745..b14119585dc7 100644 --- a/arch/arm/mach-s3c24xx/s3c244x.c +++ b/arch/arm/mach-s3c24xx/s3c244x.c | |||
@@ -108,7 +108,7 @@ static int __init s3c2442_core_init(void) | |||
108 | core_initcall(s3c2442_core_init); | 108 | core_initcall(s3c2442_core_init); |
109 | 109 | ||
110 | 110 | ||
111 | #ifdef CONFIG_PM | 111 | #ifdef CONFIG_PM_SLEEP |
112 | static struct sleep_save s3c244x_sleep[] = { | 112 | static struct sleep_save s3c244x_sleep[] = { |
113 | SAVE_ITEM(S3C2440_DSC0), | 113 | SAVE_ITEM(S3C2440_DSC0), |
114 | SAVE_ITEM(S3C2440_DSC1), | 114 | SAVE_ITEM(S3C2440_DSC1), |
@@ -127,12 +127,9 @@ static void s3c244x_resume(void) | |||
127 | { | 127 | { |
128 | s3c_pm_do_restore(s3c244x_sleep, ARRAY_SIZE(s3c244x_sleep)); | 128 | s3c_pm_do_restore(s3c244x_sleep, ARRAY_SIZE(s3c244x_sleep)); |
129 | } | 129 | } |
130 | #else | ||
131 | #define s3c244x_suspend NULL | ||
132 | #define s3c244x_resume NULL | ||
133 | #endif | ||
134 | 130 | ||
135 | struct syscore_ops s3c244x_pm_syscore_ops = { | 131 | struct syscore_ops s3c244x_pm_syscore_ops = { |
136 | .suspend = s3c244x_suspend, | 132 | .suspend = s3c244x_suspend, |
137 | .resume = s3c244x_resume, | 133 | .resume = s3c244x_resume, |
138 | }; | 134 | }; |
135 | #endif | ||
diff --git a/arch/arm/mach-s3c64xx/Kconfig b/arch/arm/mach-s3c64xx/Kconfig index 26ca2427e53d..eff95e950d81 100644 --- a/arch/arm/mach-s3c64xx/Kconfig +++ b/arch/arm/mach-s3c64xx/Kconfig | |||
@@ -189,6 +189,7 @@ endchoice | |||
189 | config SMDK6410_WM1190_EV1 | 189 | config SMDK6410_WM1190_EV1 |
190 | bool "Support Wolfson Microelectronics 1190-EV1 PMIC card" | 190 | bool "Support Wolfson Microelectronics 1190-EV1 PMIC card" |
191 | depends on MACH_SMDK6410 | 191 | depends on MACH_SMDK6410 |
192 | depends on I2C=y | ||
192 | select MFD_WM8350_I2C | 193 | select MFD_WM8350_I2C |
193 | select REGULATOR | 194 | select REGULATOR |
194 | select REGULATOR_WM8350 | 195 | select REGULATOR_WM8350 |
@@ -203,6 +204,7 @@ config SMDK6410_WM1190_EV1 | |||
203 | config SMDK6410_WM1192_EV1 | 204 | config SMDK6410_WM1192_EV1 |
204 | bool "Support Wolfson Microelectronics 1192-EV1 PMIC card" | 205 | bool "Support Wolfson Microelectronics 1192-EV1 PMIC card" |
205 | depends on MACH_SMDK6410 | 206 | depends on MACH_SMDK6410 |
207 | depends on I2C=y | ||
206 | select MFD_WM831X | 208 | select MFD_WM831X |
207 | select MFD_WM831X_I2C | 209 | select MFD_WM831X_I2C |
208 | select REGULATOR | 210 | select REGULATOR |
@@ -269,8 +271,8 @@ config MACH_SMARTQ7 | |||
269 | 271 | ||
270 | config MACH_WLF_CRAGG_6410 | 272 | config MACH_WLF_CRAGG_6410 |
271 | bool "Wolfson Cragganmore 6410" | 273 | bool "Wolfson Cragganmore 6410" |
274 | depends on I2C=y | ||
272 | select CPU_S3C6410 | 275 | select CPU_S3C6410 |
273 | select I2C | ||
274 | select LEDS_GPIO_REGISTER | 276 | select LEDS_GPIO_REGISTER |
275 | select S3C64XX_DEV_SPI0 | 277 | select S3C64XX_DEV_SPI0 |
276 | select S3C64XX_SETUP_FB_24BPP | 278 | select S3C64XX_SETUP_FB_24BPP |
diff --git a/arch/arm/mach-s3c64xx/Makefile b/arch/arm/mach-s3c64xx/Makefile index 12f67b61ca5f..17f4b07ec763 100644 --- a/arch/arm/mach-s3c64xx/Makefile +++ b/arch/arm/mach-s3c64xx/Makefile | |||
@@ -16,7 +16,8 @@ obj-$(CONFIG_CPU_S3C6410) += s3c6410.o | |||
16 | 16 | ||
17 | # PM | 17 | # PM |
18 | 18 | ||
19 | obj-$(CONFIG_PM) += pm.o irq-pm.o sleep.o | 19 | obj-$(CONFIG_PM) += pm.o |
20 | obj-$(CONFIG_PM_SLEEP) += irq-pm.o sleep.o | ||
20 | obj-$(CONFIG_CPU_IDLE) += cpuidle.o | 21 | obj-$(CONFIG_CPU_IDLE) += cpuidle.o |
21 | 22 | ||
22 | # DMA support | 23 | # DMA support |
diff --git a/arch/arm/mach-s3c64xx/mach-smdk6410.c b/arch/arm/mach-s3c64xx/mach-smdk6410.c index 661eb662d051..b7447a92276e 100644 --- a/arch/arm/mach-s3c64xx/mach-smdk6410.c +++ b/arch/arm/mach-s3c64xx/mach-smdk6410.c | |||
@@ -209,7 +209,7 @@ static struct platform_device smdk6410_smsc911x = { | |||
209 | }; | 209 | }; |
210 | 210 | ||
211 | #ifdef CONFIG_REGULATOR | 211 | #ifdef CONFIG_REGULATOR |
212 | static struct regulator_consumer_supply smdk6410_b_pwr_5v_consumers[] __initdata = { | 212 | static struct regulator_consumer_supply smdk6410_b_pwr_5v_consumers[] = { |
213 | REGULATOR_SUPPLY("PVDD", "0-001b"), | 213 | REGULATOR_SUPPLY("PVDD", "0-001b"), |
214 | REGULATOR_SUPPLY("AVDD", "0-001b"), | 214 | REGULATOR_SUPPLY("AVDD", "0-001b"), |
215 | }; | 215 | }; |
diff --git a/arch/arm/mach-s3c64xx/pm.c b/arch/arm/mach-s3c64xx/pm.c index aaf7bea4032f..75b14e756383 100644 --- a/arch/arm/mach-s3c64xx/pm.c +++ b/arch/arm/mach-s3c64xx/pm.c | |||
@@ -194,6 +194,7 @@ void s3c_pm_debug_smdkled(u32 set, u32 clear) | |||
194 | } | 194 | } |
195 | #endif | 195 | #endif |
196 | 196 | ||
197 | #ifdef CONFIG_PM_SLEEP | ||
197 | static struct sleep_save core_save[] = { | 198 | static struct sleep_save core_save[] = { |
198 | SAVE_ITEM(S3C64XX_MEM0DRVCON), | 199 | SAVE_ITEM(S3C64XX_MEM0DRVCON), |
199 | SAVE_ITEM(S3C64XX_MEM1DRVCON), | 200 | SAVE_ITEM(S3C64XX_MEM1DRVCON), |
@@ -238,6 +239,7 @@ void s3c_pm_save_core(void) | |||
238 | s3c_pm_do_save(misc_save, ARRAY_SIZE(misc_save)); | 239 | s3c_pm_do_save(misc_save, ARRAY_SIZE(misc_save)); |
239 | s3c_pm_do_save(core_save, ARRAY_SIZE(core_save)); | 240 | s3c_pm_do_save(core_save, ARRAY_SIZE(core_save)); |
240 | } | 241 | } |
242 | #endif | ||
241 | 243 | ||
242 | /* since both s3c6400 and s3c6410 share the same sleep pm calls, we | 244 | /* since both s3c6400 and s3c6410 share the same sleep pm calls, we |
243 | * put the per-cpu code in here until any new cpu comes along and changes | 245 | * put the per-cpu code in here until any new cpu comes along and changes |
diff --git a/arch/arm/plat-samsung/include/plat/pm.h b/arch/arm/plat-samsung/include/plat/pm.h index e17d871b934c..7f415ce74591 100644 --- a/arch/arm/plat-samsung/include/plat/pm.h +++ b/arch/arm/plat-samsung/include/plat/pm.h | |||
@@ -43,7 +43,11 @@ extern unsigned long s3c_irqwake_eintmask; | |||
43 | 43 | ||
44 | /* IRQ masks for IRQs allowed to go to sleep (see irq.c) */ | 44 | /* IRQ masks for IRQs allowed to go to sleep (see irq.c) */ |
45 | extern unsigned long s3c_irqwake_intallow; | 45 | extern unsigned long s3c_irqwake_intallow; |
46 | #ifdef CONFIG_PM_SLEEP | ||
46 | extern unsigned long s3c_irqwake_eintallow; | 47 | extern unsigned long s3c_irqwake_eintallow; |
48 | #else | ||
49 | #define s3c_irqwake_eintallow 0 | ||
50 | #endif | ||
47 | 51 | ||
48 | /* per-cpu sleep functions */ | 52 | /* per-cpu sleep functions */ |
49 | 53 | ||
@@ -58,16 +62,20 @@ extern unsigned long s3c_pm_flags; | |||
58 | 62 | ||
59 | extern int s3c2410_cpu_suspend(unsigned long); | 63 | extern int s3c2410_cpu_suspend(unsigned long); |
60 | 64 | ||
61 | #ifdef CONFIG_SAMSUNG_PM | 65 | #ifdef CONFIG_PM_SLEEP |
62 | extern int s3c_irq_wake(struct irq_data *data, unsigned int state); | 66 | extern int s3c_irq_wake(struct irq_data *data, unsigned int state); |
63 | extern int s3c_irqext_wake(struct irq_data *data, unsigned int state); | ||
64 | extern void s3c_cpu_resume(void); | 67 | extern void s3c_cpu_resume(void); |
65 | #else | 68 | #else |
66 | #define s3c_irq_wake NULL | 69 | #define s3c_irq_wake NULL |
67 | #define s3c_irqext_wake NULL | ||
68 | #define s3c_cpu_resume NULL | 70 | #define s3c_cpu_resume NULL |
69 | #endif | 71 | #endif |
70 | 72 | ||
73 | #ifdef CONFIG_SAMSUNG_PM | ||
74 | extern int s3c_irqext_wake(struct irq_data *data, unsigned int state); | ||
75 | #else | ||
76 | #define s3c_irqext_wake NULL | ||
77 | #endif | ||
78 | |||
71 | #ifdef CONFIG_S3C_PM_DEBUG_LED_SMDK | 79 | #ifdef CONFIG_S3C_PM_DEBUG_LED_SMDK |
72 | /** | 80 | /** |
73 | * s3c_pm_debug_smdkled() - Debug PM suspend/resume via SMDK Board LEDs | 81 | * s3c_pm_debug_smdkled() - Debug PM suspend/resume via SMDK Board LEDs |
diff --git a/arch/arm/plat-samsung/pm-debug.c b/arch/arm/plat-samsung/pm-debug.c index 39609601f407..64e15da33b42 100644 --- a/arch/arm/plat-samsung/pm-debug.c +++ b/arch/arm/plat-samsung/pm-debug.c | |||
@@ -23,6 +23,7 @@ | |||
23 | #include <plat/pm-common.h> | 23 | #include <plat/pm-common.h> |
24 | 24 | ||
25 | #ifdef CONFIG_SAMSUNG_ATAGS | 25 | #ifdef CONFIG_SAMSUNG_ATAGS |
26 | #include <plat/pm.h> | ||
26 | #include <mach/pm-core.h> | 27 | #include <mach/pm-core.h> |
27 | #else | 28 | #else |
28 | static inline void s3c_pm_debug_init_uart(void) {} | 29 | static inline void s3c_pm_debug_init_uart(void) {} |
diff --git a/arch/arm/plat-samsung/pm.c b/arch/arm/plat-samsung/pm.c index f8c0f9797dcf..82777c649774 100644 --- a/arch/arm/plat-samsung/pm.c +++ b/arch/arm/plat-samsung/pm.c | |||
@@ -65,26 +65,6 @@ int s3c_irqext_wake(struct irq_data *data, unsigned int state) | |||
65 | return 0; | 65 | return 0; |
66 | } | 66 | } |
67 | 67 | ||
68 | /* s3c2410_pm_show_resume_irqs | ||
69 | * | ||
70 | * print any IRQs asserted at resume time (ie, we woke from) | ||
71 | */ | ||
72 | static void __maybe_unused s3c_pm_show_resume_irqs(int start, | ||
73 | unsigned long which, | ||
74 | unsigned long mask) | ||
75 | { | ||
76 | int i; | ||
77 | |||
78 | which &= ~mask; | ||
79 | |||
80 | for (i = 0; i <= 31; i++) { | ||
81 | if (which & (1L<<i)) { | ||
82 | S3C_PMDBG("IRQ %d asserted at resume\n", start+i); | ||
83 | } | ||
84 | } | ||
85 | } | ||
86 | |||
87 | |||
88 | void (*pm_cpu_prep)(void); | 68 | void (*pm_cpu_prep)(void); |
89 | int (*pm_cpu_sleep)(unsigned long); | 69 | int (*pm_cpu_sleep)(unsigned long); |
90 | 70 | ||