xref: /OK3568_Linux_fs/kernel/arch/arm/mach-pxa/pm.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun /* SPDX-License-Identifier: GPL-2.0-only */
2*4882a593Smuzhiyun /*
3*4882a593Smuzhiyun  * Copyright (c) 2005 Richard Purdie
4*4882a593Smuzhiyun  */
5*4882a593Smuzhiyun 
6*4882a593Smuzhiyun #include <linux/suspend.h>
7*4882a593Smuzhiyun 
8*4882a593Smuzhiyun struct pxa_cpu_pm_fns {
9*4882a593Smuzhiyun 	int	save_count;
10*4882a593Smuzhiyun 	void	(*save)(unsigned long *);
11*4882a593Smuzhiyun 	void	(*restore)(unsigned long *);
12*4882a593Smuzhiyun 	int	(*valid)(suspend_state_t state);
13*4882a593Smuzhiyun 	void	(*enter)(suspend_state_t state);
14*4882a593Smuzhiyun 	int	(*prepare)(void);
15*4882a593Smuzhiyun 	void	(*finish)(void);
16*4882a593Smuzhiyun };
17*4882a593Smuzhiyun 
18*4882a593Smuzhiyun extern struct pxa_cpu_pm_fns *pxa_cpu_pm_fns;
19*4882a593Smuzhiyun 
20*4882a593Smuzhiyun /* sleep.S */
21*4882a593Smuzhiyun extern int pxa25x_finish_suspend(unsigned long);
22*4882a593Smuzhiyun extern int pxa27x_finish_suspend(unsigned long);
23*4882a593Smuzhiyun 
24*4882a593Smuzhiyun extern int pxa_pm_enter(suspend_state_t state);
25*4882a593Smuzhiyun extern int pxa_pm_prepare(void);
26*4882a593Smuzhiyun extern void pxa_pm_finish(void);
27*4882a593Smuzhiyun 
28*4882a593Smuzhiyun extern const char pm_enter_standby_start[], pm_enter_standby_end[];
29*4882a593Smuzhiyun extern int pxa3xx_finish_suspend(unsigned long);
30*4882a593Smuzhiyun 
31*4882a593Smuzhiyun /* NOTE: this is for PM debugging on Lubbock,  it's really a big
32*4882a593Smuzhiyun  * ugly, but let's keep the crap minimum here, instead of direct
33*4882a593Smuzhiyun  * accessing the LUBBOCK CPLD registers in arch/arm/mach-pxa/pm.c
34*4882a593Smuzhiyun  */
35*4882a593Smuzhiyun #ifdef CONFIG_ARCH_LUBBOCK
36*4882a593Smuzhiyun extern void lubbock_set_hexled(uint32_t value);
37*4882a593Smuzhiyun #else
38*4882a593Smuzhiyun #define lubbock_set_hexled(x)
39*4882a593Smuzhiyun #endif
40