Commit | Line | Data |
---|---|---|
1da177e4 LT |
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 | ||
0033a2f0 BD |
37 | /* per-cpu sleep functions */ |
38 | ||
39 | extern void (*pm_cpu_prep)(void); | |
40 | extern void (*pm_cpu_sleep)(void); | |
41 | ||
1da177e4 LT |
42 | /* Flags for PM Control */ |
43 | ||
44 | extern unsigned long s3c_pm_flags; | |
45 | ||
46 | /* from sleep.S */ | |
47 | ||
58095d7f BD |
48 | extern int s3c2410_cpu_save(unsigned long *saveblk); |
49 | extern void s3c2410_cpu_suspend(void); | |
1da177e4 LT |
50 | extern void s3c2410_cpu_resume(void); |
51 | ||
52 | extern unsigned long s3c2410_sleep_save_phys; | |
53 | ||
54 | /* sleep save info */ | |
55 | ||
56 | struct sleep_save { | |
57 | void __iomem *reg; | |
58 | unsigned long val; | |
59 | }; | |
60 | ||
61 | #define SAVE_ITEM(x) \ | |
62 | { .reg = (x) } | |
63 | ||
64 | extern void s3c2410_pm_do_save(struct sleep_save *ptr, int count); | |
65 | extern void s3c2410_pm_do_restore(struct sleep_save *ptr, int count); | |
1e582fc7 BD |
66 | |
67 | #ifdef CONFIG_PM | |
68 | extern int s3c24xx_irq_suspend(struct sys_device *dev, pm_message_t state); | |
69 | extern int s3c24xx_irq_resume(struct sys_device *dev); | |
70 | #else | |
71 | #define s3c24xx_irq_suspend NULL | |
72 | #define s3c24xx_irq_resume NULL | |
73 | #endif |