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