xref: /rk3399_ARM-atf/plat/hisilicon/hikey/include/hi6220_regs_acpu.h (revision 9d068f66b15e644df4961b74b965323c20f21f14)
108b167e9SHaojian Zhuang /*
208b167e9SHaojian Zhuang  * Copyright (c) 2017, ARM Limited and Contributors. All rights reserved.
308b167e9SHaojian Zhuang  *
408b167e9SHaojian Zhuang  * SPDX-License-Identifier: BSD-3-Clause
508b167e9SHaojian Zhuang  */
608b167e9SHaojian Zhuang 
7*c3cf06f1SAntonio Nino Diaz #ifndef HI6220_REGS_ACPU_H
8*c3cf06f1SAntonio Nino Diaz #define HI6220_REGS_ACPU_H
908b167e9SHaojian Zhuang 
1008b167e9SHaojian Zhuang #define ACPU_CTRL_BASE				0xF6504000
1108b167e9SHaojian Zhuang 
1208b167e9SHaojian Zhuang #define ACPU_SC_CPU_CTRL			(ACPU_CTRL_BASE + 0x000)
1308b167e9SHaojian Zhuang #define ACPU_SC_CPU_STAT			(ACPU_CTRL_BASE + 0x008)
1408b167e9SHaojian Zhuang #define ACPU_SC_CPU_STAT_SC_STANDBYWFIL2		(1 << 0)
1508b167e9SHaojian Zhuang #define ACPU_SC_CPU_STAT_SC_STANDBYWFIL2_SHIFT		(0)
1608b167e9SHaojian Zhuang #define ACPU_SC_CPU_STAT_SC_STANDBYWFI0			(1 << 1)
1708b167e9SHaojian Zhuang #define ACPU_SC_CPU_STAT_SC_STANDBYWFI0_SHIFT		(1)
1808b167e9SHaojian Zhuang #define ACPU_SC_CPU_STAT_SC_STANDBYWFI1			(1 << 2)
1908b167e9SHaojian Zhuang #define ACPU_SC_CPU_STAT_SC_STANDBYWFI1_SHIFT		(2)
2008b167e9SHaojian Zhuang #define ACPU_SC_CPU_STAT_SC_STANDBYWFI2			(1 << 3)
2108b167e9SHaojian Zhuang #define ACPU_SC_CPU_STAT_SC_STANDBYWFI2_SHIFT		(3)
2208b167e9SHaojian Zhuang #define ACPU_SC_CPU_STAT_SC_STANDBYWFI3			(1 << 4)
2308b167e9SHaojian Zhuang #define ACPU_SC_CPU_STAT_SC_STANDBYWFI3_SHIFT		(4)
2408b167e9SHaojian Zhuang #define ACPU_SC_CPU_STAT_A53_1_STANDBYWFIL2		(1 << 8)
2508b167e9SHaojian Zhuang #define ACPU_SC_CPU_STAT_A53_1_STANDBYWFIL2_SHIFT	(8)
2608b167e9SHaojian Zhuang #define ACPU_SC_CPU_STAT_A53_1_STANDBYWFI		(1 << 9)
2708b167e9SHaojian Zhuang #define ACPU_SC_CPU_STAT_A53_1_STANDBYWFI_SHIFT		(9)
2808b167e9SHaojian Zhuang #define ACPU_SC_CPU_STAT_L2FLSHUDONE0			(1 << 16)
2908b167e9SHaojian Zhuang #define ACPU_SC_CPU_STAT_L2FLSHUDONE0_SHIFT		(16)
3008b167e9SHaojian Zhuang #define ACPU_SC_CPU_STAT_L2FLSHUDONE1			(1 << 17)
3108b167e9SHaojian Zhuang #define ACPU_SC_CPU_STAT_L2FLSHUDONE1_SHIFT		(17)
3208b167e9SHaojian Zhuang #define ACPU_SC_CPU_STAT_CCI400_ACTIVE			(1 << 18)
3308b167e9SHaojian Zhuang #define ACPU_SC_CPU_STAT_CCI400_ACTIVE_SHIFT		(18)
3408b167e9SHaojian Zhuang #define ACPU_SC_CPU_STAT_CLK_DIV_STATUS_VD		(1 << 20)
3508b167e9SHaojian Zhuang #define ACPU_SC_CPU_STAT_CLK_DIV_STATUS_VD_SHIFT	(20)
3608b167e9SHaojian Zhuang 
3708b167e9SHaojian Zhuang #define ACPU_SC_CLKEN				(ACPU_CTRL_BASE + 0x00c)
3808b167e9SHaojian Zhuang #define HPM_L2_1_CLKEN				(1 << 9)
3908b167e9SHaojian Zhuang #define G_CPU_1_CLKEN				(1 << 8)
4008b167e9SHaojian Zhuang #define HPM_L2_CLKEN				(1 << 1)
4108b167e9SHaojian Zhuang #define G_CPU_CLKEN				(1 << 0)
4208b167e9SHaojian Zhuang 
4308b167e9SHaojian Zhuang #define ACPU_SC_CLKDIS				(ACPU_CTRL_BASE + 0x010)
4408b167e9SHaojian Zhuang #define ACPU_SC_CLK_STAT			(ACPU_CTRL_BASE + 0x014)
4508b167e9SHaojian Zhuang #define ACPU_SC_RSTEN				(ACPU_CTRL_BASE + 0x018)
4608b167e9SHaojian Zhuang #define SRST_PRESET1_RSTEN			(1 << 11)
4708b167e9SHaojian Zhuang #define SRST_PRESET0_RSTEN			(1 << 10)
4808b167e9SHaojian Zhuang #define SRST_CLUSTER1_RSTEN			(1 << 9)
4908b167e9SHaojian Zhuang #define SRST_CLUSTER0_RSTEN			(1 << 8)
5008b167e9SHaojian Zhuang #define SRST_L2_HPM_1_RSTEN			(1 << 5)
5108b167e9SHaojian Zhuang #define SRST_AARM_L2_1_RSTEN			(1 << 4)
5208b167e9SHaojian Zhuang #define SRST_L2_HPM_0_RSTEN			(1 << 3)
5308b167e9SHaojian Zhuang #define SRST_AARM_L2_0_RSTEN			(1 << 1)
5408b167e9SHaojian Zhuang #define SRST_CLUSTER1				(SRST_PRESET1_RSTEN | \
5508b167e9SHaojian Zhuang 						 SRST_CLUSTER1_RSTEN | \
5608b167e9SHaojian Zhuang 						 SRST_L2_HPM_1_RSTEN | \
5708b167e9SHaojian Zhuang 						 SRST_AARM_L2_1_RSTEN)
5808b167e9SHaojian Zhuang #define SRST_CLUSTER0				(SRST_PRESET0_RSTEN | \
5908b167e9SHaojian Zhuang 						 SRST_CLUSTER0_RSTEN | \
6008b167e9SHaojian Zhuang 						 SRST_L2_HPM_0_RSTEN | \
6108b167e9SHaojian Zhuang 						 SRST_AARM_L2_0_RSTEN)
6208b167e9SHaojian Zhuang 
6308b167e9SHaojian Zhuang #define ACPU_SC_RSTDIS				(ACPU_CTRL_BASE + 0x01c)
6408b167e9SHaojian Zhuang #define ACPU_SC_RST_STAT			(ACPU_CTRL_BASE + 0x020)
6508b167e9SHaojian Zhuang #define ACPU_SC_PDBGUP_MBIST			(ACPU_CTRL_BASE + 0x02c)
6608b167e9SHaojian Zhuang #define PDBGUP_CLUSTER1_SHIFT			8
6708b167e9SHaojian Zhuang 
6808b167e9SHaojian Zhuang #define ACPU_SC_VD_CTRL				(ACPU_CTRL_BASE + 0x054)
6908b167e9SHaojian Zhuang #define ACPU_SC_VD_MASK_PATTERN_CTRL		(ACPU_CTRL_BASE + 0x058)
7008b167e9SHaojian Zhuang #define ACPU_SC_VD_MASK_PATTERN_VAL		(0xCCB << 12)
7108b167e9SHaojian Zhuang #define ACPU_SC_VD_MASK_PATTERN_MASK		((0x1 << 13) - 1)
7208b167e9SHaojian Zhuang 
7308b167e9SHaojian Zhuang #define ACPU_SC_VD_DLY_FIXED_CTRL		(ACPU_CTRL_BASE + 0x05c)
7408b167e9SHaojian Zhuang #define ACPU_SC_VD_DLY_TABLE0_CTRL		(ACPU_CTRL_BASE + 0x060)
7508b167e9SHaojian Zhuang #define ACPU_SC_VD_DLY_TABLE1_CTRL		(ACPU_CTRL_BASE + 0x064)
7608b167e9SHaojian Zhuang #define ACPU_SC_VD_DLY_TABLE2_CTRL		(ACPU_CTRL_BASE + 0x068)
7708b167e9SHaojian Zhuang #define ACPU_SC_VD_HPM_CTRL			(ACPU_CTRL_BASE + 0x06c)
7808b167e9SHaojian Zhuang #define ACPU_SC_A53_CLUSTER_MTCMOS_EN		(ACPU_CTRL_BASE + 0x088)
7908b167e9SHaojian Zhuang #define PW_MTCMOS_EN_A53_1_EN			(1 << 1)
8008b167e9SHaojian Zhuang #define PW_MTCMOS_EN_A53_0_EN			(1 << 0)
8108b167e9SHaojian Zhuang 
8208b167e9SHaojian Zhuang #define ACPU_SC_A53_CLUSTER_MTCMOS_STA		(ACPU_CTRL_BASE + 0x090)
8308b167e9SHaojian Zhuang #define ACPU_SC_A53_CLUSTER_ISO_EN		(ACPU_CTRL_BASE + 0x098)
8408b167e9SHaojian Zhuang #define PW_ISO_A53_1_EN				(1 << 1)
8508b167e9SHaojian Zhuang #define PW_ISO_A53_0_EN				(1 << 0)
8608b167e9SHaojian Zhuang 
8708b167e9SHaojian Zhuang #define ACPU_SC_A53_CLUSTER_ISO_DIS		(ACPU_CTRL_BASE + 0x09c)
8808b167e9SHaojian Zhuang #define ACPU_SC_A53_CLUSTER_ISO_STA		(ACPU_CTRL_BASE + 0x0a0)
8908b167e9SHaojian Zhuang #define ACPU_SC_A53_1_MTCMOS_TIMER		(ACPU_CTRL_BASE + 0x0b4)
9008b167e9SHaojian Zhuang #define ACPU_SC_A53_0_MTCMOS_TIMER		(ACPU_CTRL_BASE + 0x0bc)
9108b167e9SHaojian Zhuang #define ACPU_SC_A53_x_MTCMOS_TIMER(x)		((x) ? ACPU_SC_A53_1_MTCMOS_TIMER : ACPU_SC_A53_0_MTCMOS_TIMER)
9208b167e9SHaojian Zhuang 
9308b167e9SHaojian Zhuang #define ACPU_SC_SNOOP_PWD			(ACPU_CTRL_BASE + 0xe4)
9408b167e9SHaojian Zhuang #define PD_DETECT_START1			(1 << 16)
9508b167e9SHaojian Zhuang #define PD_DETECT_START0			(1 << 0)
9608b167e9SHaojian Zhuang 
9708b167e9SHaojian Zhuang #define ACPU_SC_CPU0_CTRL			(ACPU_CTRL_BASE + 0x100)
9808b167e9SHaojian Zhuang #define CPU_CTRL_AARCH64_MODE			(1 << 7)
9908b167e9SHaojian Zhuang 
10008b167e9SHaojian Zhuang #define ACPU_SC_CPU0_STAT			(ACPU_CTRL_BASE + 0x104)
10108b167e9SHaojian Zhuang #define ACPU_SC_CPU0_CLKEN			(ACPU_CTRL_BASE + 0x108)
10208b167e9SHaojian Zhuang #define CPU_CLKEN_HPM				(1 << 1)
10308b167e9SHaojian Zhuang 
10408b167e9SHaojian Zhuang #define ACPU_SC_CPU0_CLK_STAT			(ACPU_CTRL_BASE + 0x110)
10508b167e9SHaojian Zhuang 
10608b167e9SHaojian Zhuang #define ACPU_SC_CPU0_RSTEN			(ACPU_CTRL_BASE + 0x114)
10708b167e9SHaojian Zhuang #define ACPU_SC_CPU0_RSTDIS			(ACPU_CTRL_BASE + 0x118)
10808b167e9SHaojian Zhuang #define ACPU_SC_CPU0_MTCMOS_EN			(ACPU_CTRL_BASE + 0x120)
10908b167e9SHaojian Zhuang #define CPU_MTCMOS_PW				(1 << 0)
11008b167e9SHaojian Zhuang 
11108b167e9SHaojian Zhuang #define ACPU_SC_CPU0_PW_ISOEN			(ACPU_CTRL_BASE + 0x130)
11208b167e9SHaojian Zhuang #define CPU_PW_ISO				(1 << 0)
11308b167e9SHaojian Zhuang 
11408b167e9SHaojian Zhuang #define ACPU_SC_CPU0_PW_ISODIS			(ACPU_CTRL_BASE + 0x134)
11508b167e9SHaojian Zhuang #define ACPU_SC_CPU0_PW_ISO_STAT		(ACPU_CTRL_BASE + 0x138)
11608b167e9SHaojian Zhuang #define ACPU_SC_CPU0_MTCMOS_TIMER_STAT		(ACPU_CTRL_BASE + 0x154)
11708b167e9SHaojian Zhuang #define CPU_MTCMOS_TIMER_STA			(1 << 0)
11808b167e9SHaojian Zhuang 
11908b167e9SHaojian Zhuang #define ACPU_SC_CPU0_RVBARADDR			(ACPU_CTRL_BASE + 0x158)
12008b167e9SHaojian Zhuang #define ACPU_SC_CPU1_CTRL			(ACPU_CTRL_BASE + 0x200)
12108b167e9SHaojian Zhuang #define ACPU_SC_CPU1_STAT			(ACPU_CTRL_BASE + 0x204)
12208b167e9SHaojian Zhuang #define ACPU_SC_CPU1_CLKEN			(ACPU_CTRL_BASE + 0x208)
12308b167e9SHaojian Zhuang #define ACPU_SC_CPU1_CLK_STAT			(ACPU_CTRL_BASE + 0x210)
12408b167e9SHaojian Zhuang #define ACPU_SC_CPU1_RSTEN			(ACPU_CTRL_BASE + 0x214)
12508b167e9SHaojian Zhuang #define ACPU_SC_CPU1_RSTDIS			(ACPU_CTRL_BASE + 0x218)
12608b167e9SHaojian Zhuang #define ACPU_SC_CPU1_MTCMOS_EN			(ACPU_CTRL_BASE + 0x220)
12708b167e9SHaojian Zhuang #define ACPU_SC_CPU1_PW_ISODIS			(ACPU_CTRL_BASE + 0x234)
12808b167e9SHaojian Zhuang #define ACPU_SC_CPU1_PW_ISO_STAT		(ACPU_CTRL_BASE + 0x238)
12908b167e9SHaojian Zhuang #define ACPU_SC_CPU1_MTCMOS_TIMER_STAT		(ACPU_CTRL_BASE + 0x254)
13008b167e9SHaojian Zhuang #define ACPU_SC_CPU1_RVBARADDR			(ACPU_CTRL_BASE + 0x258)
13108b167e9SHaojian Zhuang #define ACPU_SC_CPU2_CTRL			(ACPU_CTRL_BASE + 0x300)
13208b167e9SHaojian Zhuang #define ACPU_SC_CPU2_STAT			(ACPU_CTRL_BASE + 0x304)
13308b167e9SHaojian Zhuang #define ACPU_SC_CPU2_CLKEN			(ACPU_CTRL_BASE + 0x308)
13408b167e9SHaojian Zhuang #define ACPU_SC_CPU2_CLK_STAT			(ACPU_CTRL_BASE + 0x310)
13508b167e9SHaojian Zhuang #define ACPU_SC_CPU2_RSTEN			(ACPU_CTRL_BASE + 0x314)
13608b167e9SHaojian Zhuang #define ACPU_SC_CPU2_RSTDIS			(ACPU_CTRL_BASE + 0x318)
13708b167e9SHaojian Zhuang #define ACPU_SC_CPU2_MTCMOS_EN			(ACPU_CTRL_BASE + 0x320)
13808b167e9SHaojian Zhuang #define ACPU_SC_CPU2_PW_ISODIS			(ACPU_CTRL_BASE + 0x334)
13908b167e9SHaojian Zhuang #define ACPU_SC_CPU2_PW_ISO_STAT		(ACPU_CTRL_BASE + 0x338)
14008b167e9SHaojian Zhuang #define ACPU_SC_CPU2_MTCMOS_TIMER_STAT		(ACPU_CTRL_BASE + 0x354)
14108b167e9SHaojian Zhuang #define ACPU_SC_CPU2_RVBARADDR			(ACPU_CTRL_BASE + 0x358)
14208b167e9SHaojian Zhuang #define ACPU_SC_CPU3_CTRL			(ACPU_CTRL_BASE + 0x400)
14308b167e9SHaojian Zhuang #define ACPU_SC_CPU3_STAT			(ACPU_CTRL_BASE + 0x404)
14408b167e9SHaojian Zhuang #define ACPU_SC_CPU3_CLKEN			(ACPU_CTRL_BASE + 0x408)
14508b167e9SHaojian Zhuang #define ACPU_SC_CPU3_CLK_STAT			(ACPU_CTRL_BASE + 0x410)
14608b167e9SHaojian Zhuang #define ACPU_SC_CPU3_RSTEN			(ACPU_CTRL_BASE + 0x414)
14708b167e9SHaojian Zhuang #define ACPU_SC_CPU3_RSTDIS			(ACPU_CTRL_BASE + 0x418)
14808b167e9SHaojian Zhuang #define ACPU_SC_CPU3_MTCMOS_EN			(ACPU_CTRL_BASE + 0x420)
14908b167e9SHaojian Zhuang #define ACPU_SC_CPU3_PW_ISODIS			(ACPU_CTRL_BASE + 0x434)
15008b167e9SHaojian Zhuang #define ACPU_SC_CPU3_PW_ISO_STAT		(ACPU_CTRL_BASE + 0x438)
15108b167e9SHaojian Zhuang #define ACPU_SC_CPU3_MTCMOS_TIMER_STAT		(ACPU_CTRL_BASE + 0x454)
15208b167e9SHaojian Zhuang #define ACPU_SC_CPU3_RVBARADDR			(ACPU_CTRL_BASE + 0x458)
15308b167e9SHaojian Zhuang #define ACPU_SC_CPU4_CTRL			(ACPU_CTRL_BASE + 0x500)
15408b167e9SHaojian Zhuang #define ACPU_SC_CPU4_STAT			(ACPU_CTRL_BASE + 0x504)
15508b167e9SHaojian Zhuang #define ACPU_SC_CPU4_CLKEN			(ACPU_CTRL_BASE + 0x508)
15608b167e9SHaojian Zhuang #define ACPU_SC_CPU4_CLK_STAT			(ACPU_CTRL_BASE + 0x510)
15708b167e9SHaojian Zhuang #define ACPU_SC_CPU4_RSTEN			(ACPU_CTRL_BASE + 0x514)
15808b167e9SHaojian Zhuang #define ACPU_SC_CPU4_RSTDIS			(ACPU_CTRL_BASE + 0x518)
15908b167e9SHaojian Zhuang #define ACPU_SC_CPU4_MTCMOS_EN			(ACPU_CTRL_BASE + 0x520)
16008b167e9SHaojian Zhuang #define ACPU_SC_CPU4_PW_ISODIS			(ACPU_CTRL_BASE + 0x534)
16108b167e9SHaojian Zhuang #define ACPU_SC_CPU4_PW_ISO_STAT		(ACPU_CTRL_BASE + 0x538)
16208b167e9SHaojian Zhuang #define ACPU_SC_CPU4_MTCMOS_TIMER_STAT		(ACPU_CTRL_BASE + 0x554)
16308b167e9SHaojian Zhuang #define ACPU_SC_CPU4_RVBARADDR			(ACPU_CTRL_BASE + 0x558)
16408b167e9SHaojian Zhuang #define ACPU_SC_CPU5_CTRL			(ACPU_CTRL_BASE + 0x600)
16508b167e9SHaojian Zhuang #define ACPU_SC_CPU5_STAT			(ACPU_CTRL_BASE + 0x604)
16608b167e9SHaojian Zhuang #define ACPU_SC_CPU5_CLKEN			(ACPU_CTRL_BASE + 0x608)
16708b167e9SHaojian Zhuang #define ACPU_SC_CPU5_CLK_STAT			(ACPU_CTRL_BASE + 0x610)
16808b167e9SHaojian Zhuang #define ACPU_SC_CPU5_RSTEN			(ACPU_CTRL_BASE + 0x614)
16908b167e9SHaojian Zhuang #define ACPU_SC_CPU5_RSTDIS			(ACPU_CTRL_BASE + 0x618)
17008b167e9SHaojian Zhuang #define ACPU_SC_CPU5_MTCMOS_EN			(ACPU_CTRL_BASE + 0x620)
17108b167e9SHaojian Zhuang #define ACPU_SC_CPU5_PW_ISODIS			(ACPU_CTRL_BASE + 0x634)
17208b167e9SHaojian Zhuang #define ACPU_SC_CPU5_PW_ISO_STAT		(ACPU_CTRL_BASE + 0x638)
17308b167e9SHaojian Zhuang #define ACPU_SC_CPU5_MTCMOS_TIMER_STAT		(ACPU_CTRL_BASE + 0x654)
17408b167e9SHaojian Zhuang #define ACPU_SC_CPU5_RVBARADDR			(ACPU_CTRL_BASE + 0x658)
17508b167e9SHaojian Zhuang #define ACPU_SC_CPU6_CTRL			(ACPU_CTRL_BASE + 0x700)
17608b167e9SHaojian Zhuang #define ACPU_SC_CPU6_STAT			(ACPU_CTRL_BASE + 0x704)
17708b167e9SHaojian Zhuang #define ACPU_SC_CPU6_CLKEN			(ACPU_CTRL_BASE + 0x708)
17808b167e9SHaojian Zhuang #define ACPU_SC_CPU6_CLK_STAT			(ACPU_CTRL_BASE + 0x710)
17908b167e9SHaojian Zhuang #define ACPU_SC_CPU6_RSTEN			(ACPU_CTRL_BASE + 0x714)
18008b167e9SHaojian Zhuang #define ACPU_SC_CPU6_RSTDIS			(ACPU_CTRL_BASE + 0x718)
18108b167e9SHaojian Zhuang #define ACPU_SC_CPU6_MTCMOS_EN			(ACPU_CTRL_BASE + 0x720)
18208b167e9SHaojian Zhuang #define ACPU_SC_CPU6_PW_ISODIS			(ACPU_CTRL_BASE + 0x734)
18308b167e9SHaojian Zhuang #define ACPU_SC_CPU6_PW_ISO_STAT		(ACPU_CTRL_BASE + 0x738)
18408b167e9SHaojian Zhuang #define ACPU_SC_CPU6_MTCMOS_TIMER_STAT		(ACPU_CTRL_BASE + 0x754)
18508b167e9SHaojian Zhuang #define ACPU_SC_CPU6_RVBARADDR			(ACPU_CTRL_BASE + 0x758)
18608b167e9SHaojian Zhuang #define ACPU_SC_CPU7_CTRL			(ACPU_CTRL_BASE + 0x800)
18708b167e9SHaojian Zhuang #define ACPU_SC_CPU7_STAT			(ACPU_CTRL_BASE + 0x804)
18808b167e9SHaojian Zhuang #define ACPU_SC_CPU7_CLKEN			(ACPU_CTRL_BASE + 0x808)
18908b167e9SHaojian Zhuang #define ACPU_SC_CPU7_CLK_STAT			(ACPU_CTRL_BASE + 0x810)
19008b167e9SHaojian Zhuang #define ACPU_SC_CPU7_RSTEN			(ACPU_CTRL_BASE + 0x814)
19108b167e9SHaojian Zhuang #define ACPU_SC_CPU7_RSTDIS			(ACPU_CTRL_BASE + 0x818)
19208b167e9SHaojian Zhuang #define ACPU_SC_CPU7_MTCMOS_EN			(ACPU_CTRL_BASE + 0x820)
19308b167e9SHaojian Zhuang #define ACPU_SC_CPU7_PW_ISODIS			(ACPU_CTRL_BASE + 0x834)
19408b167e9SHaojian Zhuang #define ACPU_SC_CPU7_PW_ISO_STAT		(ACPU_CTRL_BASE + 0x838)
19508b167e9SHaojian Zhuang #define ACPU_SC_CPU7_MTCMOS_TIMER_STAT		(ACPU_CTRL_BASE + 0x854)
19608b167e9SHaojian Zhuang #define ACPU_SC_CPU7_RVBARADDR			(ACPU_CTRL_BASE + 0x858)
19708b167e9SHaojian Zhuang #define ACPU_SC_CPUx_CTRL(x)			((x < 8) ? (ACPU_SC_CPU0_CTRL + 0x100 * x) : ACPU_SC_CPU0_CTRL)
19808b167e9SHaojian Zhuang #define ACPU_SC_CPUx_STAT(x)			((x < 8) ? (ACPU_SC_CPU0_STAT + 0x100 * x) : ACPU_SC_CPU0_STAT)
19908b167e9SHaojian Zhuang #define ACPU_SC_CPUx_CLKEN(x)			((x < 8) ? (ACPU_SC_CPU0_CLKEN + 0x100 * x) : ACPU_SC_CPU0_CLKEN)
20008b167e9SHaojian Zhuang #define ACPU_SC_CPUx_CLK_STAT(x)		((x < 8) ? (ACPU_SC_CPU0_CLK_STAT + 0x100 * x) : ACPU_SC_CPU0_CLK_STAT)
20108b167e9SHaojian Zhuang #define ACPU_SC_CPUx_RSTEN(x)			((x < 8) ? (ACPU_SC_CPU0_RSTEN + 0x100 * x) : ACPU_SC_CPU0_RSTEN)
20208b167e9SHaojian Zhuang #define ACPU_SC_CPUx_RSTDIS(x)			((x < 8) ? (ACPU_SC_CPU0_RSTDIS + 0x100 * x) : ACPU_SC_CPU0_RSTDIS)
20308b167e9SHaojian Zhuang #define ACPU_SC_CPUx_MTCMOS_EN(x)		((x < 8) ? (ACPU_SC_CPU0_MTCMOS_EN + 0x100 * x) : ACPU_SC_CPU0_MTCMOS_EN)
20408b167e9SHaojian Zhuang #define ACPU_SC_CPUx_PW_ISODIS(x)		((x < 8) ? (ACPU_SC_CPU0_PW_ISODIS + 0x100 * x) : ACPU_SC_CPU0_PW_ISODIS)
20508b167e9SHaojian 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)
20608b167e9SHaojian 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)
20708b167e9SHaojian Zhuang #define ACPU_SC_CPUx_RVBARADDR(x)		((x < 8) ? (ACPU_SC_CPU0_RVBARADDR + 0x100 * x) : ACPU_SC_CPU0_RVBARADDR)
20808b167e9SHaojian Zhuang 
20908b167e9SHaojian Zhuang #define ACPU_SC_CPU_STAT_CLKDIV_VD_MASK		(3 << 20)
21008b167e9SHaojian Zhuang 
21108b167e9SHaojian Zhuang #define ACPU_SC_VD_CTRL_TUNE_EN_DIF		(1 << 0)
21208b167e9SHaojian Zhuang #define ACPU_SC_VD_CTRL_TUNE_EN_DIF_SHIFT	(0)
21308b167e9SHaojian Zhuang #define ACPU_SC_VD_CTRL_TUNE			(1 << 1)
21408b167e9SHaojian Zhuang #define ACPU_SC_VD_CTRL_TUNE_SHIFT		(1)
21508b167e9SHaojian Zhuang #define ACPU_SC_VD_CTRL_CALIBRATE_EN_DIF	(1 << 7)
21608b167e9SHaojian Zhuang #define ACPU_SC_VD_CTRL_CALIBRATE_EN_DIF_SHIFT	(7)
21708b167e9SHaojian Zhuang #define ACPU_SC_VD_CTRL_CALIBRATE_EN_INI	(1 << 8)
21808b167e9SHaojian Zhuang #define ACPU_SC_VD_CTRL_CALIBRATE_EN_INI_SHIFT	(8)
21908b167e9SHaojian Zhuang #define ACPU_SC_VD_CTRL_CLK_DIS_CNT_CLR		(1 << 9)
22008b167e9SHaojian Zhuang #define ACPU_SC_VD_CTRL_CLK_DIS_CNT_CLR_SHIFT	(9)
22108b167e9SHaojian Zhuang #define ACPU_SC_VD_CTRL_CLK_DIS_CNT_EN		(1 << 10)
22208b167e9SHaojian Zhuang #define ACPU_SC_VD_CTRL_CLK_DIS_CNT_EN_SHIFT	(10)
22308b167e9SHaojian Zhuang #define ACPU_SC_VD_CTRL_TUNE_EN_INT		(1 << 11)
22408b167e9SHaojian Zhuang #define ACPU_SC_VD_CTRL_TUNE_EN_INT_SHIFT	(11)
22508b167e9SHaojian Zhuang #define ACPU_SC_VD_CTRL_SHIFT_TABLE0		(1 << 12)
22608b167e9SHaojian Zhuang #define ACPU_SC_VD_CTRL_SHIFT_TABLE0_MASK	(0xf << 12)
22708b167e9SHaojian Zhuang #define ACPU_SC_VD_CTRL_SHIFT_TABLE0_SHIFT	(12)
22808b167e9SHaojian Zhuang #define ACPU_SC_VD_CTRL_SHIFT_TABLE1		(1 << 16)
22908b167e9SHaojian Zhuang #define ACPU_SC_VD_CTRL_SHIFT_TABLE1_MASK	(0xf << 16)
23008b167e9SHaojian Zhuang #define ACPU_SC_VD_CTRL_SHIFT_TABLE1_SHIFT	(16)
23108b167e9SHaojian Zhuang #define ACPU_SC_VD_CTRL_SHIFT_TABLE2		(1 << 20)
23208b167e9SHaojian Zhuang #define ACPU_SC_VD_CTRL_SHIFT_TABLE2_MASK	(0xf << 20)
23308b167e9SHaojian Zhuang #define ACPU_SC_VD_CTRL_SHIFT_TABLE2_SHIFT	(20)
23408b167e9SHaojian Zhuang #define ACPU_SC_VD_CTRL_SHIFT_TABLE3		(1 << 24)
23508b167e9SHaojian Zhuang #define ACPU_SC_VD_CTRL_SHIFT_TABLE3_MASK	(0xf << 24)
23608b167e9SHaojian Zhuang #define ACPU_SC_VD_CTRL_SHIFT_TABLE3_SHIFT	(24)
23708b167e9SHaojian Zhuang #define ACPU_SC_VD_CTRL_FORCE_CLK_EN		(1 << 28)
23808b167e9SHaojian Zhuang #define ACPU_SC_VD_CTRL_FORCE_CLK_EN_SHIFT	(28)
23908b167e9SHaojian Zhuang #define ACPU_SC_VD_CTRL_DIV_EN_DIF		(1 << 29)
24008b167e9SHaojian Zhuang #define ACPU_SC_VD_CTRL_DIV_EN_DIF_SHIFT	(29)
24108b167e9SHaojian Zhuang 
24208b167e9SHaojian Zhuang #define ACPU_SC_VD_SHIFT_TABLE_TUNE_VAL			\
24308b167e9SHaojian Zhuang 	((0x1 << ACPU_SC_VD_CTRL_SHIFT_TABLE0_SHIFT) |	\
24408b167e9SHaojian Zhuang 	 (0x3 << ACPU_SC_VD_CTRL_SHIFT_TABLE1_SHIFT) |	\
24508b167e9SHaojian Zhuang 	 (0x5 << ACPU_SC_VD_CTRL_SHIFT_TABLE2_SHIFT) |	\
24608b167e9SHaojian Zhuang 	 (0x6 << ACPU_SC_VD_CTRL_SHIFT_TABLE3_SHIFT) |	\
24708b167e9SHaojian Zhuang 	 (0x7 << ACPU_SC_VD_CTRL_TUNE_SHIFT))
24808b167e9SHaojian Zhuang 
24908b167e9SHaojian Zhuang #define ACPU_SC_VD_SHIFT_TABLE_TUNE_MASK		\
25008b167e9SHaojian Zhuang 	((0xF << ACPU_SC_VD_CTRL_SHIFT_TABLE0_SHIFT) |	\
25108b167e9SHaojian Zhuang 	 (0xF << ACPU_SC_VD_CTRL_SHIFT_TABLE1_SHIFT) |	\
25208b167e9SHaojian Zhuang 	 (0xF << ACPU_SC_VD_CTRL_SHIFT_TABLE2_SHIFT) |	\
25308b167e9SHaojian Zhuang 	 (0xF << ACPU_SC_VD_CTRL_SHIFT_TABLE3_SHIFT) |	\
25408b167e9SHaojian Zhuang 	 (0x3F << ACPU_SC_VD_CTRL_TUNE_SHIFT))
25508b167e9SHaojian Zhuang 
25608b167e9SHaojian Zhuang #define ACPU_SC_VD_HPM_CTRL_OSC_DIV		(1 << 0)
25708b167e9SHaojian Zhuang #define ACPU_SC_VD_HPM_CTRL_OSC_DIV_SHIFT	(0)
25808b167e9SHaojian Zhuang #define ACPU_SC_VD_HPM_CTRL_OSC_DIV_MASK	(0x000000FF)
25908b167e9SHaojian Zhuang #define ACPU_SC_VD_HPM_CTRL_DLY_EXP		(1 << 8)
26008b167e9SHaojian Zhuang #define ACPU_SC_VD_HPM_CTRL_DLY_EXP_SHIFT	(8)
26108b167e9SHaojian Zhuang #define ACPU_SC_VD_HPM_CTRL_DLY_EXP_MASK	(0x001FFF00)
26208b167e9SHaojian Zhuang 
26308b167e9SHaojian Zhuang #define HPM_OSC_DIV_VAL \
26408b167e9SHaojian Zhuang 	(0x56 << ACPU_SC_VD_HPM_CTRL_OSC_DIV_SHIFT)
26508b167e9SHaojian Zhuang #define HPM_OSC_DIV_MASK \
26608b167e9SHaojian Zhuang 	(ACPU_SC_VD_HPM_CTRL_OSC_DIV_MASK)
26708b167e9SHaojian Zhuang 
26808b167e9SHaojian Zhuang #define HPM_DLY_EXP_VAL \
26908b167e9SHaojian Zhuang 	(0xC7A << ACPU_SC_VD_HPM_CTRL_DLY_EXP_SHIFT)
27008b167e9SHaojian Zhuang #define HPM_DLY_EXP_MASK \
27108b167e9SHaojian Zhuang 	(ACPU_SC_VD_HPM_CTRL_DLY_EXP_MASK)
27208b167e9SHaojian Zhuang 
27308b167e9SHaojian Zhuang #define ACPU_SC_VD_EN_ASIC_VAL					\
27408b167e9SHaojian Zhuang 	((0x0 << ACPU_SC_VD_CTRL_FORCE_CLK_EN_SHIFT) |		\
27508b167e9SHaojian Zhuang 	 (0x0 << ACPU_SC_VD_CTRL_CLK_DIS_CNT_EN_SHIFT) |	\
27608b167e9SHaojian Zhuang 	 (0x0 << ACPU_SC_VD_CTRL_CALIBRATE_EN_INI_SHIFT) |	\
27708b167e9SHaojian Zhuang 	 (0x0 << ACPU_SC_VD_CTRL_CALIBRATE_EN_DIF_SHIFT) |	\
27808b167e9SHaojian Zhuang 	 (0X0 << ACPU_SC_VD_CTRL_DIV_EN_DIF_SHIFT) |		\
27908b167e9SHaojian Zhuang 	 (0X0 << ACPU_SC_VD_CTRL_TUNE_EN_INT_SHIFT) |		\
28008b167e9SHaojian Zhuang 	 (0x0 << ACPU_SC_VD_CTRL_TUNE_EN_DIF_SHIFT))
28108b167e9SHaojian Zhuang 
28208b167e9SHaojian Zhuang #define ACPU_SC_VD_EN_SFT_VAL					\
28308b167e9SHaojian Zhuang 	((0x0 << ACPU_SC_VD_CTRL_FORCE_CLK_EN_SHIFT) |		\
28408b167e9SHaojian Zhuang 	 (0x0 << ACPU_SC_VD_CTRL_CLK_DIS_CNT_EN_SHIFT) |	\
28508b167e9SHaojian Zhuang 	 (0x0 << ACPU_SC_VD_CTRL_CALIBRATE_EN_INI_SHIFT) |	\
28608b167e9SHaojian Zhuang 	 (0x0 << ACPU_SC_VD_CTRL_CALIBRATE_EN_DIF_SHIFT) |	\
28708b167e9SHaojian Zhuang 	 (0x0 << ACPU_SC_VD_CTRL_DIV_EN_DIF_SHIFT) |		\
28808b167e9SHaojian Zhuang 	 (0x0 << ACPU_SC_VD_CTRL_TUNE_EN_INT_SHIFT) |		\
28908b167e9SHaojian Zhuang 	 (0x0 << ACPU_SC_VD_CTRL_TUNE_EN_DIF_SHIFT))
29008b167e9SHaojian Zhuang 
29108b167e9SHaojian Zhuang #define ACPU_SC_VD_EN_MASK					\
29208b167e9SHaojian Zhuang 	((0x1 << ACPU_SC_VD_CTRL_FORCE_CLK_EN_SHIFT) |		\
29308b167e9SHaojian Zhuang 	 (0x1 << ACPU_SC_VD_CTRL_CLK_DIS_CNT_EN_SHIFT) |	\
29408b167e9SHaojian Zhuang 	 (0x1 << ACPU_SC_VD_CTRL_CALIBRATE_EN_INI_SHIFT) |	\
29508b167e9SHaojian Zhuang 	 (0x1 << ACPU_SC_VD_CTRL_CALIBRATE_EN_DIF_SHIFT) |	\
29608b167e9SHaojian Zhuang 	 (0x1 << ACPU_SC_VD_CTRL_DIV_EN_DIF_SHIFT) |		\
29708b167e9SHaojian Zhuang 	 (0x1 << ACPU_SC_VD_CTRL_TUNE_EN_INT_SHIFT) |		\
29808b167e9SHaojian Zhuang 	 (0x1 << ACPU_SC_VD_CTRL_TUNE_EN_DIF_SHIFT))
29908b167e9SHaojian Zhuang 
300*c3cf06f1SAntonio Nino Diaz #endif /* HI6220_REGS_ACPU_H */
301