Merge tag 'v3.10.55' into update
[GitHub/mt8127/android_kernel_alcatel_ttab.git] / arch / arm / mach-mt8127 / include / mach / mt_spm_sleep.h
1 #ifndef _MT_SPM_SLEEP_
2 #define _MT_SPM_SLEEP_
3
4 #include <linux/kernel.h>
5
6 typedef enum {
7 WR_NONE = 0,
8 WR_UART_BUSY = 1,
9 WR_PCM_ASSERT = 2,
10 WR_PCM_TIMER = 3,
11 WR_PCM_WDT = 4,
12 WR_WAKE_SRC = 5,
13 WR_UNKNOWN = 6,
14 } wake_reason_t;
15
16 /*
17 * for suspend
18 */
19 extern int spm_set_sleep_wakesrc(u32 wakesrc, bool enable, bool replace);
20 extern wake_reason_t spm_go_to_sleep(bool cpu_pdn, bool infra_pdn, int pwake_time);
21 extern wake_reason_t spm_go_to_sleep_dpidle(bool cpu_pdn, u16 pwrlevel, int pwake_time);
22
23
24 /*
25 * for deep idle
26 */
27 extern void spm_dpidle_before_wfi(void); /* can be redefined */
28 extern void spm_dpidle_after_wfi(void); /* can be redefined */
29 extern wake_reason_t spm_go_to_dpidle(bool cpu_pdn, u16 pwrlevel);
30
31
32 extern bool spm_is_md_sleep(void);
33 extern bool spm_is_conn_sleep(void);
34
35 extern void spm_output_sleep_option(void);
36
37 #endif