Linux-2.6.12-rc2
[linux-2.6.git] / arch / arm / mach-s3c2410 / pm.h
1 /* linux/arch/arm/mach-s3c2410/pm.h
2  *
3  * Copyright (c) 2004 Simtec Electronics
4  *      Written by Ben Dooks, <ben@simtec.co.uk>
5  *
6  * This program is free software; you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License version 2 as
8  * published by the Free Software Foundation.
9 */
10
11 /* s3c2410_pm_init
12  *
13  * called from board at initialisation time to setup the power
14  * management
15 */
16
17 #ifdef CONFIG_PM
18
19 extern __init int s3c2410_pm_init(void);
20
21 #else
22
23 static inline int s3c2410_pm_init(void)
24 {
25         return 0;
26 }
27 #endif
28
29 /* configuration for the IRQ mask over sleep */
30 extern unsigned long s3c_irqwake_intmask;
31 extern unsigned long s3c_irqwake_eintmask;
32
33 /* IRQ masks for IRQs allowed to go to sleep (see irq.c) */
34 extern unsigned long s3c_irqwake_intallow;
35 extern unsigned long s3c_irqwake_eintallow;
36
37 /* Flags for PM Control */
38
39 extern unsigned long s3c_pm_flags;
40
41 /* from sleep.S */
42
43 extern void s3c2410_cpu_suspend(unsigned long *saveblk);
44 extern void s3c2410_cpu_resume(void);
45
46 extern unsigned long s3c2410_sleep_save_phys;
47
48 /* sleep save info */
49
50 struct sleep_save {
51         void __iomem    *reg;
52         unsigned long   val;
53 };
54
55 #define SAVE_ITEM(x) \
56         { .reg = (x) }
57
58 extern void s3c2410_pm_do_save(struct sleep_save *ptr, int count);
59 extern void s3c2410_pm_do_restore(struct sleep_save *ptr, int count);