xref: /rk3399_ARM-atf/plat/mediatek/mt8196/drivers/dcm/mtk_dcm_utils.h (revision 2c09bf93f0cfa0dae8a8829921e62e6093bbeacf)
1*e578702fSGuangjie Song /*
2*e578702fSGuangjie Song  * Copyright (c) 2025, MediaTek Inc. All rights reserved.
3*e578702fSGuangjie Song  *
4*e578702fSGuangjie Song  * SPDX-License-Identifier: BSD-3-Clause
5*e578702fSGuangjie Song  */
6*e578702fSGuangjie Song 
7*e578702fSGuangjie Song #ifndef DCM_MTK_DCM_UTILS_H_
8*e578702fSGuangjie Song #define DCM_MTK_DCM_UTILS_H_
9*e578702fSGuangjie Song 
10*e578702fSGuangjie Song #include <stdbool.h>
11*e578702fSGuangjie Song 
12*e578702fSGuangjie Song #include <platform_def.h>
13*e578702fSGuangjie Song 
14*e578702fSGuangjie Song #define MCUSYS_PAR_WRAP_BASE		(MCUCFG_BASE + 0x001B0000)
15*e578702fSGuangjie Song #define MCUSYS_PAR_WRAP_SIZE		(0x10000)
16*e578702fSGuangjie Song #define APINFRA_IO_CTRL_AO		(IO_PHYS + 0x00156000)
17*e578702fSGuangjie Song #define APINFRA_IO_CTRL_AO_SIZE		(0x1000)
18*e578702fSGuangjie Song #define APINFRA_IO_NOC_AO		(IO_PHYS + 0x04012000)
19*e578702fSGuangjie Song #define APINFRA_IO_NOC_AO_SIZE		(0x1000)
20*e578702fSGuangjie Song #define APINFRA_MEM_INTF_NOC_AO		(IO_PHYS + 0x04032000)
21*e578702fSGuangjie Song #define APINFRA_MEM_INTF_NOC_AO_SIZE	(0x1000)
22*e578702fSGuangjie Song #define APINFRA_MEM_CTRL_AO		(IO_PHYS + 0x04124000)
23*e578702fSGuangjie Song #define APINFRA_MEM_CTRL_AO_SIZE	(0x1000)
24*e578702fSGuangjie Song #define PERI_AO_BCRM_BASE		(IO_PHYS + 0x06610000)
25*e578702fSGuangjie Song #define PERI_AO_BCRM_BASE_SIZE		(0x1000)
26*e578702fSGuangjie Song #define VLP_AO_BCRM_BASE		(IO_PHYS + 0x0c030000)
27*e578702fSGuangjie Song #define VLP_AO_BCRM_BASE_SIZE		(0x1000)
28*e578702fSGuangjie Song 
29*e578702fSGuangjie Song #define MCUSYS_PAR_WRAP_L3_SHARE_DCM_CTRL	(MCUSYS_PAR_WRAP_BASE + 0x78)
30*e578702fSGuangjie Song #define MCUSYS_PAR_WRAP_MP_ADB_DCM_CFG0		(MCUSYS_PAR_WRAP_BASE + 0x270)
31*e578702fSGuangjie Song #define MCUSYS_PAR_WRAP_ADB_FIFO_DCM_EN		(MCUSYS_PAR_WRAP_BASE + 0x278)
32*e578702fSGuangjie Song #define MCUSYS_PAR_WRAP_MP0_DCM_CFG0		(MCUSYS_PAR_WRAP_BASE + 0x27c)
33*e578702fSGuangjie Song #define MCUSYS_PAR_WRAP_QDCM_CONFIG0		(MCUSYS_PAR_WRAP_BASE + 0x280)
34*e578702fSGuangjie Song #define MCUSYS_PAR_WRAP_L3GIC_ARCH_CG_CONFIG	(MCUSYS_PAR_WRAP_BASE + 0x294)
35*e578702fSGuangjie Song #define MCUSYS_PAR_WRAP_QDCM_CONFIG1		(MCUSYS_PAR_WRAP_BASE + 0x284)
36*e578702fSGuangjie Song #define MCUSYS_PAR_WRAP_QDCM_CONFIG2		(MCUSYS_PAR_WRAP_BASE + 0x288)
37*e578702fSGuangjie Song #define MCUSYS_PAR_WRAP_QDCM_CONFIG3		(MCUSYS_PAR_WRAP_BASE + 0x28c)
38*e578702fSGuangjie Song #define MCUSYS_PAR_WRAP_CI700_DCM_CTRL		(MCUSYS_PAR_WRAP_BASE + 0x298)
39*e578702fSGuangjie Song #define MCUSYS_PAR_WRAP_CBIP_CABGEN_3TO1_CONFIG	(MCUSYS_PAR_WRAP_BASE + 0x2a0)
40*e578702fSGuangjie Song #define MCUSYS_PAR_WRAP_CBIP_CABGEN_2TO1_CONFIG	(MCUSYS_PAR_WRAP_BASE + 0x2a4)
41*e578702fSGuangjie Song #define MCUSYS_PAR_WRAP_CBIP_CABGEN_4TO2_CONFIG	(MCUSYS_PAR_WRAP_BASE + 0x2a8)
42*e578702fSGuangjie Song #define MCUSYS_PAR_WRAP_CBIP_CABGEN_1TO2_CONFIG	(MCUSYS_PAR_WRAP_BASE + 0x2ac)
43*e578702fSGuangjie Song #define MCUSYS_PAR_WRAP_CBIP_CABGEN_2TO5_CONFIG	(MCUSYS_PAR_WRAP_BASE + 0x2b0)
44*e578702fSGuangjie Song #define MCUSYS_PAR_WRAP_CBIP_P2P_CONFIG0	(MCUSYS_PAR_WRAP_BASE + 0x2b4)
45*e578702fSGuangjie Song #define MCUSYS_PAR_WRAP_CBIP_CABGEN_1TO2_L3GIC_CONFIG \
46*e578702fSGuangjie Song 		(MCUSYS_PAR_WRAP_BASE + 0x2bc)
47*e578702fSGuangjie Song #define MCUSYS_PAR_WRAP_CBIP_CABGEN_1TO2_INFRA_CONFIG \
48*e578702fSGuangjie Song 		(MCUSYS_PAR_WRAP_BASE + 0x2c4)
49*e578702fSGuangjie Song #define MCUSYS_PAR_WRAP_MP_CENTRAL_FABRIC_SUB_CHANNEL_CG \
50*e578702fSGuangjie Song 		(MCUSYS_PAR_WRAP_BASE + 0x2b8)
51*e578702fSGuangjie Song #define MCUSYS_PAR_WRAP_ACP_SLAVE_DCM_EN	(MCUSYS_PAR_WRAP_BASE + 0x2dc)
52*e578702fSGuangjie Song #define MCUSYS_PAR_WRAP_GIC_SPI_SLOW_CK_CFG	(MCUSYS_PAR_WRAP_BASE + 0x2e0)
53*e578702fSGuangjie Song #define MCUSYS_PAR_WRAP_EBG_CKE_WRAP_FIFO_CFG	(MCUSYS_PAR_WRAP_BASE + 0x404)
54*e578702fSGuangjie Song #define CLK_AXI_VDNR_DCM_TOP_APINFRA_IO_INTX_BUS_CTRL_0 \
55*e578702fSGuangjie Song 		(APINFRA_IO_CTRL_AO + 0x8)
56*e578702fSGuangjie Song #define CLK_IO_NOC_VDNR_DCM_TOP_APINFRA_IO_INTF_PAR_BUS_CTRL_0 \
57*e578702fSGuangjie Song 		(APINFRA_IO_NOC_AO + 0x4)
58*e578702fSGuangjie Song #define VDNR_DCM_TOP_APINFRA_MEM_INTF_PAR_BUS_CTRL_0 \
59*e578702fSGuangjie Song 		(APINFRA_MEM_INTF_NOC_AO + 0x0)
60*e578702fSGuangjie Song #define CLK_FMEM_SUB_CFG_VDNR_DCM_TOP_APINFRA_MEM_INTX_BUS_CTRL_0 \
61*e578702fSGuangjie Song 		(APINFRA_MEM_CTRL_AO + 0xc)
62*e578702fSGuangjie Song #define CLK_FMEM_SUB_VDNR_DCM_TOP_APINFRA_MEM_INTX_BUS_CTRL_0 \
63*e578702fSGuangjie Song 		(APINFRA_MEM_CTRL_AO + 0x14)
64*e578702fSGuangjie Song #define CLK_FMEM_SUB_VDNR_DCM_TOP_APINFRA_MEM_INTX_BUS_CTRL_1 \
65*e578702fSGuangjie Song 		(APINFRA_MEM_CTRL_AO + 0x18)
66*e578702fSGuangjie Song #define CLK_FMEM_SUB_VDNR_DCM_TOP_APINFRA_MEM_INTX_BUS_CTRL_2 \
67*e578702fSGuangjie Song 		(APINFRA_MEM_CTRL_AO + 0x1c)
68*e578702fSGuangjie Song #define CLK_FMEM_SUB_VDNR_DCM_TOP_APINFRA_MEM_INTX_BUS_CTRL_3 \
69*e578702fSGuangjie Song 		(APINFRA_MEM_CTRL_AO + 0x20)
70*e578702fSGuangjie Song #define CLK_FMEM_SUB_VDNR_DCM_TOP_APINFRA_MEM_INTX_BUS_CTRL_4 \
71*e578702fSGuangjie Song 		(APINFRA_MEM_CTRL_AO + 0x24)
72*e578702fSGuangjie Song #define CLK_FMEM_SUB_VDNR_DCM_TOP_APINFRA_MEM_INTX_BUS_CTRL_5 \
73*e578702fSGuangjie Song 		(APINFRA_MEM_CTRL_AO + 0x28)
74*e578702fSGuangjie Song 
75*e578702fSGuangjie Song #define VDNR_DCM_TOP_PERI_PAR_BUS_CTRL1_0	(PERI_AO_BCRM_BASE + 0x2c)
76*e578702fSGuangjie Song #define VDNR_DCM_TOP_PERI_PAR_BUS_CTRL1_1	(PERI_AO_BCRM_BASE + 0x30)
77*e578702fSGuangjie Song #define VDNR_DCM_TOP_PERI_PAR_BUS_CTRL1_2	(PERI_AO_BCRM_BASE + 0x34)
78*e578702fSGuangjie Song #define VDNR_DCM_TOP_PERI_PAR_BUS_CTRL1_3	(PERI_AO_BCRM_BASE + 0x38)
79*e578702fSGuangjie Song #define VDNR_DCM_TOP_PERI_PAR_BUS_CTRL2_0	(PERI_AO_BCRM_BASE + 0x20)
80*e578702fSGuangjie Song #define VDNR_DCM_TOP_PERI_PAR_BUS_CTRL2_1	(PERI_AO_BCRM_BASE + 0x24)
81*e578702fSGuangjie Song #define VDNR_DCM_TOP_PERI_PAR_BUS_CTRL2_2	(PERI_AO_BCRM_BASE + 0x28)
82*e578702fSGuangjie Song #define VDNR_DCM_TOP_PERI_PAR_BUS_CTRL2_3	(PERI_AO_BCRM_BASE + 0x2c)
83*e578702fSGuangjie Song #define VDNR_DCM_TOP_VLP_PAR_BUS_TOP_CTRL_0	(VLP_AO_BCRM_BASE + 0x5c)
84*e578702fSGuangjie Song 
85*e578702fSGuangjie Song #define MCUSYS_PAR_WRAP_MCU_L3C_DCM_REG0_MASK		0x1
86*e578702fSGuangjie Song #define MCUSYS_PAR_WRAP_MCU_L3C_DCM_REG0_ON		0x1
87*e578702fSGuangjie Song #define MCUSYS_PAR_WRAP_MCU_L3C_DCM_REG0_OFF		0
88*e578702fSGuangjie Song #define MCUSYS_PAR_WRAP_MCU_ACP_DCM_REG0_MASK		0x10001
89*e578702fSGuangjie Song #define MCUSYS_PAR_WRAP_MCU_ACP_DCM_REG0_ON		0x10001
90*e578702fSGuangjie Song #define MCUSYS_PAR_WRAP_MCU_ACP_DCM_REG0_OFF		0
91*e578702fSGuangjie Song #define MCUSYS_PAR_WRAP_MCU_ADB_DCM_REG0_MASK		0x1FFF07FF
92*e578702fSGuangjie Song #define MCUSYS_PAR_WRAP_MCU_ADB_DCM_REG0_ON		0x1FFF07FF
93*e578702fSGuangjie Song #define MCUSYS_PAR_WRAP_MCU_ADB_DCM_REG0_OFF		0
94*e578702fSGuangjie Song #define MCUSYS_PAR_WRAP_MCU_STALLDCM_REG0_MASK		0xFF
95*e578702fSGuangjie Song #define MCUSYS_PAR_WRAP_MCU_STALLDCM_REG0_ON		0xFF
96*e578702fSGuangjie Song #define MCUSYS_PAR_WRAP_MCU_STALLDCM_REG0_OFF		0
97*e578702fSGuangjie Song #define MCUSYS_PAR_WRAP_MCU_APB_DCM_REG0_MASK		0x1FFFF00
98*e578702fSGuangjie Song #define MCUSYS_PAR_WRAP_MCU_APB_DCM_REG0_ON		0x1FFFF00
99*e578702fSGuangjie Song #define MCUSYS_PAR_WRAP_MCU_APB_DCM_REG0_OFF		0
100*e578702fSGuangjie Song #define MCUSYS_PAR_WRAP_MCU_IO_DCM_REG0_MASK		0x1001
101*e578702fSGuangjie Song #define MCUSYS_PAR_WRAP_MCU_IO_DCM_REG1_MASK		0x1
102*e578702fSGuangjie Song #define MCUSYS_PAR_WRAP_MCU_IO_DCM_REG0_ON		0x1001
103*e578702fSGuangjie Song #define MCUSYS_PAR_WRAP_MCU_IO_DCM_REG1_ON		0x1
104*e578702fSGuangjie Song #define MCUSYS_PAR_WRAP_MCU_IO_DCM_REG0_OFF		0
105*e578702fSGuangjie Song #define MCUSYS_PAR_WRAP_MCU_IO_DCM_REG1_OFF		0
106*e578702fSGuangjie Song #define MCUSYS_PAR_WRAP_MCU_BUS_QDCM_REG0_MASK		0x1110000
107*e578702fSGuangjie Song #define MCUSYS_PAR_WRAP_MCU_BUS_QDCM_REG1_MASK		0x1111
108*e578702fSGuangjie Song #define MCUSYS_PAR_WRAP_MCU_BUS_QDCM_REG0_ON		0x1110000
109*e578702fSGuangjie Song #define MCUSYS_PAR_WRAP_MCU_BUS_QDCM_REG1_ON		0x1111
110*e578702fSGuangjie Song #define MCUSYS_PAR_WRAP_MCU_BUS_QDCM_REG0_OFF		0
111*e578702fSGuangjie Song #define MCUSYS_PAR_WRAP_MCU_BUS_QDCM_REG1_OFF		0
112*e578702fSGuangjie Song #define MCUSYS_PAR_WRAP_MCU_CORE_QDCM_REG0_MASK		0x11111111
113*e578702fSGuangjie Song #define MCUSYS_PAR_WRAP_MCU_CORE_QDCM_REG1_MASK		0x1111
114*e578702fSGuangjie Song #define MCUSYS_PAR_WRAP_MCU_CORE_QDCM_REG0_ON		0x11111111
115*e578702fSGuangjie Song #define MCUSYS_PAR_WRAP_MCU_CORE_QDCM_REG1_ON		0x1111
116*e578702fSGuangjie Song #define MCUSYS_PAR_WRAP_MCU_CORE_QDCM_REG0_OFF		0
117*e578702fSGuangjie Song #define MCUSYS_PAR_WRAP_MCU_CORE_QDCM_REG1_OFF		0
118*e578702fSGuangjie Song #define MCUSYS_PAR_WRAP_MCU_BKR_LDCM1_REG0_MASK		0XFFFF0003
119*e578702fSGuangjie Song #define MCUSYS_PAR_WRAP_MCU_BKR_LDCM1_REG0_ON		0x8A080002
120*e578702fSGuangjie Song #define MCUSYS_PAR_WRAP_MCU_BKR_LDCM1_REG0_OFF		0x8A080000
121*e578702fSGuangjie Song #define MCUSYS_PAR_WRAP_MCU_CBIP_DCM_REG0_MASK		0x1
122*e578702fSGuangjie Song #define MCUSYS_PAR_WRAP_MCU_CBIP_DCM_REG1_MASK		0x3
123*e578702fSGuangjie Song #define MCUSYS_PAR_WRAP_MCU_CBIP_DCM_REG2_MASK		0x1
124*e578702fSGuangjie Song #define MCUSYS_PAR_WRAP_MCU_CBIP_DCM_REG3_MASK		0x1
125*e578702fSGuangjie Song #define MCUSYS_PAR_WRAP_MCU_CBIP_DCM_REG4_MASK		0x1
126*e578702fSGuangjie Song #define MCUSYS_PAR_WRAP_MCU_CBIP_DCM_REG5_MASK		0x7
127*e578702fSGuangjie Song #define MCUSYS_PAR_WRAP_MCU_CBIP_DCM_REG6_MASK		0x1
128*e578702fSGuangjie Song #define MCUSYS_PAR_WRAP_MCU_CBIP_DCM_REG7_MASK		0x1
129*e578702fSGuangjie Song #define MCUSYS_PAR_WRAP_MCU_CBIP_DCM_REG0_ON		0
130*e578702fSGuangjie Song #define MCUSYS_PAR_WRAP_MCU_CBIP_DCM_REG1_ON		0
131*e578702fSGuangjie Song #define MCUSYS_PAR_WRAP_MCU_CBIP_DCM_REG2_ON		0
132*e578702fSGuangjie Song #define MCUSYS_PAR_WRAP_MCU_CBIP_DCM_REG3_ON		0
133*e578702fSGuangjie Song #define MCUSYS_PAR_WRAP_MCU_CBIP_DCM_REG4_ON		0
134*e578702fSGuangjie Song #define MCUSYS_PAR_WRAP_MCU_CBIP_DCM_REG5_ON		0x7
135*e578702fSGuangjie Song #define MCUSYS_PAR_WRAP_MCU_CBIP_DCM_REG6_ON		0
136*e578702fSGuangjie Song #define MCUSYS_PAR_WRAP_MCU_CBIP_DCM_REG7_ON		0
137*e578702fSGuangjie Song #define MCUSYS_PAR_WRAP_MCU_CBIP_DCM_REG0_OFF		0x1
138*e578702fSGuangjie Song #define MCUSYS_PAR_WRAP_MCU_CBIP_DCM_REG1_OFF		0x3
139*e578702fSGuangjie Song #define MCUSYS_PAR_WRAP_MCU_CBIP_DCM_REG2_OFF		0x1
140*e578702fSGuangjie Song #define MCUSYS_PAR_WRAP_MCU_CBIP_DCM_REG3_OFF		0x1
141*e578702fSGuangjie Song #define MCUSYS_PAR_WRAP_MCU_CBIP_DCM_REG4_OFF		0x1
142*e578702fSGuangjie Song #define MCUSYS_PAR_WRAP_MCU_CBIP_DCM_REG5_OFF		0
143*e578702fSGuangjie Song #define MCUSYS_PAR_WRAP_MCU_CBIP_DCM_REG6_OFF		0x1
144*e578702fSGuangjie Song #define MCUSYS_PAR_WRAP_MCU_CBIP_DCM_REG7_OFF		0x1
145*e578702fSGuangjie Song #define MCUSYS_PAR_WRAP_MCU_MISC_DCM_REG0_MASK		0x1
146*e578702fSGuangjie Song #define MCUSYS_PAR_WRAP_MCU_MISC_DCM_REG0_ON		0x1
147*e578702fSGuangjie Song #define MCUSYS_PAR_WRAP_MCU_MISC_DCM_REG0_OFF		0
148*e578702fSGuangjie Song #define MCUSYS_PAR_WRAP_MCU_DSU_ACP_DCM_REG0_MASK	0x1
149*e578702fSGuangjie Song #define MCUSYS_PAR_WRAP_MCU_DSU_ACP_DCM_REG0_ON		0x1
150*e578702fSGuangjie Song #define MCUSYS_PAR_WRAP_MCU_DSU_ACP_DCM_REG0_OFF	0
151*e578702fSGuangjie Song #define MCUSYS_PAR_WRAP_MCU_CHI_MON_DCM_REG0_MASK	0x1E
152*e578702fSGuangjie Song #define MCUSYS_PAR_WRAP_MCU_CHI_MON_DCM_REG0_ON		0
153*e578702fSGuangjie Song #define MCUSYS_PAR_WRAP_MCU_CHI_MON_DCM_REG0_OFF	0x1E
154*e578702fSGuangjie Song #define MCUSYS_PAR_WRAP_MCU_GIC_SPI_DCM_REG0_MASK	0x1
155*e578702fSGuangjie Song #define MCUSYS_PAR_WRAP_MCU_GIC_SPI_DCM_REG0_ON		0x1
156*e578702fSGuangjie Song #define MCUSYS_PAR_WRAP_MCU_GIC_SPI_DCM_REG0_OFF	0
157*e578702fSGuangjie Song #define MCUSYS_PAR_WRAP_MCU_EBG_DCM_REG0_MASK		BIT(2)
158*e578702fSGuangjie Song #define MCUSYS_PAR_WRAP_MCU_EBG_DCM_REG0_ON		0
159*e578702fSGuangjie Song #define MCUSYS_PAR_WRAP_MCU_EBG_DCM_REG0_OFF		BIT(2)
160*e578702fSGuangjie Song #define APINFRA_IO_CTRL_AO_INFRA_BUS_DCM_REG0_MASK	0x14
161*e578702fSGuangjie Song #define APINFRA_IO_CTRL_AO_INFRA_BUS_DCM_REG0_ON	0x14
162*e578702fSGuangjie Song #define APINFRA_IO_CTRL_AO_INFRA_BUS_DCM_REG0_OFF	0
163*e578702fSGuangjie Song #define APINFRA_IO_NOC_AO_INFRA_BUS_DCM_REG0_MASK	BIT(4)
164*e578702fSGuangjie Song #define APINFRA_IO_NOC_AO_INFRA_BUS_DCM_REG0_ON		BIT(4)
165*e578702fSGuangjie Song #define APINFRA_IO_NOC_AO_INFRA_BUS_DCM_REG0_OFF	0
166*e578702fSGuangjie Song #define APINFRA_MEM_INTF_NOC_AO_INFRA_BUS_DCM_REG0_MASK	BIT(4)
167*e578702fSGuangjie Song #define APINFRA_MEM_INTF_NOC_AO_INFRA_BUS_DCM_REG0_ON	BIT(4)
168*e578702fSGuangjie Song #define APINFRA_MEM_INTF_NOC_AO_INFRA_BUS_DCM_REG0_OFF	0
169*e578702fSGuangjie Song #define APINFRA_MEM_CTRL_AO_INFRA_BUS_DCM_REG0_MASK	0x1C
170*e578702fSGuangjie Song #define APINFRA_MEM_CTRL_AO_INFRA_BUS_DCM_REG1_MASK	0x90
171*e578702fSGuangjie Song #define APINFRA_MEM_CTRL_AO_INFRA_BUS_DCM_REG2_MASK	BIT(21)
172*e578702fSGuangjie Song #define APINFRA_MEM_CTRL_AO_INFRA_BUS_DCM_REG3_MASK	BIT(22)
173*e578702fSGuangjie Song #define APINFRA_MEM_CTRL_AO_INFRA_BUS_DCM_REG4_MASK	BIT(20)
174*e578702fSGuangjie Song #define APINFRA_MEM_CTRL_AO_INFRA_BUS_DCM_REG5_MASK	BIT(24)
175*e578702fSGuangjie Song #define APINFRA_MEM_CTRL_AO_INFRA_BUS_DCM_REG6_MASK	BIT(23)
176*e578702fSGuangjie Song #define APINFRA_MEM_CTRL_AO_INFRA_BUS_DCM_REG0_ON	0x1C
177*e578702fSGuangjie Song #define APINFRA_MEM_CTRL_AO_INFRA_BUS_DCM_REG1_ON	0x90
178*e578702fSGuangjie Song #define APINFRA_MEM_CTRL_AO_INFRA_BUS_DCM_REG2_ON	BIT(21)
179*e578702fSGuangjie Song #define APINFRA_MEM_CTRL_AO_INFRA_BUS_DCM_REG3_ON	BIT(22)
180*e578702fSGuangjie Song #define APINFRA_MEM_CTRL_AO_INFRA_BUS_DCM_REG4_ON	BIT(20)
181*e578702fSGuangjie Song #define APINFRA_MEM_CTRL_AO_INFRA_BUS_DCM_REG5_ON	BIT(24)
182*e578702fSGuangjie Song #define APINFRA_MEM_CTRL_AO_INFRA_BUS_DCM_REG6_ON	BIT(23)
183*e578702fSGuangjie Song #define APINFRA_MEM_CTRL_AO_INFRA_BUS_DCM_REG0_OFF	0
184*e578702fSGuangjie Song #define APINFRA_MEM_CTRL_AO_INFRA_BUS_DCM_REG1_OFF	0
185*e578702fSGuangjie Song #define APINFRA_MEM_CTRL_AO_INFRA_BUS_DCM_REG2_OFF	0
186*e578702fSGuangjie Song #define APINFRA_MEM_CTRL_AO_INFRA_BUS_DCM_REG3_OFF	0
187*e578702fSGuangjie Song #define APINFRA_MEM_CTRL_AO_INFRA_BUS_DCM_REG4_OFF	0
188*e578702fSGuangjie Song #define APINFRA_MEM_CTRL_AO_INFRA_BUS_DCM_REG5_OFF	0
189*e578702fSGuangjie Song #define APINFRA_MEM_CTRL_AO_INFRA_BUS_DCM_REG6_OFF	0
190*e578702fSGuangjie Song #define PERI_AO_BCRM_PERI_BUS_DCM_REG0_MASK		0x14920
191*e578702fSGuangjie Song #define PERI_AO_BCRM_PERI_BUS_DCM_REG1_MASK		BIT(13)
192*e578702fSGuangjie Song #define PERI_AO_BCRM_PERI_BUS_DCM_REG2_MASK		BIT(13)
193*e578702fSGuangjie Song #define PERI_AO_BCRM_PERI_BUS_DCM_REG3_MASK		BIT(13)
194*e578702fSGuangjie Song #define PERI_AO_BCRM_PERI_BUS_DCM_REG0_ON		0x14920
195*e578702fSGuangjie Song #define PERI_AO_BCRM_PERI_BUS_DCM_REG1_ON		BIT(13)
196*e578702fSGuangjie Song #define PERI_AO_BCRM_PERI_BUS_DCM_REG2_ON		BIT(13)
197*e578702fSGuangjie Song #define PERI_AO_BCRM_PERI_BUS_DCM_REG3_ON		BIT(13)
198*e578702fSGuangjie Song #define PERI_AO_BCRM_PERI_BUS_DCM_REG0_OFF		0
199*e578702fSGuangjie Song #define PERI_AO_BCRM_PERI_BUS_DCM_REG1_OFF		0
200*e578702fSGuangjie Song #define PERI_AO_BCRM_PERI_BUS_DCM_REG2_OFF		0
201*e578702fSGuangjie Song #define PERI_AO_BCRM_PERI_BUS_DCM_REG3_OFF		0
202*e578702fSGuangjie Song #define VLP_AO_BCRM_VLP_BUS_DCM_REG0_MASK		0x7C026
203*e578702fSGuangjie Song #define VLP_AO_BCRM_VLP_BUS_DCM_REG0_ON			0x26
204*e578702fSGuangjie Song #define VLP_AO_BCRM_VLP_BUS_DCM_REG0_OFF		0x6
205*e578702fSGuangjie Song #define MCUSYS_PAR_WRAP_MCU_BKR_LDCM2_REG0_MASK		(0xFFFF0003)
206*e578702fSGuangjie Song #define MCUSYS_PAR_WRAP_MCU_BKR_LDCM2_REG0_ON		(0x8A080003)
207*e578702fSGuangjie Song #define MCUSYS_PAR_WRAP_MCU_BKR_LDCM2_REG0_OFF		(0xA0880000)
208*e578702fSGuangjie Song 
209*e578702fSGuangjie Song void dcm_mcusys_par_wrap_mcu_l3c_dcm(bool on);
210*e578702fSGuangjie Song bool dcm_mcusys_par_wrap_mcu_l3c_dcm_is_on(void);
211*e578702fSGuangjie Song void dcm_mcusys_par_wrap_mcu_acp_dcm(bool on);
212*e578702fSGuangjie Song bool dcm_mcusys_par_wrap_mcu_acp_dcm_is_on(void);
213*e578702fSGuangjie Song void dcm_mcusys_par_wrap_mcu_adb_dcm(bool on);
214*e578702fSGuangjie Song bool dcm_mcusys_par_wrap_mcu_adb_dcm_is_on(void);
215*e578702fSGuangjie Song void dcm_mcusys_par_wrap_mcu_stalldcm(bool on);
216*e578702fSGuangjie Song bool dcm_mcusys_par_wrap_mcu_stalldcm_is_on(void);
217*e578702fSGuangjie Song void dcm_mcusys_par_wrap_mcu_apb_dcm(bool on);
218*e578702fSGuangjie Song bool dcm_mcusys_par_wrap_mcu_apb_dcm_is_on(void);
219*e578702fSGuangjie Song void dcm_mcusys_par_wrap_mcu_io_dcm(bool on);
220*e578702fSGuangjie Song bool dcm_mcusys_par_wrap_mcu_io_dcm_is_on(void);
221*e578702fSGuangjie Song void dcm_mcusys_par_wrap_mcu_bus_qdcm(bool on);
222*e578702fSGuangjie Song bool dcm_mcusys_par_wrap_mcu_bus_qdcm_is_on(void);
223*e578702fSGuangjie Song void dcm_mcusys_par_wrap_mcu_core_qdcm(bool on);
224*e578702fSGuangjie Song bool dcm_mcusys_par_wrap_mcu_core_qdcm_is_on(void);
225*e578702fSGuangjie Song void dcm_mcusys_par_wrap_mcu_bkr_ldcm1(bool on);
226*e578702fSGuangjie Song bool dcm_mcusys_par_wrap_mcu_bkr_ldcm1_is_on(void);
227*e578702fSGuangjie Song void dcm_mcusys_par_wrap_mcu_bkr_ldcm2(bool on);
228*e578702fSGuangjie Song bool dcm_mcusys_par_wrap_mcu_bkr_ldcm2_is_on(void);
229*e578702fSGuangjie Song void dcm_mcusys_par_wrap_mcu_cbip_dcm(bool on);
230*e578702fSGuangjie Song bool dcm_mcusys_par_wrap_mcu_cbip_dcm_is_on(void);
231*e578702fSGuangjie Song void dcm_mcusys_par_wrap_mcu_misc_dcm(bool on);
232*e578702fSGuangjie Song bool dcm_mcusys_par_wrap_mcu_misc_dcm_is_on(void);
233*e578702fSGuangjie Song void dcm_mcusys_par_wrap_mcu_dsu_acp_dcm(bool on);
234*e578702fSGuangjie Song bool dcm_mcusys_par_wrap_mcu_dsu_acp_dcm_is_on(void);
235*e578702fSGuangjie Song void dcm_mcusys_par_wrap_mcu_chi_mon_dcm(bool on);
236*e578702fSGuangjie Song bool dcm_mcusys_par_wrap_mcu_chi_mon_dcm_is_on(void);
237*e578702fSGuangjie Song void dcm_mcusys_par_wrap_mcu_gic_spi_dcm(bool on);
238*e578702fSGuangjie Song bool dcm_mcusys_par_wrap_mcu_gic_spi_dcm_is_on(void);
239*e578702fSGuangjie Song void dcm_mcusys_par_wrap_mcu_ebg_dcm(bool on);
240*e578702fSGuangjie Song bool dcm_mcusys_par_wrap_mcu_ebg_dcm_is_on(void);
241*e578702fSGuangjie Song void dcm_bcrm_apinfra_io_ctrl_ao_infra_bus_dcm(bool on);
242*e578702fSGuangjie Song bool dcm_bcrm_apinfra_io_ctrl_ao_infra_bus_dcm_is_on(void);
243*e578702fSGuangjie Song void dcm_bcrm_apinfra_io_noc_ao_infra_bus_dcm(bool on);
244*e578702fSGuangjie Song bool dcm_bcrm_apinfra_io_noc_ao_infra_bus_dcm_is_on(void);
245*e578702fSGuangjie Song void dcm_bcrm_apinfra_mem_intf_noc_ao_infra_bus_dcm(bool on);
246*e578702fSGuangjie Song bool dcm_bcrm_apinfra_mem_intf_noc_ao_infra_bus_dcm_is_on(void);
247*e578702fSGuangjie Song void dcm_bcrm_apinfra_mem_ctrl_ao_infra_bus_dcm(bool on);
248*e578702fSGuangjie Song bool dcm_bcrm_apinfra_mem_ctrl_ao_infra_bus_dcm_is_on(void);
249*e578702fSGuangjie Song void dcm_peri_ao_bcrm_peri_bus1_dcm(bool on);
250*e578702fSGuangjie Song bool dcm_peri_ao_bcrm_peri_bus1_dcm_is_on(void);
251*e578702fSGuangjie Song void dcm_peri_ao_bcrm_peri_bus2_dcm(bool on);
252*e578702fSGuangjie Song bool dcm_peri_ao_bcrm_peri_bus2_dcm_is_on(void);
253*e578702fSGuangjie Song void dcm_vlp_ao_bcrm_vlp_bus_dcm(bool on);
254*e578702fSGuangjie Song bool dcm_vlp_ao_bcrm_vlp_bus_dcm_is_on(void);
255*e578702fSGuangjie Song 
256*e578702fSGuangjie Song #endif /* DCM_MTK_DCM_UTILS_H_ */
257