diff options
Diffstat (limited to 'arch/arm/mach-s3c64xx/pm.c')
-rw-r--r-- | arch/arm/mach-s3c64xx/pm.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/arch/arm/mach-s3c64xx/pm.c b/arch/arm/mach-s3c64xx/pm.c index b375cd5c47c..0868d133191 100644 --- a/arch/arm/mach-s3c64xx/pm.c +++ b/arch/arm/mach-s3c64xx/pm.c | |||
@@ -89,6 +89,8 @@ static struct sleep_save misc_save[] = { | |||
89 | 89 | ||
90 | SAVE_ITEM(S3C64XX_SDMA_SEL), | 90 | SAVE_ITEM(S3C64XX_SDMA_SEL), |
91 | SAVE_ITEM(S3C64XX_MODEM_MIFPCON), | 91 | SAVE_ITEM(S3C64XX_MODEM_MIFPCON), |
92 | |||
93 | SAVE_ITEM(S3C64XX_NORMAL_CFG), | ||
92 | }; | 94 | }; |
93 | 95 | ||
94 | void s3c_pm_configure_extint(void) | 96 | void s3c_pm_configure_extint(void) |
@@ -181,10 +183,23 @@ static void s3c64xx_pm_prepare(void) | |||
181 | 183 | ||
182 | static int s3c64xx_pm_init(void) | 184 | static int s3c64xx_pm_init(void) |
183 | { | 185 | { |
186 | u32 val; | ||
187 | |||
184 | pm_cpu_prep = s3c64xx_pm_prepare; | 188 | pm_cpu_prep = s3c64xx_pm_prepare; |
185 | pm_cpu_sleep = s3c64xx_cpu_suspend; | 189 | pm_cpu_sleep = s3c64xx_cpu_suspend; |
186 | pm_uart_udivslot = 1; | 190 | pm_uart_udivslot = 1; |
187 | 191 | ||
192 | /* | ||
193 | * Unconditionally disable power domains that contain only | ||
194 | * blocks which have no mainline driver support. | ||
195 | */ | ||
196 | val = __raw_readl(S3C64XX_NORMAL_CFG); | ||
197 | val &= ~(S3C64XX_NORMALCFG_DOMAIN_G_ON | | ||
198 | S3C64XX_NORMALCFG_DOMAIN_V_ON | | ||
199 | S3C64XX_NORMALCFG_DOMAIN_I_ON | | ||
200 | S3C64XX_NORMALCFG_DOMAIN_P_ON); | ||
201 | __raw_writel(val, S3C64XX_NORMAL_CFG); | ||
202 | |||
188 | #ifdef CONFIG_S3C_PM_DEBUG_LED_SMDK | 203 | #ifdef CONFIG_S3C_PM_DEBUG_LED_SMDK |
189 | gpio_request(S3C64XX_GPN(12), "DEBUG_LED0"); | 204 | gpio_request(S3C64XX_GPN(12), "DEBUG_LED0"); |
190 | gpio_request(S3C64XX_GPN(13), "DEBUG_LED1"); | 205 | gpio_request(S3C64XX_GPN(13), "DEBUG_LED1"); |