diff options
Diffstat (limited to 'arch')
-rw-r--r-- | arch/arm/mach-s3c2440/mach-osiris.c | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/arch/arm/mach-s3c2440/mach-osiris.c b/arch/arm/mach-s3c2440/mach-osiris.c index 0ba7e9060c7b..c326983f4a8f 100644 --- a/arch/arm/mach-s3c2440/mach-osiris.c +++ b/arch/arm/mach-s3c2440/mach-osiris.c | |||
@@ -276,7 +276,21 @@ static unsigned char pm_osiris_ctrl0; | |||
276 | 276 | ||
277 | static int osiris_pm_suspend(struct sys_device *sd, pm_message_t state) | 277 | static int osiris_pm_suspend(struct sys_device *sd, pm_message_t state) |
278 | { | 278 | { |
279 | unsigned int tmp; | ||
280 | |||
279 | pm_osiris_ctrl0 = __raw_readb(OSIRIS_VA_CTRL0); | 281 | pm_osiris_ctrl0 = __raw_readb(OSIRIS_VA_CTRL0); |
282 | tmp = pm_osiris_ctrl0 & ~OSIRIS_CTRL0_NANDSEL; | ||
283 | |||
284 | /* ensure correct NAND slot is selected on resume */ | ||
285 | if ((pm_osiris_ctrl0 & OSIRIS_CTRL0_BOOT_INT) == 0) | ||
286 | tmp |= 2; | ||
287 | |||
288 | __raw_writeb(tmp, OSIRIS_VA_CTRL0); | ||
289 | |||
290 | /* ensure that an nRESET is not generated on resume. */ | ||
291 | s3c2410_gpio_setpin(S3C2410_GPA21, 1); | ||
292 | s3c2410_gpio_cfgpin(S3C2410_GPA21, S3C2410_GPA21_OUT); | ||
293 | |||
280 | return 0; | 294 | return 0; |
281 | } | 295 | } |
282 | 296 | ||
@@ -285,6 +299,10 @@ static int osiris_pm_resume(struct sys_device *sd) | |||
285 | if (pm_osiris_ctrl0 & OSIRIS_CTRL0_FIX8) | 299 | if (pm_osiris_ctrl0 & OSIRIS_CTRL0_FIX8) |
286 | __raw_writeb(OSIRIS_CTRL1_FIX8, OSIRIS_VA_CTRL1); | 300 | __raw_writeb(OSIRIS_CTRL1_FIX8, OSIRIS_VA_CTRL1); |
287 | 301 | ||
302 | __raw_writeb(pm_osiris_ctrl0, OSIRIS_VA_CTRL0); | ||
303 | |||
304 | s3c2410_gpio_cfgpin(S3C2410_GPA21, S3C2410_GPA21_nRSTOUT); | ||
305 | |||
288 | return 0; | 306 | return 0; |
289 | } | 307 | } |
290 | 308 | ||