xref: /arm-trusted-firmware/plat/hisilicon/hikey/include/hi6220_regs_acpu.h (revision 91f16700b400a8c0651d24a598fc48ee2997a0d7)
1*91f16700Schasinglulu /*
2*91f16700Schasinglulu  * Copyright (c) 2017, ARM Limited and Contributors. All rights reserved.
3*91f16700Schasinglulu  *
4*91f16700Schasinglulu  * SPDX-License-Identifier: BSD-3-Clause
5*91f16700Schasinglulu  */
6*91f16700Schasinglulu 
7*91f16700Schasinglulu #ifndef HI6220_REGS_ACPU_H
8*91f16700Schasinglulu #define HI6220_REGS_ACPU_H
9*91f16700Schasinglulu 
10*91f16700Schasinglulu #define ACPU_CTRL_BASE				0xF6504000
11*91f16700Schasinglulu 
12*91f16700Schasinglulu #define ACPU_SC_CPU_CTRL			(ACPU_CTRL_BASE + 0x000)
13*91f16700Schasinglulu #define ACPU_SC_CPU_STAT			(ACPU_CTRL_BASE + 0x008)
14*91f16700Schasinglulu #define ACPU_SC_CPU_STAT_SC_STANDBYWFIL2		(1 << 0)
15*91f16700Schasinglulu #define ACPU_SC_CPU_STAT_SC_STANDBYWFIL2_SHIFT		(0)
16*91f16700Schasinglulu #define ACPU_SC_CPU_STAT_SC_STANDBYWFI0			(1 << 1)
17*91f16700Schasinglulu #define ACPU_SC_CPU_STAT_SC_STANDBYWFI0_SHIFT		(1)
18*91f16700Schasinglulu #define ACPU_SC_CPU_STAT_SC_STANDBYWFI1			(1 << 2)
19*91f16700Schasinglulu #define ACPU_SC_CPU_STAT_SC_STANDBYWFI1_SHIFT		(2)
20*91f16700Schasinglulu #define ACPU_SC_CPU_STAT_SC_STANDBYWFI2			(1 << 3)
21*91f16700Schasinglulu #define ACPU_SC_CPU_STAT_SC_STANDBYWFI2_SHIFT		(3)
22*91f16700Schasinglulu #define ACPU_SC_CPU_STAT_SC_STANDBYWFI3			(1 << 4)
23*91f16700Schasinglulu #define ACPU_SC_CPU_STAT_SC_STANDBYWFI3_SHIFT		(4)
24*91f16700Schasinglulu #define ACPU_SC_CPU_STAT_A53_1_STANDBYWFIL2		(1 << 8)
25*91f16700Schasinglulu #define ACPU_SC_CPU_STAT_A53_1_STANDBYWFIL2_SHIFT	(8)
26*91f16700Schasinglulu #define ACPU_SC_CPU_STAT_A53_1_STANDBYWFI		(1 << 9)
27*91f16700Schasinglulu #define ACPU_SC_CPU_STAT_A53_1_STANDBYWFI_SHIFT		(9)
28*91f16700Schasinglulu #define ACPU_SC_CPU_STAT_L2FLSHUDONE0			(1 << 16)
29*91f16700Schasinglulu #define ACPU_SC_CPU_STAT_L2FLSHUDONE0_SHIFT		(16)
30*91f16700Schasinglulu #define ACPU_SC_CPU_STAT_L2FLSHUDONE1			(1 << 17)
31*91f16700Schasinglulu #define ACPU_SC_CPU_STAT_L2FLSHUDONE1_SHIFT		(17)
32*91f16700Schasinglulu #define ACPU_SC_CPU_STAT_CCI400_ACTIVE			(1 << 18)
33*91f16700Schasinglulu #define ACPU_SC_CPU_STAT_CCI400_ACTIVE_SHIFT		(18)
34*91f16700Schasinglulu #define ACPU_SC_CPU_STAT_CLK_DIV_STATUS_VD		(1 << 20)
35*91f16700Schasinglulu #define ACPU_SC_CPU_STAT_CLK_DIV_STATUS_VD_SHIFT	(20)
36*91f16700Schasinglulu 
37*91f16700Schasinglulu #define ACPU_SC_CLKEN				(ACPU_CTRL_BASE + 0x00c)
38*91f16700Schasinglulu #define HPM_L2_1_CLKEN				(1 << 9)
39*91f16700Schasinglulu #define G_CPU_1_CLKEN				(1 << 8)
40*91f16700Schasinglulu #define HPM_L2_CLKEN				(1 << 1)
41*91f16700Schasinglulu #define G_CPU_CLKEN				(1 << 0)
42*91f16700Schasinglulu 
43*91f16700Schasinglulu #define ACPU_SC_CLKDIS				(ACPU_CTRL_BASE + 0x010)
44*91f16700Schasinglulu #define ACPU_SC_CLK_STAT			(ACPU_CTRL_BASE + 0x014)
45*91f16700Schasinglulu #define ACPU_SC_RSTEN				(ACPU_CTRL_BASE + 0x018)
46*91f16700Schasinglulu #define SRST_PRESET1_RSTEN			(1 << 11)
47*91f16700Schasinglulu #define SRST_PRESET0_RSTEN			(1 << 10)
48*91f16700Schasinglulu #define SRST_CLUSTER1_RSTEN			(1 << 9)
49*91f16700Schasinglulu #define SRST_CLUSTER0_RSTEN			(1 << 8)
50*91f16700Schasinglulu #define SRST_L2_HPM_1_RSTEN			(1 << 5)
51*91f16700Schasinglulu #define SRST_AARM_L2_1_RSTEN			(1 << 4)
52*91f16700Schasinglulu #define SRST_L2_HPM_0_RSTEN			(1 << 3)
53*91f16700Schasinglulu #define SRST_AARM_L2_0_RSTEN			(1 << 1)
54*91f16700Schasinglulu #define SRST_CLUSTER1				(SRST_PRESET1_RSTEN | \
55*91f16700Schasinglulu 						 SRST_CLUSTER1_RSTEN | \
56*91f16700Schasinglulu 						 SRST_L2_HPM_1_RSTEN | \
57*91f16700Schasinglulu 						 SRST_AARM_L2_1_RSTEN)
58*91f16700Schasinglulu #define SRST_CLUSTER0				(SRST_PRESET0_RSTEN | \
59*91f16700Schasinglulu 						 SRST_CLUSTER0_RSTEN | \
60*91f16700Schasinglulu 						 SRST_L2_HPM_0_RSTEN | \
61*91f16700Schasinglulu 						 SRST_AARM_L2_0_RSTEN)
62*91f16700Schasinglulu 
63*91f16700Schasinglulu #define ACPU_SC_RSTDIS				(ACPU_CTRL_BASE + 0x01c)
64*91f16700Schasinglulu #define ACPU_SC_RST_STAT			(ACPU_CTRL_BASE + 0x020)
65*91f16700Schasinglulu #define ACPU_SC_PDBGUP_MBIST			(ACPU_CTRL_BASE + 0x02c)
66*91f16700Schasinglulu #define PDBGUP_CLUSTER1_SHIFT			8
67*91f16700Schasinglulu 
68*91f16700Schasinglulu #define ACPU_SC_VD_CTRL				(ACPU_CTRL_BASE + 0x054)
69*91f16700Schasinglulu #define ACPU_SC_VD_MASK_PATTERN_CTRL		(ACPU_CTRL_BASE + 0x058)
70*91f16700Schasinglulu #define ACPU_SC_VD_MASK_PATTERN_VAL		(0xCCB << 12)
71*91f16700Schasinglulu #define ACPU_SC_VD_MASK_PATTERN_MASK		((0x1 << 13) - 1)
72*91f16700Schasinglulu 
73*91f16700Schasinglulu #define ACPU_SC_VD_DLY_FIXED_CTRL		(ACPU_CTRL_BASE + 0x05c)
74*91f16700Schasinglulu #define ACPU_SC_VD_DLY_TABLE0_CTRL		(ACPU_CTRL_BASE + 0x060)
75*91f16700Schasinglulu #define ACPU_SC_VD_DLY_TABLE1_CTRL		(ACPU_CTRL_BASE + 0x064)
76*91f16700Schasinglulu #define ACPU_SC_VD_DLY_TABLE2_CTRL		(ACPU_CTRL_BASE + 0x068)
77*91f16700Schasinglulu #define ACPU_SC_VD_HPM_CTRL			(ACPU_CTRL_BASE + 0x06c)
78*91f16700Schasinglulu #define ACPU_SC_A53_CLUSTER_MTCMOS_EN		(ACPU_CTRL_BASE + 0x088)
79*91f16700Schasinglulu #define PW_MTCMOS_EN_A53_1_EN			(1 << 1)
80*91f16700Schasinglulu #define PW_MTCMOS_EN_A53_0_EN			(1 << 0)
81*91f16700Schasinglulu 
82*91f16700Schasinglulu #define ACPU_SC_A53_CLUSTER_MTCMOS_STA		(ACPU_CTRL_BASE + 0x090)
83*91f16700Schasinglulu #define ACPU_SC_A53_CLUSTER_ISO_EN		(ACPU_CTRL_BASE + 0x098)
84*91f16700Schasinglulu #define PW_ISO_A53_1_EN				(1 << 1)
85*91f16700Schasinglulu #define PW_ISO_A53_0_EN				(1 << 0)
86*91f16700Schasinglulu 
87*91f16700Schasinglulu #define ACPU_SC_A53_CLUSTER_ISO_DIS		(ACPU_CTRL_BASE + 0x09c)
88*91f16700Schasinglulu #define ACPU_SC_A53_CLUSTER_ISO_STA		(ACPU_CTRL_BASE + 0x0a0)
89*91f16700Schasinglulu #define ACPU_SC_A53_1_MTCMOS_TIMER		(ACPU_CTRL_BASE + 0x0b4)
90*91f16700Schasinglulu #define ACPU_SC_A53_0_MTCMOS_TIMER		(ACPU_CTRL_BASE + 0x0bc)
91*91f16700Schasinglulu #define ACPU_SC_A53_x_MTCMOS_TIMER(x)		((x) ? ACPU_SC_A53_1_MTCMOS_TIMER : ACPU_SC_A53_0_MTCMOS_TIMER)
92*91f16700Schasinglulu 
93*91f16700Schasinglulu #define ACPU_SC_SNOOP_PWD			(ACPU_CTRL_BASE + 0xe4)
94*91f16700Schasinglulu #define PD_DETECT_START1			(1 << 16)
95*91f16700Schasinglulu #define PD_DETECT_START0			(1 << 0)
96*91f16700Schasinglulu 
97*91f16700Schasinglulu #define ACPU_SC_CPU0_CTRL			(ACPU_CTRL_BASE + 0x100)
98*91f16700Schasinglulu #define CPU_CTRL_AARCH64_MODE			(1 << 7)
99*91f16700Schasinglulu 
100*91f16700Schasinglulu #define ACPU_SC_CPU0_STAT			(ACPU_CTRL_BASE + 0x104)
101*91f16700Schasinglulu #define ACPU_SC_CPU0_CLKEN			(ACPU_CTRL_BASE + 0x108)
102*91f16700Schasinglulu #define CPU_CLKEN_HPM				(1 << 1)
103*91f16700Schasinglulu 
104*91f16700Schasinglulu #define ACPU_SC_CPU0_CLK_STAT			(ACPU_CTRL_BASE + 0x110)
105*91f16700Schasinglulu 
106*91f16700Schasinglulu #define ACPU_SC_CPU0_RSTEN			(ACPU_CTRL_BASE + 0x114)
107*91f16700Schasinglulu #define ACPU_SC_CPU0_RSTDIS			(ACPU_CTRL_BASE + 0x118)
108*91f16700Schasinglulu #define ACPU_SC_CPU0_MTCMOS_EN			(ACPU_CTRL_BASE + 0x120)
109*91f16700Schasinglulu #define CPU_MTCMOS_PW				(1 << 0)
110*91f16700Schasinglulu 
111*91f16700Schasinglulu #define ACPU_SC_CPU0_PW_ISOEN			(ACPU_CTRL_BASE + 0x130)
112*91f16700Schasinglulu #define CPU_PW_ISO				(1 << 0)
113*91f16700Schasinglulu 
114*91f16700Schasinglulu #define ACPU_SC_CPU0_PW_ISODIS			(ACPU_CTRL_BASE + 0x134)
115*91f16700Schasinglulu #define ACPU_SC_CPU0_PW_ISO_STAT		(ACPU_CTRL_BASE + 0x138)
116*91f16700Schasinglulu #define ACPU_SC_CPU0_MTCMOS_TIMER_STAT		(ACPU_CTRL_BASE + 0x154)
117*91f16700Schasinglulu #define CPU_MTCMOS_TIMER_STA			(1 << 0)
118*91f16700Schasinglulu 
119*91f16700Schasinglulu #define ACPU_SC_CPU0_RVBARADDR			(ACPU_CTRL_BASE + 0x158)
120*91f16700Schasinglulu #define ACPU_SC_CPU1_CTRL			(ACPU_CTRL_BASE + 0x200)
121*91f16700Schasinglulu #define ACPU_SC_CPU1_STAT			(ACPU_CTRL_BASE + 0x204)
122*91f16700Schasinglulu #define ACPU_SC_CPU1_CLKEN			(ACPU_CTRL_BASE + 0x208)
123*91f16700Schasinglulu #define ACPU_SC_CPU1_CLK_STAT			(ACPU_CTRL_BASE + 0x210)
124*91f16700Schasinglulu #define ACPU_SC_CPU1_RSTEN			(ACPU_CTRL_BASE + 0x214)
125*91f16700Schasinglulu #define ACPU_SC_CPU1_RSTDIS			(ACPU_CTRL_BASE + 0x218)
126*91f16700Schasinglulu #define ACPU_SC_CPU1_MTCMOS_EN			(ACPU_CTRL_BASE + 0x220)
127*91f16700Schasinglulu #define ACPU_SC_CPU1_PW_ISODIS			(ACPU_CTRL_BASE + 0x234)
128*91f16700Schasinglulu #define ACPU_SC_CPU1_PW_ISO_STAT		(ACPU_CTRL_BASE + 0x238)
129*91f16700Schasinglulu #define ACPU_SC_CPU1_MTCMOS_TIMER_STAT		(ACPU_CTRL_BASE + 0x254)
130*91f16700Schasinglulu #define ACPU_SC_CPU1_RVBARADDR			(ACPU_CTRL_BASE + 0x258)
131*91f16700Schasinglulu #define ACPU_SC_CPU2_CTRL			(ACPU_CTRL_BASE + 0x300)
132*91f16700Schasinglulu #define ACPU_SC_CPU2_STAT			(ACPU_CTRL_BASE + 0x304)
133*91f16700Schasinglulu #define ACPU_SC_CPU2_CLKEN			(ACPU_CTRL_BASE + 0x308)
134*91f16700Schasinglulu #define ACPU_SC_CPU2_CLK_STAT			(ACPU_CTRL_BASE + 0x310)
135*91f16700Schasinglulu #define ACPU_SC_CPU2_RSTEN			(ACPU_CTRL_BASE + 0x314)
136*91f16700Schasinglulu #define ACPU_SC_CPU2_RSTDIS			(ACPU_CTRL_BASE + 0x318)
137*91f16700Schasinglulu #define ACPU_SC_CPU2_MTCMOS_EN			(ACPU_CTRL_BASE + 0x320)
138*91f16700Schasinglulu #define ACPU_SC_CPU2_PW_ISODIS			(ACPU_CTRL_BASE + 0x334)
139*91f16700Schasinglulu #define ACPU_SC_CPU2_PW_ISO_STAT		(ACPU_CTRL_BASE + 0x338)
140*91f16700Schasinglulu #define ACPU_SC_CPU2_MTCMOS_TIMER_STAT		(ACPU_CTRL_BASE + 0x354)
141*91f16700Schasinglulu #define ACPU_SC_CPU2_RVBARADDR			(ACPU_CTRL_BASE + 0x358)
142*91f16700Schasinglulu #define ACPU_SC_CPU3_CTRL			(ACPU_CTRL_BASE + 0x400)
143*91f16700Schasinglulu #define ACPU_SC_CPU3_STAT			(ACPU_CTRL_BASE + 0x404)
144*91f16700Schasinglulu #define ACPU_SC_CPU3_CLKEN			(ACPU_CTRL_BASE + 0x408)
145*91f16700Schasinglulu #define ACPU_SC_CPU3_CLK_STAT			(ACPU_CTRL_BASE + 0x410)
146*91f16700Schasinglulu #define ACPU_SC_CPU3_RSTEN			(ACPU_CTRL_BASE + 0x414)
147*91f16700Schasinglulu #define ACPU_SC_CPU3_RSTDIS			(ACPU_CTRL_BASE + 0x418)
148*91f16700Schasinglulu #define ACPU_SC_CPU3_MTCMOS_EN			(ACPU_CTRL_BASE + 0x420)
149*91f16700Schasinglulu #define ACPU_SC_CPU3_PW_ISODIS			(ACPU_CTRL_BASE + 0x434)
150*91f16700Schasinglulu #define ACPU_SC_CPU3_PW_ISO_STAT		(ACPU_CTRL_BASE + 0x438)
151*91f16700Schasinglulu #define ACPU_SC_CPU3_MTCMOS_TIMER_STAT		(ACPU_CTRL_BASE + 0x454)
152*91f16700Schasinglulu #define ACPU_SC_CPU3_RVBARADDR			(ACPU_CTRL_BASE + 0x458)
153*91f16700Schasinglulu #define ACPU_SC_CPU4_CTRL			(ACPU_CTRL_BASE + 0x500)
154*91f16700Schasinglulu #define ACPU_SC_CPU4_STAT			(ACPU_CTRL_BASE + 0x504)
155*91f16700Schasinglulu #define ACPU_SC_CPU4_CLKEN			(ACPU_CTRL_BASE + 0x508)
156*91f16700Schasinglulu #define ACPU_SC_CPU4_CLK_STAT			(ACPU_CTRL_BASE + 0x510)
157*91f16700Schasinglulu #define ACPU_SC_CPU4_RSTEN			(ACPU_CTRL_BASE + 0x514)
158*91f16700Schasinglulu #define ACPU_SC_CPU4_RSTDIS			(ACPU_CTRL_BASE + 0x518)
159*91f16700Schasinglulu #define ACPU_SC_CPU4_MTCMOS_EN			(ACPU_CTRL_BASE + 0x520)
160*91f16700Schasinglulu #define ACPU_SC_CPU4_PW_ISODIS			(ACPU_CTRL_BASE + 0x534)
161*91f16700Schasinglulu #define ACPU_SC_CPU4_PW_ISO_STAT		(ACPU_CTRL_BASE + 0x538)
162*91f16700Schasinglulu #define ACPU_SC_CPU4_MTCMOS_TIMER_STAT		(ACPU_CTRL_BASE + 0x554)
163*91f16700Schasinglulu #define ACPU_SC_CPU4_RVBARADDR			(ACPU_CTRL_BASE + 0x558)
164*91f16700Schasinglulu #define ACPU_SC_CPU5_CTRL			(ACPU_CTRL_BASE + 0x600)
165*91f16700Schasinglulu #define ACPU_SC_CPU5_STAT			(ACPU_CTRL_BASE + 0x604)
166*91f16700Schasinglulu #define ACPU_SC_CPU5_CLKEN			(ACPU_CTRL_BASE + 0x608)
167*91f16700Schasinglulu #define ACPU_SC_CPU5_CLK_STAT			(ACPU_CTRL_BASE + 0x610)
168*91f16700Schasinglulu #define ACPU_SC_CPU5_RSTEN			(ACPU_CTRL_BASE + 0x614)
169*91f16700Schasinglulu #define ACPU_SC_CPU5_RSTDIS			(ACPU_CTRL_BASE + 0x618)
170*91f16700Schasinglulu #define ACPU_SC_CPU5_MTCMOS_EN			(ACPU_CTRL_BASE + 0x620)
171*91f16700Schasinglulu #define ACPU_SC_CPU5_PW_ISODIS			(ACPU_CTRL_BASE + 0x634)
172*91f16700Schasinglulu #define ACPU_SC_CPU5_PW_ISO_STAT		(ACPU_CTRL_BASE + 0x638)
173*91f16700Schasinglulu #define ACPU_SC_CPU5_MTCMOS_TIMER_STAT		(ACPU_CTRL_BASE + 0x654)
174*91f16700Schasinglulu #define ACPU_SC_CPU5_RVBARADDR			(ACPU_CTRL_BASE + 0x658)
175*91f16700Schasinglulu #define ACPU_SC_CPU6_CTRL			(ACPU_CTRL_BASE + 0x700)
176*91f16700Schasinglulu #define ACPU_SC_CPU6_STAT			(ACPU_CTRL_BASE + 0x704)
177*91f16700Schasinglulu #define ACPU_SC_CPU6_CLKEN			(ACPU_CTRL_BASE + 0x708)
178*91f16700Schasinglulu #define ACPU_SC_CPU6_CLK_STAT			(ACPU_CTRL_BASE + 0x710)
179*91f16700Schasinglulu #define ACPU_SC_CPU6_RSTEN			(ACPU_CTRL_BASE + 0x714)
180*91f16700Schasinglulu #define ACPU_SC_CPU6_RSTDIS			(ACPU_CTRL_BASE + 0x718)
181*91f16700Schasinglulu #define ACPU_SC_CPU6_MTCMOS_EN			(ACPU_CTRL_BASE + 0x720)
182*91f16700Schasinglulu #define ACPU_SC_CPU6_PW_ISODIS			(ACPU_CTRL_BASE + 0x734)
183*91f16700Schasinglulu #define ACPU_SC_CPU6_PW_ISO_STAT		(ACPU_CTRL_BASE + 0x738)
184*91f16700Schasinglulu #define ACPU_SC_CPU6_MTCMOS_TIMER_STAT		(ACPU_CTRL_BASE + 0x754)
185*91f16700Schasinglulu #define ACPU_SC_CPU6_RVBARADDR			(ACPU_CTRL_BASE + 0x758)
186*91f16700Schasinglulu #define ACPU_SC_CPU7_CTRL			(ACPU_CTRL_BASE + 0x800)
187*91f16700Schasinglulu #define ACPU_SC_CPU7_STAT			(ACPU_CTRL_BASE + 0x804)
188*91f16700Schasinglulu #define ACPU_SC_CPU7_CLKEN			(ACPU_CTRL_BASE + 0x808)
189*91f16700Schasinglulu #define ACPU_SC_CPU7_CLK_STAT			(ACPU_CTRL_BASE + 0x810)
190*91f16700Schasinglulu #define ACPU_SC_CPU7_RSTEN			(ACPU_CTRL_BASE + 0x814)
191*91f16700Schasinglulu #define ACPU_SC_CPU7_RSTDIS			(ACPU_CTRL_BASE + 0x818)
192*91f16700Schasinglulu #define ACPU_SC_CPU7_MTCMOS_EN			(ACPU_CTRL_BASE + 0x820)
193*91f16700Schasinglulu #define ACPU_SC_CPU7_PW_ISODIS			(ACPU_CTRL_BASE + 0x834)
194*91f16700Schasinglulu #define ACPU_SC_CPU7_PW_ISO_STAT		(ACPU_CTRL_BASE + 0x838)
195*91f16700Schasinglulu #define ACPU_SC_CPU7_MTCMOS_TIMER_STAT		(ACPU_CTRL_BASE + 0x854)
196*91f16700Schasinglulu #define ACPU_SC_CPU7_RVBARADDR			(ACPU_CTRL_BASE + 0x858)
197*91f16700Schasinglulu #define ACPU_SC_CPUx_CTRL(x)			((x < 8) ? (ACPU_SC_CPU0_CTRL + 0x100 * x) : ACPU_SC_CPU0_CTRL)
198*91f16700Schasinglulu #define ACPU_SC_CPUx_STAT(x)			((x < 8) ? (ACPU_SC_CPU0_STAT + 0x100 * x) : ACPU_SC_CPU0_STAT)
199*91f16700Schasinglulu #define ACPU_SC_CPUx_CLKEN(x)			((x < 8) ? (ACPU_SC_CPU0_CLKEN + 0x100 * x) : ACPU_SC_CPU0_CLKEN)
200*91f16700Schasinglulu #define ACPU_SC_CPUx_CLK_STAT(x)		((x < 8) ? (ACPU_SC_CPU0_CLK_STAT + 0x100 * x) : ACPU_SC_CPU0_CLK_STAT)
201*91f16700Schasinglulu #define ACPU_SC_CPUx_RSTEN(x)			((x < 8) ? (ACPU_SC_CPU0_RSTEN + 0x100 * x) : ACPU_SC_CPU0_RSTEN)
202*91f16700Schasinglulu #define ACPU_SC_CPUx_RSTDIS(x)			((x < 8) ? (ACPU_SC_CPU0_RSTDIS + 0x100 * x) : ACPU_SC_CPU0_RSTDIS)
203*91f16700Schasinglulu #define ACPU_SC_CPUx_MTCMOS_EN(x)		((x < 8) ? (ACPU_SC_CPU0_MTCMOS_EN + 0x100 * x) : ACPU_SC_CPU0_MTCMOS_EN)
204*91f16700Schasinglulu #define ACPU_SC_CPUx_PW_ISODIS(x)		((x < 8) ? (ACPU_SC_CPU0_PW_ISODIS + 0x100 * x) : ACPU_SC_CPU0_PW_ISODIS)
205*91f16700Schasinglulu #define ACPU_SC_CPUx_PW_ISO_STAT(x)		((x < 8) ? (ACPU_SC_CPU0_PW_ISO_STAT + 0x100 * x) : ACPU_SC_CPU0_PW_ISO_STAT)
206*91f16700Schasinglulu #define ACPU_SC_CPUx_MTCMOS_TIMER_STAT(x)	((x < 8) ? (ACPU_SC_CPU0_MTCMOS_TIMER_STAT + 0x100 * x) : ACPU_SC_CPU0_MTCMOS_TIMER_STAT)
207*91f16700Schasinglulu #define ACPU_SC_CPUx_RVBARADDR(x)		((x < 8) ? (ACPU_SC_CPU0_RVBARADDR + 0x100 * x) : ACPU_SC_CPU0_RVBARADDR)
208*91f16700Schasinglulu 
209*91f16700Schasinglulu #define ACPU_SC_CPU_STAT_CLKDIV_VD_MASK		(3 << 20)
210*91f16700Schasinglulu 
211*91f16700Schasinglulu #define ACPU_SC_VD_CTRL_TUNE_EN_DIF		(1 << 0)
212*91f16700Schasinglulu #define ACPU_SC_VD_CTRL_TUNE_EN_DIF_SHIFT	(0)
213*91f16700Schasinglulu #define ACPU_SC_VD_CTRL_TUNE			(1 << 1)
214*91f16700Schasinglulu #define ACPU_SC_VD_CTRL_TUNE_SHIFT		(1)
215*91f16700Schasinglulu #define ACPU_SC_VD_CTRL_CALIBRATE_EN_DIF	(1 << 7)
216*91f16700Schasinglulu #define ACPU_SC_VD_CTRL_CALIBRATE_EN_DIF_SHIFT	(7)
217*91f16700Schasinglulu #define ACPU_SC_VD_CTRL_CALIBRATE_EN_INI	(1 << 8)
218*91f16700Schasinglulu #define ACPU_SC_VD_CTRL_CALIBRATE_EN_INI_SHIFT	(8)
219*91f16700Schasinglulu #define ACPU_SC_VD_CTRL_CLK_DIS_CNT_CLR		(1 << 9)
220*91f16700Schasinglulu #define ACPU_SC_VD_CTRL_CLK_DIS_CNT_CLR_SHIFT	(9)
221*91f16700Schasinglulu #define ACPU_SC_VD_CTRL_CLK_DIS_CNT_EN		(1 << 10)
222*91f16700Schasinglulu #define ACPU_SC_VD_CTRL_CLK_DIS_CNT_EN_SHIFT	(10)
223*91f16700Schasinglulu #define ACPU_SC_VD_CTRL_TUNE_EN_INT		(1 << 11)
224*91f16700Schasinglulu #define ACPU_SC_VD_CTRL_TUNE_EN_INT_SHIFT	(11)
225*91f16700Schasinglulu #define ACPU_SC_VD_CTRL_SHIFT_TABLE0		(1 << 12)
226*91f16700Schasinglulu #define ACPU_SC_VD_CTRL_SHIFT_TABLE0_MASK	(0xf << 12)
227*91f16700Schasinglulu #define ACPU_SC_VD_CTRL_SHIFT_TABLE0_SHIFT	(12)
228*91f16700Schasinglulu #define ACPU_SC_VD_CTRL_SHIFT_TABLE1		(1 << 16)
229*91f16700Schasinglulu #define ACPU_SC_VD_CTRL_SHIFT_TABLE1_MASK	(0xf << 16)
230*91f16700Schasinglulu #define ACPU_SC_VD_CTRL_SHIFT_TABLE1_SHIFT	(16)
231*91f16700Schasinglulu #define ACPU_SC_VD_CTRL_SHIFT_TABLE2		(1 << 20)
232*91f16700Schasinglulu #define ACPU_SC_VD_CTRL_SHIFT_TABLE2_MASK	(0xf << 20)
233*91f16700Schasinglulu #define ACPU_SC_VD_CTRL_SHIFT_TABLE2_SHIFT	(20)
234*91f16700Schasinglulu #define ACPU_SC_VD_CTRL_SHIFT_TABLE3		(1 << 24)
235*91f16700Schasinglulu #define ACPU_SC_VD_CTRL_SHIFT_TABLE3_MASK	(0xf << 24)
236*91f16700Schasinglulu #define ACPU_SC_VD_CTRL_SHIFT_TABLE3_SHIFT	(24)
237*91f16700Schasinglulu #define ACPU_SC_VD_CTRL_FORCE_CLK_EN		(1 << 28)
238*91f16700Schasinglulu #define ACPU_SC_VD_CTRL_FORCE_CLK_EN_SHIFT	(28)
239*91f16700Schasinglulu #define ACPU_SC_VD_CTRL_DIV_EN_DIF		(1 << 29)
240*91f16700Schasinglulu #define ACPU_SC_VD_CTRL_DIV_EN_DIF_SHIFT	(29)
241*91f16700Schasinglulu 
242*91f16700Schasinglulu #define ACPU_SC_VD_SHIFT_TABLE_TUNE_VAL			\
243*91f16700Schasinglulu 	((0x1 << ACPU_SC_VD_CTRL_SHIFT_TABLE0_SHIFT) |	\
244*91f16700Schasinglulu 	 (0x3 << ACPU_SC_VD_CTRL_SHIFT_TABLE1_SHIFT) |	\
245*91f16700Schasinglulu 	 (0x5 << ACPU_SC_VD_CTRL_SHIFT_TABLE2_SHIFT) |	\
246*91f16700Schasinglulu 	 (0x6 << ACPU_SC_VD_CTRL_SHIFT_TABLE3_SHIFT) |	\
247*91f16700Schasinglulu 	 (0x7 << ACPU_SC_VD_CTRL_TUNE_SHIFT))
248*91f16700Schasinglulu 
249*91f16700Schasinglulu #define ACPU_SC_VD_SHIFT_TABLE_TUNE_MASK		\
250*91f16700Schasinglulu 	((0xF << ACPU_SC_VD_CTRL_SHIFT_TABLE0_SHIFT) |	\
251*91f16700Schasinglulu 	 (0xF << ACPU_SC_VD_CTRL_SHIFT_TABLE1_SHIFT) |	\
252*91f16700Schasinglulu 	 (0xF << ACPU_SC_VD_CTRL_SHIFT_TABLE2_SHIFT) |	\
253*91f16700Schasinglulu 	 (0xF << ACPU_SC_VD_CTRL_SHIFT_TABLE3_SHIFT) |	\
254*91f16700Schasinglulu 	 (0x3F << ACPU_SC_VD_CTRL_TUNE_SHIFT))
255*91f16700Schasinglulu 
256*91f16700Schasinglulu #define ACPU_SC_VD_HPM_CTRL_OSC_DIV		(1 << 0)
257*91f16700Schasinglulu #define ACPU_SC_VD_HPM_CTRL_OSC_DIV_SHIFT	(0)
258*91f16700Schasinglulu #define ACPU_SC_VD_HPM_CTRL_OSC_DIV_MASK	(0x000000FF)
259*91f16700Schasinglulu #define ACPU_SC_VD_HPM_CTRL_DLY_EXP		(1 << 8)
260*91f16700Schasinglulu #define ACPU_SC_VD_HPM_CTRL_DLY_EXP_SHIFT	(8)
261*91f16700Schasinglulu #define ACPU_SC_VD_HPM_CTRL_DLY_EXP_MASK	(0x001FFF00)
262*91f16700Schasinglulu 
263*91f16700Schasinglulu #define HPM_OSC_DIV_VAL \
264*91f16700Schasinglulu 	(0x56 << ACPU_SC_VD_HPM_CTRL_OSC_DIV_SHIFT)
265*91f16700Schasinglulu #define HPM_OSC_DIV_MASK \
266*91f16700Schasinglulu 	(ACPU_SC_VD_HPM_CTRL_OSC_DIV_MASK)
267*91f16700Schasinglulu 
268*91f16700Schasinglulu #define HPM_DLY_EXP_VAL \
269*91f16700Schasinglulu 	(0xC7A << ACPU_SC_VD_HPM_CTRL_DLY_EXP_SHIFT)
270*91f16700Schasinglulu #define HPM_DLY_EXP_MASK \
271*91f16700Schasinglulu 	(ACPU_SC_VD_HPM_CTRL_DLY_EXP_MASK)
272*91f16700Schasinglulu 
273*91f16700Schasinglulu #define ACPU_SC_VD_EN_ASIC_VAL					\
274*91f16700Schasinglulu 	((0x0 << ACPU_SC_VD_CTRL_FORCE_CLK_EN_SHIFT) |		\
275*91f16700Schasinglulu 	 (0x0 << ACPU_SC_VD_CTRL_CLK_DIS_CNT_EN_SHIFT) |	\
276*91f16700Schasinglulu 	 (0x0 << ACPU_SC_VD_CTRL_CALIBRATE_EN_INI_SHIFT) |	\
277*91f16700Schasinglulu 	 (0x0 << ACPU_SC_VD_CTRL_CALIBRATE_EN_DIF_SHIFT) |	\
278*91f16700Schasinglulu 	 (0X0 << ACPU_SC_VD_CTRL_DIV_EN_DIF_SHIFT) |		\
279*91f16700Schasinglulu 	 (0X0 << ACPU_SC_VD_CTRL_TUNE_EN_INT_SHIFT) |		\
280*91f16700Schasinglulu 	 (0x0 << ACPU_SC_VD_CTRL_TUNE_EN_DIF_SHIFT))
281*91f16700Schasinglulu 
282*91f16700Schasinglulu #define ACPU_SC_VD_EN_SFT_VAL					\
283*91f16700Schasinglulu 	((0x0 << ACPU_SC_VD_CTRL_FORCE_CLK_EN_SHIFT) |		\
284*91f16700Schasinglulu 	 (0x0 << ACPU_SC_VD_CTRL_CLK_DIS_CNT_EN_SHIFT) |	\
285*91f16700Schasinglulu 	 (0x0 << ACPU_SC_VD_CTRL_CALIBRATE_EN_INI_SHIFT) |	\
286*91f16700Schasinglulu 	 (0x0 << ACPU_SC_VD_CTRL_CALIBRATE_EN_DIF_SHIFT) |	\
287*91f16700Schasinglulu 	 (0x0 << ACPU_SC_VD_CTRL_DIV_EN_DIF_SHIFT) |		\
288*91f16700Schasinglulu 	 (0x0 << ACPU_SC_VD_CTRL_TUNE_EN_INT_SHIFT) |		\
289*91f16700Schasinglulu 	 (0x0 << ACPU_SC_VD_CTRL_TUNE_EN_DIF_SHIFT))
290*91f16700Schasinglulu 
291*91f16700Schasinglulu #define ACPU_SC_VD_EN_MASK					\
292*91f16700Schasinglulu 	((0x1 << ACPU_SC_VD_CTRL_FORCE_CLK_EN_SHIFT) |		\
293*91f16700Schasinglulu 	 (0x1 << ACPU_SC_VD_CTRL_CLK_DIS_CNT_EN_SHIFT) |	\
294*91f16700Schasinglulu 	 (0x1 << ACPU_SC_VD_CTRL_CALIBRATE_EN_INI_SHIFT) |	\
295*91f16700Schasinglulu 	 (0x1 << ACPU_SC_VD_CTRL_CALIBRATE_EN_DIF_SHIFT) |	\
296*91f16700Schasinglulu 	 (0x1 << ACPU_SC_VD_CTRL_DIV_EN_DIF_SHIFT) |		\
297*91f16700Schasinglulu 	 (0x1 << ACPU_SC_VD_CTRL_TUNE_EN_INT_SHIFT) |		\
298*91f16700Schasinglulu 	 (0x1 << ACPU_SC_VD_CTRL_TUNE_EN_DIF_SHIFT))
299*91f16700Schasinglulu 
300*91f16700Schasinglulu #endif /* HI6220_REGS_ACPU_H */
301