1 | /* SPDX-License-Identifier: GPL-2.0 */ |
2 | /* |
3 | * Copyright (C) 2013 Samsung Electronics Co., Ltd. |
4 | * Tomasz Figa <t.figa@samsung.com> |
5 | * Copyright (c) 2004 Simtec Electronics |
6 | * http://armlinux.simtec.co.uk/ |
7 | * Written by Ben Dooks, <ben@simtec.co.uk> |
8 | */ |
9 | |
10 | #ifndef __PLAT_SAMSUNG_PM_COMMON_H |
11 | #define __PLAT_SAMSUNG_PM_COMMON_H __FILE__ |
12 | |
13 | #include <linux/irq.h> |
14 | #include <linux/soc/samsung/s3c-pm.h> |
15 | |
16 | /* sleep save info */ |
17 | |
18 | /** |
19 | * struct sleep_save - save information for shared peripherals. |
20 | * @reg: Pointer to the register to save. |
21 | * @val: Holder for the value saved from reg. |
22 | * |
23 | * This describes a list of registers which is used by the pm core and |
24 | * other subsystem to save and restore register values over suspend. |
25 | */ |
26 | struct sleep_save { |
27 | void __iomem *reg; |
28 | unsigned long val; |
29 | }; |
30 | |
31 | #define SAVE_ITEM(x) \ |
32 | { .reg = (x) } |
33 | |
34 | /* helper functions to save/restore lists of registers. */ |
35 | |
36 | extern void s3c_pm_do_save(struct sleep_save *ptr, int count); |
37 | extern void s3c_pm_do_restore(const struct sleep_save *ptr, int count); |
38 | extern void s3c_pm_do_restore_core(const struct sleep_save *ptr, int count); |
39 | |
40 | #endif |
41 | |