aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-s3c2410/mach-amlm5900.c
diff options
context:
space:
mode:
authorDavid Anders <danders@amltd.com>2006-09-26 12:46:00 -0400
committerRussell King <rmk+kernel@arm.linux.org.uk>2006-09-27 18:44:33 -0400
commit26f908186f923291999833e9d563259834bdca06 (patch)
tree3fd7656ade08d17d6213fdaa27c86bda6f4b0b8b /arch/arm/mach-s3c2410/mach-amlm5900.c
parentea33a59802f8fd21d24fbf5c906bc3f399bcca00 (diff)
[ARM] 3862/2: S3C2410 - add basic power management support for AML M5900 series
this patch registers the wakeup irq, sets a gpio pin to indicate the status of system for suspend/resume operations, and adds the machine to the supported machines for use with the simtec-pm Signed-off-by: David Anders <danders@amltd.com> Signed-off-by: Ben Dooks <ben-linux@fluff.org> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'arch/arm/mach-s3c2410/mach-amlm5900.c')
-rw-r--r--arch/arm/mach-s3c2410/mach-amlm5900.c25
1 files changed, 23 insertions, 2 deletions
diff --git a/arch/arm/mach-s3c2410/mach-amlm5900.c b/arch/arm/mach-s3c2410/mach-amlm5900.c
index 0c9b7dafbe90..ba5109af40b4 100644
--- a/arch/arm/mach-s3c2410/mach-amlm5900.c
+++ b/arch/arm/mach-s3c2410/mach-amlm5900.c
@@ -225,13 +225,34 @@ static struct s3c2410fb_mach_info __initdata amlm5900_lcd_info = {
225}; 225};
226#endif 226#endif
227 227
228static void __init amlm5900_init(void) 228static irqreturn_t
229amlm5900_wake_interrupt(int irq, void *ignored, struct pt_regs *regs)
229{ 230{
231 return IRQ_HANDLED;
232}
230 233
234static void amlm5900_init_pm(void)
235{
236 int ret = 0;
237
238 ret = request_irq(IRQ_EINT9, &amlm5900_wake_interrupt,
239 IRQF_TRIGGER_RISING | IRQF_SHARED,
240 "amlm5900_wakeup", &amlm5900_wake_interrupt);
241 if (ret != 0) {
242 printk(KERN_ERR "AML-M5900: no wakeup irq, %d?\n", ret);
243 } else {
244 enable_irq_wake(IRQ_EINT9);
245 /* configure the suspend/resume status pin */
246 s3c2410_gpio_cfgpin(S3C2410_GPF2, S3C2410_GPF2_OUTP);
247 s3c2410_gpio_pullup(S3C2410_GPF2, 0);
248 }
249}
250static void __init amlm5900_init(void)
251{
252 amlm5900_init_pm();
231#ifdef CONFIG_FB_S3C2410 253#ifdef CONFIG_FB_S3C2410
232 s3c24xx_fb_set_platdata(&amlm5900_lcd_info); 254 s3c24xx_fb_set_platdata(&amlm5900_lcd_info);
233#endif 255#endif
234
235} 256}
236 257
237MACHINE_START(AML_M5900, "AML_M5900") 258MACHINE_START(AML_M5900, "AML_M5900")