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