xref: /OK3568_Linux_fs/kernel/arch/arm/mach-at91/pm.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun /* SPDX-License-Identifier: GPL-2.0-or-later */
2*4882a593Smuzhiyun /*
3*4882a593Smuzhiyun  * AT91 Power Management
4*4882a593Smuzhiyun  *
5*4882a593Smuzhiyun  * Copyright (C) 2005 David Brownell
6*4882a593Smuzhiyun  */
7*4882a593Smuzhiyun #ifndef __ARCH_ARM_MACH_AT91_PM
8*4882a593Smuzhiyun #define __ARCH_ARM_MACH_AT91_PM
9*4882a593Smuzhiyun 
10*4882a593Smuzhiyun #include <asm/proc-fns.h>
11*4882a593Smuzhiyun 
12*4882a593Smuzhiyun #include <linux/mfd/syscon/atmel-mc.h>
13*4882a593Smuzhiyun #include <soc/at91/at91sam9_ddrsdr.h>
14*4882a593Smuzhiyun #include <soc/at91/at91sam9_sdramc.h>
15*4882a593Smuzhiyun 
16*4882a593Smuzhiyun #define AT91_MEMCTRL_MC		0
17*4882a593Smuzhiyun #define AT91_MEMCTRL_SDRAMC	1
18*4882a593Smuzhiyun #define AT91_MEMCTRL_DDRSDR	2
19*4882a593Smuzhiyun 
20*4882a593Smuzhiyun #define	AT91_PM_STANDBY		0x00
21*4882a593Smuzhiyun #define AT91_PM_ULP0		0x01
22*4882a593Smuzhiyun #define AT91_PM_ULP0_FAST	0x02
23*4882a593Smuzhiyun #define AT91_PM_ULP1		0x03
24*4882a593Smuzhiyun #define	AT91_PM_BACKUP		0x04
25*4882a593Smuzhiyun 
26*4882a593Smuzhiyun #ifndef __ASSEMBLY__
27*4882a593Smuzhiyun struct at91_pm_data {
28*4882a593Smuzhiyun 	void __iomem *pmc;
29*4882a593Smuzhiyun 	void __iomem *ramc[2];
30*4882a593Smuzhiyun 	unsigned long uhp_udp_mask;
31*4882a593Smuzhiyun 	unsigned int memctrl;
32*4882a593Smuzhiyun 	unsigned int mode;
33*4882a593Smuzhiyun 	void __iomem *shdwc;
34*4882a593Smuzhiyun 	void __iomem *sfrbu;
35*4882a593Smuzhiyun 	unsigned int standby_mode;
36*4882a593Smuzhiyun 	unsigned int suspend_mode;
37*4882a593Smuzhiyun 	unsigned int pmc_mckr_offset;
38*4882a593Smuzhiyun 	unsigned int pmc_version;
39*4882a593Smuzhiyun };
40*4882a593Smuzhiyun #endif
41*4882a593Smuzhiyun 
42*4882a593Smuzhiyun #endif
43