Commit | Line | Data |
---|---|---|
7e59128f HS |
1 | /* |
2 | * AVR32 AP Power Management. | |
3 | * | |
4 | * Copyright (C) 2008 Atmel Corporation | |
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 | #ifndef __ASM_AVR32_ARCH_PM_H | |
11 | #define __ASM_AVR32_ARCH_PM_H | |
12 | ||
13 | /* Possible arguments to the "sleep" instruction */ | |
14 | #define CPU_SLEEP_IDLE 0 | |
15 | #define CPU_SLEEP_FROZEN 1 | |
16 | #define CPU_SLEEP_STANDBY 2 | |
17 | #define CPU_SLEEP_STOP 3 | |
18 | #define CPU_SLEEP_STATIC 5 | |
19 | ||
20 | #ifndef __ASSEMBLY__ | |
21 | extern void cpu_enter_idle(void); | |
02a00cf6 | 22 | extern void cpu_enter_standby(unsigned long sdramc_base); |
7e59128f HS |
23 | |
24 | extern bool disable_idle_sleep; | |
25 | ||
26 | static inline void cpu_disable_idle_sleep(void) | |
27 | { | |
28 | disable_idle_sleep = true; | |
29 | } | |
30 | ||
31 | static inline void cpu_enable_idle_sleep(void) | |
32 | { | |
33 | disable_idle_sleep = false; | |
34 | } | |
35 | ||
36 | static inline void cpu_idle_sleep(void) | |
37 | { | |
38 | /* | |
39 | * If we're using the COUNT and COMPARE registers for | |
40 | * timekeeping, we can't use the IDLE state. | |
41 | */ | |
42 | if (disable_idle_sleep) | |
43 | cpu_relax(); | |
44 | else | |
45 | cpu_enter_idle(); | |
46 | } | |
02a00cf6 HS |
47 | |
48 | void intc_set_suspend_handler(unsigned long offset); | |
7e59128f HS |
49 | #endif |
50 | ||
51 | #endif /* __ASM_AVR32_ARCH_PM_H */ |