| Thomas Gleixner | d2912cb | 2019-06-04 10:11:33 +0200 | [diff] [blame^] | 1 | /* SPDX-License-Identifier: GPL-2.0-only */ |
| Richard Purdie | 756c7b7 | 2005-11-06 15:03:23 +0000 | [diff] [blame] | 2 | /* |
| 3 | * Copyright (c) 2005 Richard Purdie |
| Richard Purdie | 756c7b7 | 2005-11-06 15:03:23 +0000 | [diff] [blame] | 4 | */ |
| 5 | |
| Rafael J. Wysocki | 95d9ffb | 2007-10-18 03:04:39 -0700 | [diff] [blame] | 6 | #include <linux/suspend.h> |
| 7 | |
| Eric Miao | 711be5c | 2007-07-18 11:38:45 +0100 | [diff] [blame] | 8 | struct pxa_cpu_pm_fns { |
| Robert Jarzmik | 649de51 | 2008-05-02 21:17:06 +0100 | [diff] [blame] | 9 | int save_count; |
| Eric Miao | 711be5c | 2007-07-18 11:38:45 +0100 | [diff] [blame] | 10 | void (*save)(unsigned long *); |
| 11 | void (*restore)(unsigned long *); |
| 12 | int (*valid)(suspend_state_t state); |
| 13 | void (*enter)(suspend_state_t state); |
| Russell King | 4104980 | 2008-08-27 12:55:04 +0100 | [diff] [blame] | 14 | int (*prepare)(void); |
| 15 | void (*finish)(void); |
| Eric Miao | 711be5c | 2007-07-18 11:38:45 +0100 | [diff] [blame] | 16 | }; |
| 17 | |
| 18 | extern struct pxa_cpu_pm_fns *pxa_cpu_pm_fns; |
| 19 | |
| Eric Miao | b750a09 | 2007-07-18 11:40:13 +0100 | [diff] [blame] | 20 | /* sleep.S */ |
| Russell King | 29cb3cd | 2011-07-02 09:54:01 +0100 | [diff] [blame] | 21 | extern int pxa25x_finish_suspend(unsigned long); |
| 22 | extern int pxa27x_finish_suspend(unsigned long); |
| Eric Miao | b750a09 | 2007-07-18 11:40:13 +0100 | [diff] [blame] | 23 | |
| Richard Purdie | 756c7b7 | 2005-11-06 15:03:23 +0000 | [diff] [blame] | 24 | extern int pxa_pm_enter(suspend_state_t state); |
| Pavel Machek | 51cdd92 | 2009-06-11 23:25:09 +0800 | [diff] [blame] | 25 | extern int pxa_pm_prepare(void); |
| 26 | extern void pxa_pm_finish(void); |
| Eric Miao | 5438614 | 2009-01-19 18:43:12 +0800 | [diff] [blame] | 27 | |
| Arnd Bergmann | a9a54ca | 2016-01-29 15:06:30 +0100 | [diff] [blame] | 28 | extern const char pm_enter_standby_start[], pm_enter_standby_end[]; |
| 29 | extern int pxa3xx_finish_suspend(unsigned long); |
| 30 | |
| Eric Miao | 5438614 | 2009-01-19 18:43:12 +0800 | [diff] [blame] | 31 | /* NOTE: this is for PM debugging on Lubbock, it's really a big |
| 32 | * ugly, but let's keep the crap minimum here, instead of direct |
| 33 | * accessing the LUBBOCK CPLD registers in arch/arm/mach-pxa/pm.c |
| 34 | */ |
| 35 | #ifdef CONFIG_ARCH_LUBBOCK |
| 36 | extern void lubbock_set_hexled(uint32_t value); |
| 37 | #else |
| 38 | #define lubbock_set_hexled(x) |
| 39 | #endif |