From c1a374d615c58a6ccfc5c5e6efc8a8f21ae1f380 Mon Sep 17 00:00:00 2001 From: Ben Dooks Date: Wed, 16 Apr 2008 00:06:14 +0100 Subject: [PATCH] --- yaml --- r: 91279 b: refs/heads/master c: 6ddc4b07a2669bdb8b90e3e12fb1ccfb6dc4a99c h: refs/heads/master i: 91277: 16a102064817dc68723a5f5f3cea4ae44a933671 91275: 3dda98f41cb98711c33bb627ced68e288dd648aa 91271: ae6c70b223e66bc50b47638388b99f7eb510e768 91263: 612afd7fb521923ef58c371a13bf45ccf48d6b9c v: v3 --- [refs] | 2 +- trunk/arch/arm/mach-s3c2410/mach-bast.c | 34 +++++++++++++++++++++++++ 2 files changed, 35 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index d13f8905c4b8..190112982d0b 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: c63fc13f806b11576e8c41969d4b1598dd261d80 +refs/heads/master: 6ddc4b07a2669bdb8b90e3e12fb1ccfb6dc4a99c diff --git a/trunk/arch/arm/mach-s3c2410/mach-bast.c b/trunk/arch/arm/mach-s3c2410/mach-bast.c index 66175471fff3..b45fb65889d2 100644 --- a/trunk/arch/arm/mach-s3c2410/mach-bast.c +++ b/trunk/arch/arm/mach-s3c2410/mach-bast.c @@ -16,6 +16,7 @@ #include #include #include +#include #include #include #include @@ -236,6 +237,36 @@ static struct platform_device bast_device_nor = { /* NAND Flash on BAST board */ +#ifdef CONFIG_PM +static int bast_pm_suspend(struct sys_device *sd, pm_message_t state) +{ + /* ensure that an nRESET is not generated on resume. */ + s3c2410_gpio_setpin(S3C2410_GPA21, 1); + s3c2410_gpio_cfgpin(S3C2410_GPA21, S3C2410_GPA21_OUT); + + return 0; +} + +static int bast_pm_resume(struct sys_device *sd) +{ + s3c2410_gpio_cfgpin(S3C2410_GPA21, S3C2410_GPA21_nRSTOUT); + return 0; +} + +#else +#define bast_pm_suspend NULL +#define bast_pm_resume NULL +#endif + +static struct sysdev_class bast_pm_sysclass = { + set_kset_name("mach-bast"), + .suspend = bast_pm_suspend, + .resume = bast_pm_resume, +}; + +static struct sys_device bast_pm_sysdev = { + .cls = &bast_pm_sysclass, +}; static int smartmedia_map[] = { 0 }; static int chip0_map[] = { 1 }; @@ -586,6 +617,9 @@ static void __init bast_map_io(void) static void __init bast_init(void) { + sysdev_class_register(&bast_pm_sysclass); + sysdev_register(&bast_pm_sysdev); + s3c24xx_fb_set_platdata(&bast_fb_info); platform_add_devices(bast_devices, ARRAY_SIZE(bast_devices)); }