/* SPDX-License-Identifier: GPL-2.0 */ /* * Copyright (C) 2013 Samsung Electronics Co., Ltd. * Tomasz Figa <t.figa@samsung.com> * Copyright (c) 2004 Simtec Electronics * http://armlinux.simtec.co.uk/ * Written by Ben Dooks, <ben@simtec.co.uk> */ #ifndef __PLAT_SAMSUNG_PM_COMMON_H #define __PLAT_SAMSUNG_PM_COMMON_H __FILE__ #include <linux/irq.h> #include <linux/soc/samsung/s3c-pm.h> /* sleep save info */ /** * struct sleep_save - save information for shared peripherals. * @reg: Pointer to the register to save. * @val: Holder for the value saved from reg. * * This describes a list of registers which is used by the pm core and * other subsystem to save and restore register values over suspend. */ struct sleep_save { void __iomem *reg; unsigned long val; }; #define SAVE_ITEM(x) \ { .reg = (x) } /* helper functions to save/restore lists of registers. */ extern void s3c_pm_do_save(struct sleep_save *ptr, int count); extern void s3c_pm_do_restore(const struct sleep_save *ptr, int count); extern void s3c_pm_do_restore_core(const struct sleep_save *ptr, int count); #endif