xref: /openbmc/linux/drivers/soc/samsung/exynos4-pmu.c (revision bfce552d0b10e8fd79e703c67c084b4cf89ad68a)
1*bfce552dSPankaj Dubey /*
2*bfce552dSPankaj Dubey  * Copyright (c) 2011-2015 Samsung Electronics Co., Ltd.
3*bfce552dSPankaj Dubey  *		http://www.samsung.com/
4*bfce552dSPankaj Dubey  *
5*bfce552dSPankaj Dubey  * EXYNOS4 - CPU PMU(Power Management Unit) support
6*bfce552dSPankaj Dubey  *
7*bfce552dSPankaj Dubey  * This program is free software; you can redistribute it and/or modify
8*bfce552dSPankaj Dubey  * it under the terms of the GNU General Public License version 2 as
9*bfce552dSPankaj Dubey  * published by the Free Software Foundation.
10*bfce552dSPankaj Dubey  */
11*bfce552dSPankaj Dubey 
12*bfce552dSPankaj Dubey #include <linux/soc/samsung/exynos-regs-pmu.h>
13*bfce552dSPankaj Dubey #include <linux/soc/samsung/exynos-pmu.h>
14*bfce552dSPankaj Dubey 
15*bfce552dSPankaj Dubey #include "exynos-pmu.h"
16*bfce552dSPankaj Dubey 
17*bfce552dSPankaj Dubey static const struct exynos_pmu_conf exynos4210_pmu_config[] = {
18*bfce552dSPankaj Dubey 	/* { .offset = offset, .val = { AFTR, LPA, SLEEP } */
19*bfce552dSPankaj Dubey 	{ S5P_ARM_CORE0_LOWPWR,			{ 0x0, 0x0, 0x2 } },
20*bfce552dSPankaj Dubey 	{ S5P_DIS_IRQ_CORE0,			{ 0x0, 0x0, 0x0 } },
21*bfce552dSPankaj Dubey 	{ S5P_DIS_IRQ_CENTRAL0,			{ 0x0, 0x0, 0x0 } },
22*bfce552dSPankaj Dubey 	{ S5P_ARM_CORE1_LOWPWR,			{ 0x0, 0x0, 0x2 } },
23*bfce552dSPankaj Dubey 	{ S5P_DIS_IRQ_CORE1,			{ 0x0, 0x0, 0x0 } },
24*bfce552dSPankaj Dubey 	{ S5P_DIS_IRQ_CENTRAL1,			{ 0x0, 0x0, 0x0 } },
25*bfce552dSPankaj Dubey 	{ S5P_ARM_COMMON_LOWPWR,		{ 0x0, 0x0, 0x2 } },
26*bfce552dSPankaj Dubey 	{ S5P_L2_0_LOWPWR,			{ 0x2, 0x2, 0x3 } },
27*bfce552dSPankaj Dubey 	{ S5P_L2_1_LOWPWR,			{ 0x2, 0x2, 0x3 } },
28*bfce552dSPankaj Dubey 	{ S5P_CMU_ACLKSTOP_LOWPWR,		{ 0x1, 0x0, 0x0 } },
29*bfce552dSPankaj Dubey 	{ S5P_CMU_SCLKSTOP_LOWPWR,		{ 0x1, 0x0, 0x0 } },
30*bfce552dSPankaj Dubey 	{ S5P_CMU_RESET_LOWPWR,			{ 0x1, 0x1, 0x0 } },
31*bfce552dSPankaj Dubey 	{ S5P_APLL_SYSCLK_LOWPWR,		{ 0x1, 0x0, 0x0 } },
32*bfce552dSPankaj Dubey 	{ S5P_MPLL_SYSCLK_LOWPWR,		{ 0x1, 0x0, 0x0 } },
33*bfce552dSPankaj Dubey 	{ S5P_VPLL_SYSCLK_LOWPWR,		{ 0x1, 0x0, 0x0 } },
34*bfce552dSPankaj Dubey 	{ S5P_EPLL_SYSCLK_LOWPWR,		{ 0x1, 0x1, 0x0 } },
35*bfce552dSPankaj Dubey 	{ S5P_CMU_CLKSTOP_GPS_ALIVE_LOWPWR,	{ 0x1, 0x1, 0x0 } },
36*bfce552dSPankaj Dubey 	{ S5P_CMU_RESET_GPSALIVE_LOWPWR,	{ 0x1, 0x1, 0x0 } },
37*bfce552dSPankaj Dubey 	{ S5P_CMU_CLKSTOP_CAM_LOWPWR,		{ 0x1, 0x1, 0x0 } },
38*bfce552dSPankaj Dubey 	{ S5P_CMU_CLKSTOP_TV_LOWPWR,		{ 0x1, 0x1, 0x0 } },
39*bfce552dSPankaj Dubey 	{ S5P_CMU_CLKSTOP_MFC_LOWPWR,		{ 0x1, 0x1, 0x0 } },
40*bfce552dSPankaj Dubey 	{ S5P_CMU_CLKSTOP_G3D_LOWPWR,		{ 0x1, 0x1, 0x0 } },
41*bfce552dSPankaj Dubey 	{ S5P_CMU_CLKSTOP_LCD0_LOWPWR,		{ 0x1, 0x1, 0x0 } },
42*bfce552dSPankaj Dubey 	{ S5P_CMU_CLKSTOP_LCD1_LOWPWR,		{ 0x1, 0x1, 0x0 } },
43*bfce552dSPankaj Dubey 	{ S5P_CMU_CLKSTOP_MAUDIO_LOWPWR,	{ 0x1, 0x1, 0x0 } },
44*bfce552dSPankaj Dubey 	{ S5P_CMU_CLKSTOP_GPS_LOWPWR,		{ 0x1, 0x1, 0x0 } },
45*bfce552dSPankaj Dubey 	{ S5P_CMU_RESET_CAM_LOWPWR,		{ 0x1, 0x1, 0x0 } },
46*bfce552dSPankaj Dubey 	{ S5P_CMU_RESET_TV_LOWPWR,		{ 0x1, 0x1, 0x0 } },
47*bfce552dSPankaj Dubey 	{ S5P_CMU_RESET_MFC_LOWPWR,		{ 0x1, 0x1, 0x0 } },
48*bfce552dSPankaj Dubey 	{ S5P_CMU_RESET_G3D_LOWPWR,		{ 0x1, 0x1, 0x0 } },
49*bfce552dSPankaj Dubey 	{ S5P_CMU_RESET_LCD0_LOWPWR,		{ 0x1, 0x1, 0x0 } },
50*bfce552dSPankaj Dubey 	{ S5P_CMU_RESET_LCD1_LOWPWR,		{ 0x1, 0x1, 0x0 } },
51*bfce552dSPankaj Dubey 	{ S5P_CMU_RESET_MAUDIO_LOWPWR,		{ 0x1, 0x1, 0x0 } },
52*bfce552dSPankaj Dubey 	{ S5P_CMU_RESET_GPS_LOWPWR,		{ 0x1, 0x1, 0x0 } },
53*bfce552dSPankaj Dubey 	{ S5P_TOP_BUS_LOWPWR,			{ 0x3, 0x0, 0x0 } },
54*bfce552dSPankaj Dubey 	{ S5P_TOP_RETENTION_LOWPWR,		{ 0x1, 0x0, 0x1 } },
55*bfce552dSPankaj Dubey 	{ S5P_TOP_PWR_LOWPWR,			{ 0x3, 0x0, 0x3 } },
56*bfce552dSPankaj Dubey 	{ S5P_LOGIC_RESET_LOWPWR,		{ 0x1, 0x1, 0x0 } },
57*bfce552dSPankaj Dubey 	{ S5P_ONENAND_MEM_LOWPWR,		{ 0x3, 0x0, 0x0 } },
58*bfce552dSPankaj Dubey 	{ S5P_MODIMIF_MEM_LOWPWR,		{ 0x3, 0x0, 0x0 } },
59*bfce552dSPankaj Dubey 	{ S5P_G2D_ACP_MEM_LOWPWR,		{ 0x3, 0x0, 0x0 } },
60*bfce552dSPankaj Dubey 	{ S5P_USBOTG_MEM_LOWPWR,		{ 0x3, 0x0, 0x0 } },
61*bfce552dSPankaj Dubey 	{ S5P_HSMMC_MEM_LOWPWR,			{ 0x3, 0x0, 0x0 } },
62*bfce552dSPankaj Dubey 	{ S5P_CSSYS_MEM_LOWPWR,			{ 0x3, 0x0, 0x0 } },
63*bfce552dSPankaj Dubey 	{ S5P_SECSS_MEM_LOWPWR,			{ 0x3, 0x0, 0x0 } },
64*bfce552dSPankaj Dubey 	{ S5P_PCIE_MEM_LOWPWR,			{ 0x3, 0x0, 0x0 } },
65*bfce552dSPankaj Dubey 	{ S5P_SATA_MEM_LOWPWR,			{ 0x3, 0x0, 0x0 } },
66*bfce552dSPankaj Dubey 	{ S5P_PAD_RETENTION_DRAM_LOWPWR,	{ 0x1, 0x0, 0x0 } },
67*bfce552dSPankaj Dubey 	{ S5P_PAD_RETENTION_MAUDIO_LOWPWR,	{ 0x1, 0x1, 0x0 } },
68*bfce552dSPankaj Dubey 	{ S5P_PAD_RETENTION_GPIO_LOWPWR,	{ 0x1, 0x0, 0x0 } },
69*bfce552dSPankaj Dubey 	{ S5P_PAD_RETENTION_UART_LOWPWR,	{ 0x1, 0x0, 0x0 } },
70*bfce552dSPankaj Dubey 	{ S5P_PAD_RETENTION_MMCA_LOWPWR,	{ 0x1, 0x0, 0x0 } },
71*bfce552dSPankaj Dubey 	{ S5P_PAD_RETENTION_MMCB_LOWPWR,	{ 0x1, 0x0, 0x0 } },
72*bfce552dSPankaj Dubey 	{ S5P_PAD_RETENTION_EBIA_LOWPWR,	{ 0x1, 0x0, 0x0 } },
73*bfce552dSPankaj Dubey 	{ S5P_PAD_RETENTION_EBIB_LOWPWR,	{ 0x1, 0x0, 0x0 } },
74*bfce552dSPankaj Dubey 	{ S5P_PAD_RETENTION_ISOLATION_LOWPWR,	{ 0x1, 0x0, 0x0 } },
75*bfce552dSPankaj Dubey 	{ S5P_PAD_RETENTION_ALV_SEL_LOWPWR,	{ 0x1, 0x0, 0x0 } },
76*bfce552dSPankaj Dubey 	{ S5P_XUSBXTI_LOWPWR,			{ 0x1, 0x1, 0x0 } },
77*bfce552dSPankaj Dubey 	{ S5P_XXTI_LOWPWR,			{ 0x1, 0x1, 0x0 } },
78*bfce552dSPankaj Dubey 	{ S5P_EXT_REGULATOR_LOWPWR,		{ 0x1, 0x1, 0x0 } },
79*bfce552dSPankaj Dubey 	{ S5P_GPIO_MODE_LOWPWR,			{ 0x1, 0x0, 0x0 } },
80*bfce552dSPankaj Dubey 	{ S5P_GPIO_MODE_MAUDIO_LOWPWR,		{ 0x1, 0x1, 0x0 } },
81*bfce552dSPankaj Dubey 	{ S5P_CAM_LOWPWR,			{ 0x7, 0x0, 0x0 } },
82*bfce552dSPankaj Dubey 	{ S5P_TV_LOWPWR,			{ 0x7, 0x0, 0x0 } },
83*bfce552dSPankaj Dubey 	{ S5P_MFC_LOWPWR,			{ 0x7, 0x0, 0x0 } },
84*bfce552dSPankaj Dubey 	{ S5P_G3D_LOWPWR,			{ 0x7, 0x0, 0x0 } },
85*bfce552dSPankaj Dubey 	{ S5P_LCD0_LOWPWR,			{ 0x7, 0x0, 0x0 } },
86*bfce552dSPankaj Dubey 	{ S5P_LCD1_LOWPWR,			{ 0x7, 0x0, 0x0 } },
87*bfce552dSPankaj Dubey 	{ S5P_MAUDIO_LOWPWR,			{ 0x7, 0x7, 0x0 } },
88*bfce552dSPankaj Dubey 	{ S5P_GPS_LOWPWR,			{ 0x7, 0x0, 0x0 } },
89*bfce552dSPankaj Dubey 	{ S5P_GPS_ALIVE_LOWPWR,			{ 0x7, 0x0, 0x0 } },
90*bfce552dSPankaj Dubey 	{ PMU_TABLE_END,},
91*bfce552dSPankaj Dubey };
92*bfce552dSPankaj Dubey 
93*bfce552dSPankaj Dubey static const struct exynos_pmu_conf exynos4x12_pmu_config[] = {
94*bfce552dSPankaj Dubey 	{ S5P_ARM_CORE0_LOWPWR,			{ 0x0, 0x0, 0x2 } },
95*bfce552dSPankaj Dubey 	{ S5P_DIS_IRQ_CORE0,			{ 0x0, 0x0, 0x0 } },
96*bfce552dSPankaj Dubey 	{ S5P_DIS_IRQ_CENTRAL0,			{ 0x0, 0x0, 0x0 } },
97*bfce552dSPankaj Dubey 	{ S5P_ARM_CORE1_LOWPWR,			{ 0x0, 0x0, 0x2 } },
98*bfce552dSPankaj Dubey 	{ S5P_DIS_IRQ_CORE1,			{ 0x0, 0x0, 0x0 } },
99*bfce552dSPankaj Dubey 	{ S5P_DIS_IRQ_CENTRAL1,			{ 0x0, 0x0, 0x0 } },
100*bfce552dSPankaj Dubey 	{ S5P_ISP_ARM_LOWPWR,			{ 0x1, 0x0, 0x0 } },
101*bfce552dSPankaj Dubey 	{ S5P_DIS_IRQ_ISP_ARM_LOCAL_LOWPWR,	{ 0x0, 0x0, 0x0 } },
102*bfce552dSPankaj Dubey 	{ S5P_DIS_IRQ_ISP_ARM_CENTRAL_LOWPWR,	{ 0x0, 0x0, 0x0 } },
103*bfce552dSPankaj Dubey 	{ S5P_ARM_COMMON_LOWPWR,		{ 0x0, 0x0, 0x2 } },
104*bfce552dSPankaj Dubey 	{ S5P_L2_0_LOWPWR,			{ 0x0, 0x0, 0x3 } },
105*bfce552dSPankaj Dubey 	/* XXX_OPTION register should be set other field */
106*bfce552dSPankaj Dubey 	{ S5P_ARM_L2_0_OPTION,			{ 0x10, 0x10, 0x0 } },
107*bfce552dSPankaj Dubey 	{ S5P_L2_1_LOWPWR,			{ 0x0, 0x0, 0x3 } },
108*bfce552dSPankaj Dubey 	{ S5P_ARM_L2_1_OPTION,			{ 0x10, 0x10, 0x0 } },
109*bfce552dSPankaj Dubey 	{ S5P_CMU_ACLKSTOP_LOWPWR,		{ 0x1, 0x0, 0x0 } },
110*bfce552dSPankaj Dubey 	{ S5P_CMU_SCLKSTOP_LOWPWR,		{ 0x1, 0x0, 0x0 } },
111*bfce552dSPankaj Dubey 	{ S5P_CMU_RESET_LOWPWR,			{ 0x1, 0x1, 0x0 } },
112*bfce552dSPankaj Dubey 	{ S5P_DRAM_FREQ_DOWN_LOWPWR,		{ 0x1, 0x1, 0x1 } },
113*bfce552dSPankaj Dubey 	{ S5P_DDRPHY_DLLOFF_LOWPWR,		{ 0x1, 0x1, 0x1 } },
114*bfce552dSPankaj Dubey 	{ S5P_LPDDR_PHY_DLL_LOCK_LOWPWR,	{ 0x1, 0x1, 0x1 } },
115*bfce552dSPankaj Dubey 	{ S5P_CMU_ACLKSTOP_COREBLK_LOWPWR,	{ 0x1, 0x0, 0x0 } },
116*bfce552dSPankaj Dubey 	{ S5P_CMU_SCLKSTOP_COREBLK_LOWPWR,	{ 0x1, 0x0, 0x0 } },
117*bfce552dSPankaj Dubey 	{ S5P_CMU_RESET_COREBLK_LOWPWR,		{ 0x1, 0x1, 0x0 } },
118*bfce552dSPankaj Dubey 	{ S5P_APLL_SYSCLK_LOWPWR,		{ 0x1, 0x0, 0x0 } },
119*bfce552dSPankaj Dubey 	{ S5P_MPLL_SYSCLK_LOWPWR,		{ 0x1, 0x0, 0x0 } },
120*bfce552dSPankaj Dubey 	{ S5P_VPLL_SYSCLK_LOWPWR,		{ 0x1, 0x0, 0x0 } },
121*bfce552dSPankaj Dubey 	{ S5P_EPLL_SYSCLK_LOWPWR,		{ 0x1, 0x1, 0x0 } },
122*bfce552dSPankaj Dubey 	{ S5P_MPLLUSER_SYSCLK_LOWPWR,		{ 0x1, 0x0, 0x0 } },
123*bfce552dSPankaj Dubey 	{ S5P_CMU_CLKSTOP_GPS_ALIVE_LOWPWR,	{ 0x1, 0x0, 0x0 } },
124*bfce552dSPankaj Dubey 	{ S5P_CMU_RESET_GPSALIVE_LOWPWR,	{ 0x1, 0x0, 0x0 } },
125*bfce552dSPankaj Dubey 	{ S5P_CMU_CLKSTOP_CAM_LOWPWR,		{ 0x1, 0x0, 0x0 } },
126*bfce552dSPankaj Dubey 	{ S5P_CMU_CLKSTOP_TV_LOWPWR,		{ 0x1, 0x0, 0x0 } },
127*bfce552dSPankaj Dubey 	{ S5P_CMU_CLKSTOP_MFC_LOWPWR,		{ 0x1, 0x0, 0x0 } },
128*bfce552dSPankaj Dubey 	{ S5P_CMU_CLKSTOP_G3D_LOWPWR,		{ 0x1, 0x0, 0x0 } },
129*bfce552dSPankaj Dubey 	{ S5P_CMU_CLKSTOP_LCD0_LOWPWR,		{ 0x1, 0x0, 0x0 } },
130*bfce552dSPankaj Dubey 	{ S5P_CMU_CLKSTOP_ISP_LOWPWR,		{ 0x1, 0x0, 0x0 } },
131*bfce552dSPankaj Dubey 	{ S5P_CMU_CLKSTOP_MAUDIO_LOWPWR,	{ 0x1, 0x0, 0x0 } },
132*bfce552dSPankaj Dubey 	{ S5P_CMU_CLKSTOP_GPS_LOWPWR,		{ 0x1, 0x0, 0x0 } },
133*bfce552dSPankaj Dubey 	{ S5P_CMU_RESET_CAM_LOWPWR,		{ 0x1, 0x0, 0x0 } },
134*bfce552dSPankaj Dubey 	{ S5P_CMU_RESET_TV_LOWPWR,		{ 0x1, 0x0, 0x0 } },
135*bfce552dSPankaj Dubey 	{ S5P_CMU_RESET_MFC_LOWPWR,		{ 0x1, 0x0, 0x0 } },
136*bfce552dSPankaj Dubey 	{ S5P_CMU_RESET_G3D_LOWPWR,		{ 0x1, 0x0, 0x0 } },
137*bfce552dSPankaj Dubey 	{ S5P_CMU_RESET_LCD0_LOWPWR,		{ 0x1, 0x0, 0x0 } },
138*bfce552dSPankaj Dubey 	{ S5P_CMU_RESET_ISP_LOWPWR,		{ 0x1, 0x0, 0x0 } },
139*bfce552dSPankaj Dubey 	{ S5P_CMU_RESET_MAUDIO_LOWPWR,		{ 0x1, 0x1, 0x0 } },
140*bfce552dSPankaj Dubey 	{ S5P_CMU_RESET_GPS_LOWPWR,		{ 0x1, 0x0, 0x0 } },
141*bfce552dSPankaj Dubey 	{ S5P_TOP_BUS_LOWPWR,			{ 0x3, 0x0, 0x0 } },
142*bfce552dSPankaj Dubey 	{ S5P_TOP_RETENTION_LOWPWR,		{ 0x1, 0x0, 0x1 } },
143*bfce552dSPankaj Dubey 	{ S5P_TOP_PWR_LOWPWR,			{ 0x3, 0x0, 0x3 } },
144*bfce552dSPankaj Dubey 	{ S5P_TOP_BUS_COREBLK_LOWPWR,		{ 0x3, 0x0, 0x0 } },
145*bfce552dSPankaj Dubey 	{ S5P_TOP_RETENTION_COREBLK_LOWPWR,	{ 0x1, 0x0, 0x1 } },
146*bfce552dSPankaj Dubey 	{ S5P_TOP_PWR_COREBLK_LOWPWR,		{ 0x3, 0x0, 0x3 } },
147*bfce552dSPankaj Dubey 	{ S5P_LOGIC_RESET_LOWPWR,		{ 0x1, 0x1, 0x0 } },
148*bfce552dSPankaj Dubey 	{ S5P_OSCCLK_GATE_LOWPWR,		{ 0x1, 0x0, 0x1 } },
149*bfce552dSPankaj Dubey 	{ S5P_LOGIC_RESET_COREBLK_LOWPWR,	{ 0x1, 0x1, 0x0 } },
150*bfce552dSPankaj Dubey 	{ S5P_OSCCLK_GATE_COREBLK_LOWPWR,	{ 0x1, 0x0, 0x1 } },
151*bfce552dSPankaj Dubey 	{ S5P_ONENAND_MEM_LOWPWR,		{ 0x3, 0x0, 0x0 } },
152*bfce552dSPankaj Dubey 	{ S5P_ONENAND_MEM_OPTION,		{ 0x10, 0x10, 0x0 } },
153*bfce552dSPankaj Dubey 	{ S5P_HSI_MEM_LOWPWR,			{ 0x3, 0x0, 0x0 } },
154*bfce552dSPankaj Dubey 	{ S5P_HSI_MEM_OPTION,			{ 0x10, 0x10, 0x0 } },
155*bfce552dSPankaj Dubey 	{ S5P_G2D_ACP_MEM_LOWPWR,		{ 0x3, 0x0, 0x0 } },
156*bfce552dSPankaj Dubey 	{ S5P_G2D_ACP_MEM_OPTION,		{ 0x10, 0x10, 0x0 } },
157*bfce552dSPankaj Dubey 	{ S5P_USBOTG_MEM_LOWPWR,		{ 0x3, 0x0, 0x0 } },
158*bfce552dSPankaj Dubey 	{ S5P_USBOTG_MEM_OPTION,		{ 0x10, 0x10, 0x0 } },
159*bfce552dSPankaj Dubey 	{ S5P_HSMMC_MEM_LOWPWR,			{ 0x3, 0x0, 0x0 } },
160*bfce552dSPankaj Dubey 	{ S5P_HSMMC_MEM_OPTION,			{ 0x10, 0x10, 0x0 } },
161*bfce552dSPankaj Dubey 	{ S5P_CSSYS_MEM_LOWPWR,			{ 0x3, 0x0, 0x0 } },
162*bfce552dSPankaj Dubey 	{ S5P_CSSYS_MEM_OPTION,			{ 0x10, 0x10, 0x0 } },
163*bfce552dSPankaj Dubey 	{ S5P_SECSS_MEM_LOWPWR,			{ 0x3, 0x0, 0x0 } },
164*bfce552dSPankaj Dubey 	{ S5P_SECSS_MEM_OPTION,			{ 0x10, 0x10, 0x0 } },
165*bfce552dSPankaj Dubey 	{ S5P_ROTATOR_MEM_LOWPWR,		{ 0x3, 0x0, 0x0 } },
166*bfce552dSPankaj Dubey 	{ S5P_ROTATOR_MEM_OPTION,		{ 0x10, 0x10, 0x0 } },
167*bfce552dSPankaj Dubey 	{ S5P_PAD_RETENTION_DRAM_LOWPWR,	{ 0x1, 0x0, 0x0 } },
168*bfce552dSPankaj Dubey 	{ S5P_PAD_RETENTION_MAUDIO_LOWPWR,	{ 0x1, 0x1, 0x0 } },
169*bfce552dSPankaj Dubey 	{ S5P_PAD_RETENTION_GPIO_LOWPWR,	{ 0x1, 0x0, 0x0 } },
170*bfce552dSPankaj Dubey 	{ S5P_PAD_RETENTION_UART_LOWPWR,	{ 0x1, 0x0, 0x0 } },
171*bfce552dSPankaj Dubey 	{ S5P_PAD_RETENTION_MMCA_LOWPWR,	{ 0x1, 0x0, 0x0 } },
172*bfce552dSPankaj Dubey 	{ S5P_PAD_RETENTION_MMCB_LOWPWR,	{ 0x1, 0x0, 0x0 } },
173*bfce552dSPankaj Dubey 	{ S5P_PAD_RETENTION_EBIA_LOWPWR,	{ 0x1, 0x0, 0x0 } },
174*bfce552dSPankaj Dubey 	{ S5P_PAD_RETENTION_EBIB_LOWPWR,	{ 0x1, 0x0, 0x0 } },
175*bfce552dSPankaj Dubey 	{ S5P_PAD_RETENTION_GPIO_COREBLK_LOWPWR, { 0x1, 0x0, 0x0 } },
176*bfce552dSPankaj Dubey 	{ S5P_PAD_RETENTION_ISOLATION_LOWPWR,	{ 0x1, 0x0, 0x0 } },
177*bfce552dSPankaj Dubey 	{ S5P_PAD_ISOLATION_COREBLK_LOWPWR,	{ 0x1, 0x0, 0x0 } },
178*bfce552dSPankaj Dubey 	{ S5P_PAD_RETENTION_ALV_SEL_LOWPWR,	{ 0x1, 0x0, 0x0 } },
179*bfce552dSPankaj Dubey 	{ S5P_XUSBXTI_LOWPWR,			{ 0x1, 0x1, 0x0 } },
180*bfce552dSPankaj Dubey 	{ S5P_XXTI_LOWPWR,			{ 0x1, 0x1, 0x0 } },
181*bfce552dSPankaj Dubey 	{ S5P_EXT_REGULATOR_LOWPWR,		{ 0x1, 0x1, 0x0 } },
182*bfce552dSPankaj Dubey 	{ S5P_GPIO_MODE_LOWPWR,			{ 0x1, 0x0, 0x0 } },
183*bfce552dSPankaj Dubey 	{ S5P_GPIO_MODE_COREBLK_LOWPWR,		{ 0x1, 0x0, 0x0 } },
184*bfce552dSPankaj Dubey 	{ S5P_GPIO_MODE_MAUDIO_LOWPWR,		{ 0x1, 0x1, 0x0 } },
185*bfce552dSPankaj Dubey 	{ S5P_TOP_ASB_RESET_LOWPWR,		{ 0x1, 0x1, 0x1 } },
186*bfce552dSPankaj Dubey 	{ S5P_TOP_ASB_ISOLATION_LOWPWR,		{ 0x1, 0x0, 0x1 } },
187*bfce552dSPankaj Dubey 	{ S5P_CAM_LOWPWR,			{ 0x7, 0x0, 0x0 } },
188*bfce552dSPankaj Dubey 	{ S5P_TV_LOWPWR,			{ 0x7, 0x0, 0x0 } },
189*bfce552dSPankaj Dubey 	{ S5P_MFC_LOWPWR,			{ 0x7, 0x0, 0x0 } },
190*bfce552dSPankaj Dubey 	{ S5P_G3D_LOWPWR,			{ 0x7, 0x0, 0x0 } },
191*bfce552dSPankaj Dubey 	{ S5P_LCD0_LOWPWR,			{ 0x7, 0x0, 0x0 } },
192*bfce552dSPankaj Dubey 	{ S5P_ISP_LOWPWR,			{ 0x7, 0x0, 0x0 } },
193*bfce552dSPankaj Dubey 	{ S5P_MAUDIO_LOWPWR,			{ 0x7, 0x7, 0x0 } },
194*bfce552dSPankaj Dubey 	{ S5P_GPS_LOWPWR,			{ 0x7, 0x0, 0x0 } },
195*bfce552dSPankaj Dubey 	{ S5P_GPS_ALIVE_LOWPWR,			{ 0x7, 0x0, 0x0 } },
196*bfce552dSPankaj Dubey 	{ S5P_CMU_SYSCLK_ISP_LOWPWR,		{ 0x1, 0x0, 0x0 } },
197*bfce552dSPankaj Dubey 	{ S5P_CMU_SYSCLK_GPS_LOWPWR,		{ 0x1, 0x0, 0x0 } },
198*bfce552dSPankaj Dubey 	{ PMU_TABLE_END,},
199*bfce552dSPankaj Dubey };
200*bfce552dSPankaj Dubey 
201*bfce552dSPankaj Dubey static const struct exynos_pmu_conf exynos4412_pmu_config[] = {
202*bfce552dSPankaj Dubey 	{ S5P_ARM_CORE2_LOWPWR,			{ 0x0, 0x0, 0x2 } },
203*bfce552dSPankaj Dubey 	{ S5P_DIS_IRQ_CORE2,			{ 0x0, 0x0, 0x0 } },
204*bfce552dSPankaj Dubey 	{ S5P_DIS_IRQ_CENTRAL2,			{ 0x0, 0x0, 0x0 } },
205*bfce552dSPankaj Dubey 	{ S5P_ARM_CORE3_LOWPWR,			{ 0x0, 0x0, 0x2 } },
206*bfce552dSPankaj Dubey 	{ S5P_DIS_IRQ_CORE3,			{ 0x0, 0x0, 0x0 } },
207*bfce552dSPankaj Dubey 	{ S5P_DIS_IRQ_CENTRAL3,			{ 0x0, 0x0, 0x0 } },
208*bfce552dSPankaj Dubey 	{ PMU_TABLE_END,},
209*bfce552dSPankaj Dubey };
210*bfce552dSPankaj Dubey 
211*bfce552dSPankaj Dubey const struct exynos_pmu_data exynos4210_pmu_data = {
212*bfce552dSPankaj Dubey 	.pmu_config	= exynos4210_pmu_config,
213*bfce552dSPankaj Dubey };
214*bfce552dSPankaj Dubey 
215*bfce552dSPankaj Dubey const struct exynos_pmu_data exynos4212_pmu_data = {
216*bfce552dSPankaj Dubey 	.pmu_config	= exynos4x12_pmu_config,
217*bfce552dSPankaj Dubey };
218*bfce552dSPankaj Dubey 
219*bfce552dSPankaj Dubey const struct exynos_pmu_data exynos4412_pmu_data = {
220*bfce552dSPankaj Dubey 	.pmu_config		= exynos4x12_pmu_config,
221*bfce552dSPankaj Dubey 	.pmu_config_extra	= exynos4412_pmu_config,
222*bfce552dSPankaj Dubey };
223