1 /*
2  * Copyright (c) 2014-2015, Linaro Ltd and Contributors. All rights reserved.
3  * Copyright (c) 2014-2015, Hisilicon Ltd and Contributors. All rights reserved.
4  *
5  * Redistribution and use in source and binary forms, with or without
6  * modification, are permitted provided that the following conditions are met:
7  *
8  * Redistributions of source code must retain the above copyright notice, this
9  * list of conditions and the following disclaimer.
10  *
11  * Redistributions in binary form must reproduce the above copyright notice,
12  * this list of conditions and the following disclaimer in the documentation
13  * and/or other materials provided with the distribution.
14  *
15  * Neither the name of ARM nor the names of its contributors may be used
16  * to endorse or promote products derived from this software without specific
17  * prior written permission.
18  *
19  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
20  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
21  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
22  * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
23  * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
24  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
25  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
26  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
27  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
28  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
29  * POSSIBILITY OF SUCH DAMAGE.
30  */
31 
32 #ifndef __HI6220_REGS_ACPU_H__
33 #define __HI6220_REGS_ACPU_H__
34 
35 #define ACPU_CTRL_BASE				0xF6504000
36 
37 #define ACPU_SC_CPU_CTRL			(ACPU_CTRL_BASE + 0x000)
38 #define ACPU_SC_CPU_STAT			(ACPU_CTRL_BASE + 0x008)
39 #define ACPU_SC_CPU_STAT_SC_STANDBYWFIL2		(1 << 0)
40 #define ACPU_SC_CPU_STAT_SC_STANDBYWFIL2_SHIFT		(0)
41 #define ACPU_SC_CPU_STAT_SC_STANDBYWFI0			(1 << 1)
42 #define ACPU_SC_CPU_STAT_SC_STANDBYWFI0_SHIFT		(1)
43 #define ACPU_SC_CPU_STAT_SC_STANDBYWFI1			(1 << 2)
44 #define ACPU_SC_CPU_STAT_SC_STANDBYWFI1_SHIFT		(2)
45 #define ACPU_SC_CPU_STAT_SC_STANDBYWFI2			(1 << 3)
46 #define ACPU_SC_CPU_STAT_SC_STANDBYWFI2_SHIFT		(3)
47 #define ACPU_SC_CPU_STAT_SC_STANDBYWFI3			(1 << 4)
48 #define ACPU_SC_CPU_STAT_SC_STANDBYWFI3_SHIFT		(4)
49 #define ACPU_SC_CPU_STAT_A53_1_STANDBYWFIL2		(1 << 8)
50 #define ACPU_SC_CPU_STAT_A53_1_STANDBYWFIL2_SHIFT	(8)
51 #define ACPU_SC_CPU_STAT_A53_1_STANDBYWFI		(1 << 9)
52 #define ACPU_SC_CPU_STAT_A53_1_STANDBYWFI_SHIFT		(9)
53 #define ACPU_SC_CPU_STAT_L2FLSHUDONE0			(1 << 16)
54 #define ACPU_SC_CPU_STAT_L2FLSHUDONE0_SHIFT		(16)
55 #define ACPU_SC_CPU_STAT_L2FLSHUDONE1			(1 << 17)
56 #define ACPU_SC_CPU_STAT_L2FLSHUDONE1_SHIFT		(17)
57 #define ACPU_SC_CPU_STAT_CCI400_ACTIVE			(1 << 18)
58 #define ACPU_SC_CPU_STAT_CCI400_ACTIVE_SHIFT		(18)
59 #define ACPU_SC_CPU_STAT_CLK_DIV_STATUS_VD		(1 << 20)
60 #define ACPU_SC_CPU_STAT_CLK_DIV_STATUS_VD_SHIFT	(20)
61 
62 #define ACPU_SC_CLKEN				(ACPU_CTRL_BASE + 0x00c)
63 #define HPM_L2_1_CLKEN				(1 << 9)
64 #define G_CPU_1_CLKEN				(1 << 8)
65 #define HPM_L2_CLKEN				(1 << 1)
66 #define G_CPU_CLKEN				(1 << 0)
67 
68 #define ACPU_SC_CLKDIS				(ACPU_CTRL_BASE + 0x010)
69 #define ACPU_SC_CLK_STAT			(ACPU_CTRL_BASE + 0x014)
70 #define ACPU_SC_RSTEN				(ACPU_CTRL_BASE + 0x018)
71 #define SRST_PRESET1_RSTEN			(1 << 11)
72 #define SRST_PRESET0_RSTEN			(1 << 10)
73 #define SRST_CLUSTER1_RSTEN			(1 << 9)
74 #define SRST_CLUSTER0_RSTEN			(1 << 8)
75 #define SRST_L2_HPM_1_RSTEN			(1 << 5)
76 #define SRST_AARM_L2_1_RSTEN			(1 << 4)
77 #define SRST_L2_HPM_0_RSTEN			(1 << 3)
78 #define SRST_AARM_L2_0_RSTEN			(1 << 1)
79 #define SRST_CLUSTER1				(SRST_PRESET1_RSTEN | \
80 						 SRST_CLUSTER1_RSTEN | \
81 						 SRST_L2_HPM_1_RSTEN | \
82 						 SRST_AARM_L2_1_RSTEN)
83 #define SRST_CLUSTER0				(SRST_PRESET0_RSTEN | \
84 						 SRST_CLUSTER0_RSTEN | \
85 						 SRST_L2_HPM_0_RSTEN | \
86 						 SRST_AARM_L2_0_RSTEN)
87 
88 #define ACPU_SC_RSTDIS				(ACPU_CTRL_BASE + 0x01c)
89 #define ACPU_SC_RST_STAT			(ACPU_CTRL_BASE + 0x020)
90 #define ACPU_SC_PDBGUP_MBIST			(ACPU_CTRL_BASE + 0x02c)
91 #define PDBGUP_CLUSTER1_SHIFT			8
92 
93 #define ACPU_SC_VD_CTRL				(ACPU_CTRL_BASE + 0x054)
94 #define ACPU_SC_VD_MASK_PATTERN_CTRL		(ACPU_CTRL_BASE + 0x058)
95 #define ACPU_SC_VD_MASK_PATTERN_VAL		(0xCCB << 12)
96 #define ACPU_SC_VD_MASK_PATTERN_MASK		((0x1 << 13) - 1)
97 
98 #define ACPU_SC_VD_DLY_FIXED_CTRL		(ACPU_CTRL_BASE + 0x05c)
99 #define ACPU_SC_VD_DLY_TABLE0_CTRL		(ACPU_CTRL_BASE + 0x060)
100 #define ACPU_SC_VD_DLY_TABLE1_CTRL		(ACPU_CTRL_BASE + 0x064)
101 #define ACPU_SC_VD_DLY_TABLE2_CTRL		(ACPU_CTRL_BASE + 0x068)
102 #define ACPU_SC_VD_HPM_CTRL			(ACPU_CTRL_BASE + 0x06c)
103 #define ACPU_SC_A53_CLUSTER_MTCMOS_EN		(ACPU_CTRL_BASE + 0x088)
104 #define PW_MTCMOS_EN_A53_1_EN			(1 << 1)
105 #define PW_MTCMOS_EN_A53_0_EN			(1 << 0)
106 
107 #define ACPU_SC_A53_CLUSTER_MTCMOS_STA		(ACPU_CTRL_BASE + 0x090)
108 #define ACPU_SC_A53_CLUSTER_ISO_EN		(ACPU_CTRL_BASE + 0x098)
109 #define PW_ISO_A53_1_EN				(1 << 1)
110 #define PW_ISO_A53_0_EN				(1 << 0)
111 
112 #define ACPU_SC_A53_CLUSTER_ISO_DIS		(ACPU_CTRL_BASE + 0x09c)
113 #define ACPU_SC_A53_CLUSTER_ISO_STA		(ACPU_CTRL_BASE + 0x0a0)
114 #define ACPU_SC_A53_1_MTCMOS_TIMER		(ACPU_CTRL_BASE + 0x0b4)
115 #define ACPU_SC_A53_0_MTCMOS_TIMER		(ACPU_CTRL_BASE + 0x0bc)
116 #define ACPU_SC_A53_x_MTCMOS_TIMER(x)		((x) ? ACPU_SC_A53_1_MTCMOS_TIMER : ACPU_SC_A53_0_MTCMOS_TIMER)
117 
118 #define ACPU_SC_CPU0_CTRL			(ACPU_CTRL_BASE + 0x100)
119 #define CPU_CTRL_AARCH64_MODE			(1 << 7)
120 
121 #define ACPU_SC_CPU0_STAT			(ACPU_CTRL_BASE + 0x104)
122 #define ACPU_SC_CPU0_CLKEN			(ACPU_CTRL_BASE + 0x108)
123 #define CPU_CLKEN_HPM				(1 << 1)
124 
125 #define ACPU_SC_CPU0_CLK_STAT			(ACPU_CTRL_BASE + 0x110)
126 
127 #define ACPU_SC_CPU0_RSTEN			(ACPU_CTRL_BASE + 0x114)
128 #define ACPU_SC_CPU0_RSTDIS			(ACPU_CTRL_BASE + 0x118)
129 #define ACPU_SC_CPU0_MTCMOS_EN			(ACPU_CTRL_BASE + 0x120)
130 #define CPU_MTCMOS_PW				(1 << 0)
131 
132 #define ACPU_SC_CPU0_PW_ISOEN			(ACPU_CTRL_BASE + 0x130)
133 #define CPU_PW_ISO				(1 << 0)
134 
135 #define ACPU_SC_CPU0_PW_ISODIS			(ACPU_CTRL_BASE + 0x134)
136 #define ACPU_SC_CPU0_PW_ISO_STAT		(ACPU_CTRL_BASE + 0x138)
137 #define ACPU_SC_CPU0_MTCMOS_TIMER_STAT		(ACPU_CTRL_BASE + 0x154)
138 #define CPU_MTCMOS_TIMER_STA			(1 << 0)
139 
140 #define ACPU_SC_CPU0_RVBARADDR			(ACPU_CTRL_BASE + 0x158)
141 #define ACPU_SC_CPU1_CTRL			(ACPU_CTRL_BASE + 0x200)
142 #define ACPU_SC_CPU1_STAT			(ACPU_CTRL_BASE + 0x204)
143 #define ACPU_SC_CPU1_CLKEN			(ACPU_CTRL_BASE + 0x208)
144 #define ACPU_SC_CPU1_CLK_STAT			(ACPU_CTRL_BASE + 0x210)
145 #define ACPU_SC_CPU1_RSTEN			(ACPU_CTRL_BASE + 0x214)
146 #define ACPU_SC_CPU1_RSTDIS			(ACPU_CTRL_BASE + 0x218)
147 #define ACPU_SC_CPU1_MTCMOS_EN			(ACPU_CTRL_BASE + 0x220)
148 #define ACPU_SC_CPU1_PW_ISODIS			(ACPU_CTRL_BASE + 0x234)
149 #define ACPU_SC_CPU1_PW_ISO_STAT		(ACPU_CTRL_BASE + 0x238)
150 #define ACPU_SC_CPU1_MTCMOS_TIMER_STAT		(ACPU_CTRL_BASE + 0x254)
151 #define ACPU_SC_CPU1_RVBARADDR			(ACPU_CTRL_BASE + 0x258)
152 #define ACPU_SC_CPU2_CTRL			(ACPU_CTRL_BASE + 0x300)
153 #define ACPU_SC_CPU2_STAT			(ACPU_CTRL_BASE + 0x304)
154 #define ACPU_SC_CPU2_CLKEN			(ACPU_CTRL_BASE + 0x308)
155 #define ACPU_SC_CPU2_CLK_STAT			(ACPU_CTRL_BASE + 0x310)
156 #define ACPU_SC_CPU2_RSTEN			(ACPU_CTRL_BASE + 0x314)
157 #define ACPU_SC_CPU2_RSTDIS			(ACPU_CTRL_BASE + 0x318)
158 #define ACPU_SC_CPU2_MTCMOS_EN			(ACPU_CTRL_BASE + 0x320)
159 #define ACPU_SC_CPU2_PW_ISODIS			(ACPU_CTRL_BASE + 0x334)
160 #define ACPU_SC_CPU2_PW_ISO_STAT		(ACPU_CTRL_BASE + 0x338)
161 #define ACPU_SC_CPU2_MTCMOS_TIMER_STAT		(ACPU_CTRL_BASE + 0x354)
162 #define ACPU_SC_CPU2_RVBARADDR			(ACPU_CTRL_BASE + 0x358)
163 #define ACPU_SC_CPU3_CTRL			(ACPU_CTRL_BASE + 0x400)
164 #define ACPU_SC_CPU3_STAT			(ACPU_CTRL_BASE + 0x404)
165 #define ACPU_SC_CPU3_CLKEN			(ACPU_CTRL_BASE + 0x408)
166 #define ACPU_SC_CPU3_CLK_STAT			(ACPU_CTRL_BASE + 0x410)
167 #define ACPU_SC_CPU3_RSTEN			(ACPU_CTRL_BASE + 0x414)
168 #define ACPU_SC_CPU3_RSTDIS			(ACPU_CTRL_BASE + 0x418)
169 #define ACPU_SC_CPU3_MTCMOS_EN			(ACPU_CTRL_BASE + 0x420)
170 #define ACPU_SC_CPU3_PW_ISODIS			(ACPU_CTRL_BASE + 0x434)
171 #define ACPU_SC_CPU3_PW_ISO_STAT		(ACPU_CTRL_BASE + 0x438)
172 #define ACPU_SC_CPU3_MTCMOS_TIMER_STAT		(ACPU_CTRL_BASE + 0x454)
173 #define ACPU_SC_CPU3_RVBARADDR			(ACPU_CTRL_BASE + 0x458)
174 #define ACPU_SC_CPU4_CTRL			(ACPU_CTRL_BASE + 0x500)
175 #define ACPU_SC_CPU4_STAT			(ACPU_CTRL_BASE + 0x504)
176 #define ACPU_SC_CPU4_CLKEN			(ACPU_CTRL_BASE + 0x508)
177 #define ACPU_SC_CPU4_CLK_STAT			(ACPU_CTRL_BASE + 0x510)
178 #define ACPU_SC_CPU4_RSTEN			(ACPU_CTRL_BASE + 0x514)
179 #define ACPU_SC_CPU4_RSTDIS			(ACPU_CTRL_BASE + 0x518)
180 #define ACPU_SC_CPU4_MTCMOS_EN			(ACPU_CTRL_BASE + 0x520)
181 #define ACPU_SC_CPU4_PW_ISODIS			(ACPU_CTRL_BASE + 0x534)
182 #define ACPU_SC_CPU4_PW_ISO_STAT		(ACPU_CTRL_BASE + 0x538)
183 #define ACPU_SC_CPU4_MTCMOS_TIMER_STAT		(ACPU_CTRL_BASE + 0x554)
184 #define ACPU_SC_CPU4_RVBARADDR			(ACPU_CTRL_BASE + 0x558)
185 #define ACPU_SC_CPU5_CTRL			(ACPU_CTRL_BASE + 0x600)
186 #define ACPU_SC_CPU5_STAT			(ACPU_CTRL_BASE + 0x604)
187 #define ACPU_SC_CPU5_CLKEN			(ACPU_CTRL_BASE + 0x608)
188 #define ACPU_SC_CPU5_CLK_STAT			(ACPU_CTRL_BASE + 0x610)
189 #define ACPU_SC_CPU5_RSTEN			(ACPU_CTRL_BASE + 0x614)
190 #define ACPU_SC_CPU5_RSTDIS			(ACPU_CTRL_BASE + 0x618)
191 #define ACPU_SC_CPU5_MTCMOS_EN			(ACPU_CTRL_BASE + 0x620)
192 #define ACPU_SC_CPU5_PW_ISODIS			(ACPU_CTRL_BASE + 0x634)
193 #define ACPU_SC_CPU5_PW_ISO_STAT		(ACPU_CTRL_BASE + 0x638)
194 #define ACPU_SC_CPU5_MTCMOS_TIMER_STAT		(ACPU_CTRL_BASE + 0x654)
195 #define ACPU_SC_CPU5_RVBARADDR			(ACPU_CTRL_BASE + 0x658)
196 #define ACPU_SC_CPU6_CTRL			(ACPU_CTRL_BASE + 0x700)
197 #define ACPU_SC_CPU6_STAT			(ACPU_CTRL_BASE + 0x704)
198 #define ACPU_SC_CPU6_CLKEN			(ACPU_CTRL_BASE + 0x708)
199 #define ACPU_SC_CPU6_CLK_STAT			(ACPU_CTRL_BASE + 0x710)
200 #define ACPU_SC_CPU6_RSTEN			(ACPU_CTRL_BASE + 0x714)
201 #define ACPU_SC_CPU6_RSTDIS			(ACPU_CTRL_BASE + 0x718)
202 #define ACPU_SC_CPU6_MTCMOS_EN			(ACPU_CTRL_BASE + 0x720)
203 #define ACPU_SC_CPU6_PW_ISODIS			(ACPU_CTRL_BASE + 0x734)
204 #define ACPU_SC_CPU6_PW_ISO_STAT		(ACPU_CTRL_BASE + 0x738)
205 #define ACPU_SC_CPU6_MTCMOS_TIMER_STAT		(ACPU_CTRL_BASE + 0x754)
206 #define ACPU_SC_CPU6_RVBARADDR			(ACPU_CTRL_BASE + 0x758)
207 #define ACPU_SC_CPU7_CTRL			(ACPU_CTRL_BASE + 0x800)
208 #define ACPU_SC_CPU7_STAT			(ACPU_CTRL_BASE + 0x804)
209 #define ACPU_SC_CPU7_CLKEN			(ACPU_CTRL_BASE + 0x808)
210 #define ACPU_SC_CPU7_CLK_STAT			(ACPU_CTRL_BASE + 0x810)
211 #define ACPU_SC_CPU7_RSTEN			(ACPU_CTRL_BASE + 0x814)
212 #define ACPU_SC_CPU7_RSTDIS			(ACPU_CTRL_BASE + 0x818)
213 #define ACPU_SC_CPU7_MTCMOS_EN			(ACPU_CTRL_BASE + 0x820)
214 #define ACPU_SC_CPU7_PW_ISODIS			(ACPU_CTRL_BASE + 0x834)
215 #define ACPU_SC_CPU7_PW_ISO_STAT		(ACPU_CTRL_BASE + 0x838)
216 #define ACPU_SC_CPU7_MTCMOS_TIMER_STAT		(ACPU_CTRL_BASE + 0x854)
217 #define ACPU_SC_CPU7_RVBARADDR			(ACPU_CTRL_BASE + 0x858)
218 #define ACPU_SC_CPUx_CTRL(x)			((x < 8) ? (ACPU_SC_CPU0_CTRL + 0x100 * x) : ACPU_SC_CPU0_CTRL)
219 #define ACPU_SC_CPUx_STAT(x)			((x < 8) ? (ACPU_SC_CPU0_STAT + 0x100 * x) : ACPU_SC_CPU0_STAT)
220 #define ACPU_SC_CPUx_CLKEN(x)			((x < 8) ? (ACPU_SC_CPU0_CLKEN + 0x100 * x) : ACPU_SC_CPU0_CLKEN)
221 #define ACPU_SC_CPUx_CLK_STAT(x)		((x < 8) ? (ACPU_SC_CPU0_CLK_STAT + 0x100 *x) : ACPU_SC_CPU0_CLK_STAT)
222 #define ACPU_SC_CPUx_RSTEN(x)			((x < 8) ? (ACPU_SC_CPU0_RSTEN + 0x100 * x) : ACPU_SC_CPU0_RSTEN)
223 #define ACPU_SC_CPUx_RSTDIS(x)			((x < 8) ? (ACPU_SC_CPU0_RSTDIS + 0x100 * x) : ACPU_SC_CPU0_RSTDIS)
224 #define ACPU_SC_CPUx_MTCMOS_EN(x)		((x < 8) ? (ACPU_SC_CPU0_MTCMOS_EN + 0x100 * x) : ACPU_SC_CPU0_MTCMOS_EN)
225 #define ACPU_SC_CPUx_PW_ISODIS(x)		((x < 8) ? (ACPU_SC_CPU0_PW_ISODIS + 0x100 * x) : ACPU_SC_CPU0_PW_ISODIS)
226 #define ACPU_SC_CPUx_PW_ISO_STAT(x)		((x < 8) ? (ACPU_SC_CPU0_PW_ISO_STAT + 0x100 * x) : ACPU_SC_CPU0_PW_ISO_STAT)
227 #define ACPU_SC_CPUx_MTCMOS_TIMER_STAT(x)	((x < 8) ? (ACPU_SC_CPU0_MTCMOS_TIMER_STAT + 0x100 * x) : ACPU_SC_CPU0_MTCMOS_TIMER_STAT)
228 #define ACPU_SC_CPUx_RVBARADDR(x)		((x < 8) ? (ACPU_SC_CPU0_RVBARADDR + 0x100 * x) : ACPU_SC_CPU0_RVBARADDR)
229 
230 #define ACPU_SC_CPU_STAT_CLKDIV_VD_MASK		(3 << 20)
231 
232 #define ACPU_SC_VD_CTRL_TUNE_EN_DIF		(1 << 0)
233 #define ACPU_SC_VD_CTRL_TUNE_EN_DIF_SHIFT	(0)
234 #define ACPU_SC_VD_CTRL_TUNE			(1 << 1)
235 #define ACPU_SC_VD_CTRL_TUNE_SHIFT		(1)
236 #define ACPU_SC_VD_CTRL_CALIBRATE_EN_DIF	(1 << 7)
237 #define ACPU_SC_VD_CTRL_CALIBRATE_EN_DIF_SHIFT	(7)
238 #define ACPU_SC_VD_CTRL_CALIBRATE_EN_INI	(1 << 8)
239 #define ACPU_SC_VD_CTRL_CALIBRATE_EN_INI_SHIFT	(8)
240 #define ACPU_SC_VD_CTRL_CLK_DIS_CNT_CLR		(1 << 9)
241 #define ACPU_SC_VD_CTRL_CLK_DIS_CNT_CLR_SHIFT	(9)
242 #define ACPU_SC_VD_CTRL_CLK_DIS_CNT_EN		(1 << 10)
243 #define ACPU_SC_VD_CTRL_CLK_DIS_CNT_EN_SHIFT	(10)
244 #define ACPU_SC_VD_CTRL_TUNE_EN_INT		(1 << 11)
245 #define ACPU_SC_VD_CTRL_TUNE_EN_INT_SHIFT	(11)
246 #define ACPU_SC_VD_CTRL_SHIFT_TABLE0		(1 << 12)
247 #define ACPU_SC_VD_CTRL_SHIFT_TABLE0_MASK	(0xf << 12)
248 #define ACPU_SC_VD_CTRL_SHIFT_TABLE0_SHIFT	(12)
249 #define ACPU_SC_VD_CTRL_SHIFT_TABLE1		(1 << 16)
250 #define ACPU_SC_VD_CTRL_SHIFT_TABLE1_MASK	(0xf << 16)
251 #define ACPU_SC_VD_CTRL_SHIFT_TABLE1_SHIFT	(16)
252 #define ACPU_SC_VD_CTRL_SHIFT_TABLE2		(1 << 20)
253 #define ACPU_SC_VD_CTRL_SHIFT_TABLE2_MASK	(0xf << 20)
254 #define ACPU_SC_VD_CTRL_SHIFT_TABLE2_SHIFT	(20)
255 #define ACPU_SC_VD_CTRL_SHIFT_TABLE3		(1 << 24)
256 #define ACPU_SC_VD_CTRL_SHIFT_TABLE3_MASK	(0xf << 24)
257 #define ACPU_SC_VD_CTRL_SHIFT_TABLE3_SHIFT	(24)
258 #define ACPU_SC_VD_CTRL_FORCE_CLK_EN		(1 << 28)
259 #define ACPU_SC_VD_CTRL_FORCE_CLK_EN_SHIFT	(28)
260 #define ACPU_SC_VD_CTRL_DIV_EN_DIF		(1 << 29)
261 #define ACPU_SC_VD_CTRL_DIV_EN_DIF_SHIFT	(29)
262 
263 #define ACPU_SC_VD_SHIFT_TABLE_TUNE_VAL			\
264 	((0x1 << ACPU_SC_VD_CTRL_SHIFT_TABLE0_SHIFT) | 	\
265 	 (0x3 << ACPU_SC_VD_CTRL_SHIFT_TABLE1_SHIFT) | 	\
266 	 (0x5 << ACPU_SC_VD_CTRL_SHIFT_TABLE2_SHIFT) | 	\
267 	 (0x6 << ACPU_SC_VD_CTRL_SHIFT_TABLE3_SHIFT) | 	\
268          (0x7 << ACPU_SC_VD_CTRL_TUNE_SHIFT))
269 
270 #define ACPU_SC_VD_SHIFT_TABLE_TUNE_MASK		\
271 	((0xF << ACPU_SC_VD_CTRL_SHIFT_TABLE0_SHIFT) |	\
272 	 (0xF << ACPU_SC_VD_CTRL_SHIFT_TABLE1_SHIFT) |	\
273 	 (0xF << ACPU_SC_VD_CTRL_SHIFT_TABLE2_SHIFT) |	\
274 	 (0xF << ACPU_SC_VD_CTRL_SHIFT_TABLE3_SHIFT) |	\
275 	 (0x3F << ACPU_SC_VD_CTRL_TUNE_SHIFT))
276 
277 #define ACPU_SC_VD_HPM_CTRL_OSC_DIV		(1 << 0)
278 #define ACPU_SC_VD_HPM_CTRL_OSC_DIV_SHIFT	(0)
279 #define ACPU_SC_VD_HPM_CTRL_OSC_DIV_MASK	(0x000000FF)
280 #define ACPU_SC_VD_HPM_CTRL_DLY_EXP		(1 << 8)
281 #define ACPU_SC_VD_HPM_CTRL_DLY_EXP_SHIFT	(8)
282 #define ACPU_SC_VD_HPM_CTRL_DLY_EXP_MASK	(0x001FFF00)
283 
284 #define HPM_OSC_DIV_VAL \
285 	(0x56 << ACPU_SC_VD_HPM_CTRL_OSC_DIV_SHIFT)
286 #define HPM_OSC_DIV_MASK \
287 	(ACPU_SC_VD_HPM_CTRL_OSC_DIV_MASK)
288 
289 #define HPM_DLY_EXP_VAL \
290 	(0xC7A << ACPU_SC_VD_HPM_CTRL_DLY_EXP_SHIFT)
291 #define HPM_DLY_EXP_MASK \
292 	(ACPU_SC_VD_HPM_CTRL_DLY_EXP_MASK)
293 
294 #define ACPU_SC_VD_EN_ASIC_VAL					\
295 	((0x0 << ACPU_SC_VD_CTRL_FORCE_CLK_EN_SHIFT) |		\
296 	 (0x0 << ACPU_SC_VD_CTRL_CLK_DIS_CNT_EN_SHIFT) |	\
297 	 (0x0 << ACPU_SC_VD_CTRL_CALIBRATE_EN_INI_SHIFT) |	\
298 	 (0x0 << ACPU_SC_VD_CTRL_CALIBRATE_EN_DIF_SHIFT) |	\
299 	 (0X0 << ACPU_SC_VD_CTRL_DIV_EN_DIF_SHIFT) |		\
300 	 (0X0 << ACPU_SC_VD_CTRL_TUNE_EN_INT_SHIFT) |		\
301 	 (0x0 << ACPU_SC_VD_CTRL_TUNE_EN_DIF_SHIFT))
302 
303 #define ACPU_SC_VD_EN_SFT_VAL					\
304 	((0x0 << ACPU_SC_VD_CTRL_FORCE_CLK_EN_SHIFT) |		\
305 	 (0x0 << ACPU_SC_VD_CTRL_CLK_DIS_CNT_EN_SHIFT) |	\
306 	 (0x0 << ACPU_SC_VD_CTRL_CALIBRATE_EN_INI_SHIFT) |	\
307 	 (0x0 << ACPU_SC_VD_CTRL_CALIBRATE_EN_DIF_SHIFT) |	\
308 	 (0x0 << ACPU_SC_VD_CTRL_DIV_EN_DIF_SHIFT) |		\
309 	 (0x0 << ACPU_SC_VD_CTRL_TUNE_EN_INT_SHIFT) |		\
310 	 (0x0 << ACPU_SC_VD_CTRL_TUNE_EN_DIF_SHIFT))
311 
312 #define ACPU_SC_VD_EN_MASK					\
313 	((0x1 << ACPU_SC_VD_CTRL_FORCE_CLK_EN_SHIFT) |		\
314 	 (0x1 << ACPU_SC_VD_CTRL_CLK_DIS_CNT_EN_SHIFT) |	\
315 	 (0x1 << ACPU_SC_VD_CTRL_CALIBRATE_EN_INI_SHIFT) |	\
316 	 (0x1 << ACPU_SC_VD_CTRL_CALIBRATE_EN_DIF_SHIFT) |	\
317 	 (0x1 << ACPU_SC_VD_CTRL_DIV_EN_DIF_SHIFT) |		\
318 	 (0x1 << ACPU_SC_VD_CTRL_TUNE_EN_INT_SHIFT) |		\
319 	 (0x1 << ACPU_SC_VD_CTRL_TUNE_EN_DIF_SHIFT))
320 
321 #endif /* __HI6220_REGS_ACPU_H__ */
322