xref: /openbmc/linux/arch/arm/mach-pxa/pm.h (revision 9a87ffc99ec8eb8d35eed7c4f816d75f5cc9662e)
1*d2912cb1SThomas Gleixner /* SPDX-License-Identifier: GPL-2.0-only */
24c25c5d2SArnd Bergmann /*
34c25c5d2SArnd Bergmann  * Copyright (c) 2005 Richard Purdie
44c25c5d2SArnd Bergmann  */
54c25c5d2SArnd Bergmann 
64c25c5d2SArnd Bergmann #include <linux/suspend.h>
74c25c5d2SArnd Bergmann 
84c25c5d2SArnd Bergmann struct pxa_cpu_pm_fns {
94c25c5d2SArnd Bergmann 	int	save_count;
104c25c5d2SArnd Bergmann 	void	(*save)(unsigned long *);
114c25c5d2SArnd Bergmann 	void	(*restore)(unsigned long *);
124c25c5d2SArnd Bergmann 	int	(*valid)(suspend_state_t state);
134c25c5d2SArnd Bergmann 	void	(*enter)(suspend_state_t state);
144c25c5d2SArnd Bergmann 	int	(*prepare)(void);
154c25c5d2SArnd Bergmann 	void	(*finish)(void);
164c25c5d2SArnd Bergmann };
174c25c5d2SArnd Bergmann 
184c25c5d2SArnd Bergmann extern struct pxa_cpu_pm_fns *pxa_cpu_pm_fns;
194c25c5d2SArnd Bergmann 
204c25c5d2SArnd Bergmann /* sleep.S */
214c25c5d2SArnd Bergmann extern int pxa25x_finish_suspend(unsigned long);
224c25c5d2SArnd Bergmann extern int pxa27x_finish_suspend(unsigned long);
234c25c5d2SArnd Bergmann 
244c25c5d2SArnd Bergmann extern int pxa_pm_enter(suspend_state_t state);
254c25c5d2SArnd Bergmann extern int pxa_pm_prepare(void);
264c25c5d2SArnd Bergmann extern void pxa_pm_finish(void);
274c25c5d2SArnd Bergmann 
28a9a54caeSArnd Bergmann extern const char pm_enter_standby_start[], pm_enter_standby_end[];
29a9a54caeSArnd Bergmann extern int pxa3xx_finish_suspend(unsigned long);
30