xref: /rk3399_ARM-atf/plat/mediatek/mt8186/drivers/dcm/mtk_dcm_utils.c (revision ed780b0b40d5fe0dffffd277de835425f3064f78)
1*95ea87ffSEdward-JW Yang /*
2*95ea87ffSEdward-JW Yang  * Copyright (c) 2021, MediaTek Inc. All rights reserved.
3*95ea87ffSEdward-JW Yang  *
4*95ea87ffSEdward-JW Yang  * SPDX-License-Identifier: BSD-3-Clause
5*95ea87ffSEdward-JW Yang  */
6*95ea87ffSEdward-JW Yang 
7*95ea87ffSEdward-JW Yang #include <lib/mmio.h>
8*95ea87ffSEdward-JW Yang #include <lib/utils_def.h>
9*95ea87ffSEdward-JW Yang #include <mtk_dcm_utils.h>
10*95ea87ffSEdward-JW Yang 
11*95ea87ffSEdward-JW Yang #define MP_CPUSYS_TOP_ADB_DCM_REG0_MASK (BIT(16) |	\
12*95ea87ffSEdward-JW Yang 					 BIT(17) |	\
13*95ea87ffSEdward-JW Yang 					 BIT(18) |	\
14*95ea87ffSEdward-JW Yang 					 BIT(21))
15*95ea87ffSEdward-JW Yang #define MP_CPUSYS_TOP_ADB_DCM_REG1_MASK (BIT(16) |	\
16*95ea87ffSEdward-JW Yang 					 BIT(17) |	\
17*95ea87ffSEdward-JW Yang 					 BIT(18))
18*95ea87ffSEdward-JW Yang #define MP_CPUSYS_TOP_ADB_DCM_REG0_ON (BIT(16) |	\
19*95ea87ffSEdward-JW Yang 				       BIT(17) |	\
20*95ea87ffSEdward-JW Yang 				       BIT(18) |	\
21*95ea87ffSEdward-JW Yang 				       BIT(21))
22*95ea87ffSEdward-JW Yang #define MP_CPUSYS_TOP_ADB_DCM_REG1_ON (BIT(16) |	\
23*95ea87ffSEdward-JW Yang 				       BIT(17) |	\
24*95ea87ffSEdward-JW Yang 				       BIT(18))
25*95ea87ffSEdward-JW Yang #define MP_CPUSYS_TOP_ADB_DCM_REG0_OFF ((0x0 << 16) |	\
26*95ea87ffSEdward-JW Yang 					(0x0 << 17) |	\
27*95ea87ffSEdward-JW Yang 					(0x0 << 18) |	\
28*95ea87ffSEdward-JW Yang 					(0x0 << 21))
29*95ea87ffSEdward-JW Yang #define MP_CPUSYS_TOP_ADB_DCM_REG1_OFF ((0x0 << 16) |	\
30*95ea87ffSEdward-JW Yang 					(0x0 << 17) |	\
31*95ea87ffSEdward-JW Yang 					(0x0 << 18))
32*95ea87ffSEdward-JW Yang 
dcm_mp_cpusys_top_adb_dcm_is_on(void)33*95ea87ffSEdward-JW Yang bool dcm_mp_cpusys_top_adb_dcm_is_on(void)
34*95ea87ffSEdward-JW Yang {
35*95ea87ffSEdward-JW Yang 	bool ret = true;
36*95ea87ffSEdward-JW Yang 
37*95ea87ffSEdward-JW Yang 	ret &= ((mmio_read_32(MP_CPUSYS_TOP_MP_ADB_DCM_CFG4) &
38*95ea87ffSEdward-JW Yang 		MP_CPUSYS_TOP_ADB_DCM_REG0_MASK) ==
39*95ea87ffSEdward-JW Yang 		(unsigned int) MP_CPUSYS_TOP_ADB_DCM_REG0_ON);
40*95ea87ffSEdward-JW Yang 	ret &= ((mmio_read_32(MP_CPUSYS_TOP_MCUSYS_DCM_CFG0) &
41*95ea87ffSEdward-JW Yang 		MP_CPUSYS_TOP_ADB_DCM_REG1_MASK) ==
42*95ea87ffSEdward-JW Yang 		(unsigned int) MP_CPUSYS_TOP_ADB_DCM_REG1_ON);
43*95ea87ffSEdward-JW Yang 
44*95ea87ffSEdward-JW Yang 	return ret;
45*95ea87ffSEdward-JW Yang }
46*95ea87ffSEdward-JW Yang 
dcm_mp_cpusys_top_adb_dcm(bool on)47*95ea87ffSEdward-JW Yang void dcm_mp_cpusys_top_adb_dcm(bool on)
48*95ea87ffSEdward-JW Yang {
49*95ea87ffSEdward-JW Yang 	if (on) {
50*95ea87ffSEdward-JW Yang 		/* TINFO = "Turn ON DCM 'mp_cpusys_top_adb_dcm'" */
51*95ea87ffSEdward-JW Yang 		mmio_clrsetbits_32(MP_CPUSYS_TOP_MP_ADB_DCM_CFG4,
52*95ea87ffSEdward-JW Yang 			MP_CPUSYS_TOP_ADB_DCM_REG0_MASK,
53*95ea87ffSEdward-JW Yang 			MP_CPUSYS_TOP_ADB_DCM_REG0_ON);
54*95ea87ffSEdward-JW Yang 		mmio_clrsetbits_32(MP_CPUSYS_TOP_MCUSYS_DCM_CFG0,
55*95ea87ffSEdward-JW Yang 			MP_CPUSYS_TOP_ADB_DCM_REG1_MASK,
56*95ea87ffSEdward-JW Yang 			MP_CPUSYS_TOP_ADB_DCM_REG1_ON);
57*95ea87ffSEdward-JW Yang 	} else {
58*95ea87ffSEdward-JW Yang 		/* TINFO = "Turn OFF DCM 'mp_cpusys_top_adb_dcm'" */
59*95ea87ffSEdward-JW Yang 		mmio_clrsetbits_32(MP_CPUSYS_TOP_MP_ADB_DCM_CFG4,
60*95ea87ffSEdward-JW Yang 			MP_CPUSYS_TOP_ADB_DCM_REG0_MASK,
61*95ea87ffSEdward-JW Yang 			MP_CPUSYS_TOP_ADB_DCM_REG0_OFF);
62*95ea87ffSEdward-JW Yang 		mmio_clrsetbits_32(MP_CPUSYS_TOP_MCUSYS_DCM_CFG0,
63*95ea87ffSEdward-JW Yang 			MP_CPUSYS_TOP_ADB_DCM_REG1_MASK,
64*95ea87ffSEdward-JW Yang 			MP_CPUSYS_TOP_ADB_DCM_REG1_OFF);
65*95ea87ffSEdward-JW Yang 	}
66*95ea87ffSEdward-JW Yang }
67*95ea87ffSEdward-JW Yang 
68*95ea87ffSEdward-JW Yang #define MP_CPUSYS_TOP_APB_DCM_REG0_MASK (BIT(5))
69*95ea87ffSEdward-JW Yang #define MP_CPUSYS_TOP_APB_DCM_REG1_MASK (BIT(8))
70*95ea87ffSEdward-JW Yang #define MP_CPUSYS_TOP_APB_DCM_REG2_MASK (BIT(16))
71*95ea87ffSEdward-JW Yang #define MP_CPUSYS_TOP_APB_DCM_REG0_ON (BIT(5))
72*95ea87ffSEdward-JW Yang #define MP_CPUSYS_TOP_APB_DCM_REG1_ON (BIT(8))
73*95ea87ffSEdward-JW Yang #define MP_CPUSYS_TOP_APB_DCM_REG2_ON (BIT(16))
74*95ea87ffSEdward-JW Yang #define MP_CPUSYS_TOP_APB_DCM_REG0_OFF ((0x0 << 5))
75*95ea87ffSEdward-JW Yang #define MP_CPUSYS_TOP_APB_DCM_REG1_OFF ((0x0 << 8))
76*95ea87ffSEdward-JW Yang #define MP_CPUSYS_TOP_APB_DCM_REG2_OFF ((0x0 << 16))
77*95ea87ffSEdward-JW Yang 
dcm_mp_cpusys_top_apb_dcm_is_on(void)78*95ea87ffSEdward-JW Yang bool dcm_mp_cpusys_top_apb_dcm_is_on(void)
79*95ea87ffSEdward-JW Yang {
80*95ea87ffSEdward-JW Yang 	bool ret = true;
81*95ea87ffSEdward-JW Yang 
82*95ea87ffSEdward-JW Yang 	ret &= ((mmio_read_32(MP_CPUSYS_TOP_MP_MISC_DCM_CFG0) &
83*95ea87ffSEdward-JW Yang 		MP_CPUSYS_TOP_APB_DCM_REG0_MASK) ==
84*95ea87ffSEdward-JW Yang 		(unsigned int) MP_CPUSYS_TOP_APB_DCM_REG0_ON);
85*95ea87ffSEdward-JW Yang 	ret &= ((mmio_read_32(MP_CPUSYS_TOP_MCUSYS_DCM_CFG0) &
86*95ea87ffSEdward-JW Yang 		MP_CPUSYS_TOP_APB_DCM_REG1_MASK) ==
87*95ea87ffSEdward-JW Yang 		(unsigned int) MP_CPUSYS_TOP_APB_DCM_REG1_ON);
88*95ea87ffSEdward-JW Yang 	ret &= ((mmio_read_32(MP_CPUSYS_TOP_MP0_DCM_CFG0) &
89*95ea87ffSEdward-JW Yang 		MP_CPUSYS_TOP_APB_DCM_REG2_MASK) ==
90*95ea87ffSEdward-JW Yang 		(unsigned int) MP_CPUSYS_TOP_APB_DCM_REG2_ON);
91*95ea87ffSEdward-JW Yang 
92*95ea87ffSEdward-JW Yang 	return ret;
93*95ea87ffSEdward-JW Yang }
94*95ea87ffSEdward-JW Yang 
dcm_mp_cpusys_top_apb_dcm(bool on)95*95ea87ffSEdward-JW Yang void dcm_mp_cpusys_top_apb_dcm(bool on)
96*95ea87ffSEdward-JW Yang {
97*95ea87ffSEdward-JW Yang 	if (on) {
98*95ea87ffSEdward-JW Yang 		/* TINFO = "Turn ON DCM 'mp_cpusys_top_apb_dcm'" */
99*95ea87ffSEdward-JW Yang 		mmio_clrsetbits_32(MP_CPUSYS_TOP_MP_MISC_DCM_CFG0,
100*95ea87ffSEdward-JW Yang 			MP_CPUSYS_TOP_APB_DCM_REG0_MASK,
101*95ea87ffSEdward-JW Yang 			MP_CPUSYS_TOP_APB_DCM_REG0_ON);
102*95ea87ffSEdward-JW Yang 		mmio_clrsetbits_32(MP_CPUSYS_TOP_MCUSYS_DCM_CFG0,
103*95ea87ffSEdward-JW Yang 			MP_CPUSYS_TOP_APB_DCM_REG1_MASK,
104*95ea87ffSEdward-JW Yang 			MP_CPUSYS_TOP_APB_DCM_REG1_ON);
105*95ea87ffSEdward-JW Yang 		mmio_clrsetbits_32(MP_CPUSYS_TOP_MP0_DCM_CFG0,
106*95ea87ffSEdward-JW Yang 			MP_CPUSYS_TOP_APB_DCM_REG2_MASK,
107*95ea87ffSEdward-JW Yang 			MP_CPUSYS_TOP_APB_DCM_REG2_ON);
108*95ea87ffSEdward-JW Yang 	} else {
109*95ea87ffSEdward-JW Yang 		/* TINFO = "Turn OFF DCM 'mp_cpusys_top_apb_dcm'" */
110*95ea87ffSEdward-JW Yang 		mmio_clrsetbits_32(MP_CPUSYS_TOP_MP_MISC_DCM_CFG0,
111*95ea87ffSEdward-JW Yang 			MP_CPUSYS_TOP_APB_DCM_REG0_MASK,
112*95ea87ffSEdward-JW Yang 			MP_CPUSYS_TOP_APB_DCM_REG0_OFF);
113*95ea87ffSEdward-JW Yang 		mmio_clrsetbits_32(MP_CPUSYS_TOP_MCUSYS_DCM_CFG0,
114*95ea87ffSEdward-JW Yang 			MP_CPUSYS_TOP_APB_DCM_REG1_MASK,
115*95ea87ffSEdward-JW Yang 			MP_CPUSYS_TOP_APB_DCM_REG1_OFF);
116*95ea87ffSEdward-JW Yang 		mmio_clrsetbits_32(MP_CPUSYS_TOP_MP0_DCM_CFG0,
117*95ea87ffSEdward-JW Yang 			MP_CPUSYS_TOP_APB_DCM_REG2_MASK,
118*95ea87ffSEdward-JW Yang 			MP_CPUSYS_TOP_APB_DCM_REG2_OFF);
119*95ea87ffSEdward-JW Yang 	}
120*95ea87ffSEdward-JW Yang }
121*95ea87ffSEdward-JW Yang 
122*95ea87ffSEdward-JW Yang #define MP_CPUSYS_TOP_BUS_PLL_DIV_DCM_REG0_MASK (BIT(11) |	\
123*95ea87ffSEdward-JW Yang 						 BIT(24) |	\
124*95ea87ffSEdward-JW Yang 						 BIT(25))
125*95ea87ffSEdward-JW Yang #define MP_CPUSYS_TOP_BUS_PLL_DIV_DCM_REG0_ON (BIT(11) |	\
126*95ea87ffSEdward-JW Yang 					       BIT(24) |	\
127*95ea87ffSEdward-JW Yang 					       BIT(25))
128*95ea87ffSEdward-JW Yang #define MP_CPUSYS_TOP_BUS_PLL_DIV_DCM_REG0_OFF ((0x0 << 11) |	\
129*95ea87ffSEdward-JW Yang 						(0x0 << 24) |	\
130*95ea87ffSEdward-JW Yang 						(0x0 << 25))
131*95ea87ffSEdward-JW Yang 
dcm_mp_cpusys_top_bus_pll_div_dcm_is_on(void)132*95ea87ffSEdward-JW Yang bool dcm_mp_cpusys_top_bus_pll_div_dcm_is_on(void)
133*95ea87ffSEdward-JW Yang {
134*95ea87ffSEdward-JW Yang 	bool ret = true;
135*95ea87ffSEdward-JW Yang 
136*95ea87ffSEdward-JW Yang 	ret &= ((mmio_read_32(MP_CPUSYS_TOP_BUS_PLLDIV_CFG) &
137*95ea87ffSEdward-JW Yang 		MP_CPUSYS_TOP_BUS_PLL_DIV_DCM_REG0_MASK) ==
138*95ea87ffSEdward-JW Yang 		(unsigned int) MP_CPUSYS_TOP_BUS_PLL_DIV_DCM_REG0_ON);
139*95ea87ffSEdward-JW Yang 
140*95ea87ffSEdward-JW Yang 	return ret;
141*95ea87ffSEdward-JW Yang }
142*95ea87ffSEdward-JW Yang 
dcm_mp_cpusys_top_bus_pll_div_dcm(bool on)143*95ea87ffSEdward-JW Yang void dcm_mp_cpusys_top_bus_pll_div_dcm(bool on)
144*95ea87ffSEdward-JW Yang {
145*95ea87ffSEdward-JW Yang 	if (on) {
146*95ea87ffSEdward-JW Yang 		/* TINFO = "Turn ON DCM 'mp_cpusys_top_bus_pll_div_dcm'" */
147*95ea87ffSEdward-JW Yang 		mmio_clrsetbits_32(MP_CPUSYS_TOP_BUS_PLLDIV_CFG,
148*95ea87ffSEdward-JW Yang 			MP_CPUSYS_TOP_BUS_PLL_DIV_DCM_REG0_MASK,
149*95ea87ffSEdward-JW Yang 			MP_CPUSYS_TOP_BUS_PLL_DIV_DCM_REG0_ON);
150*95ea87ffSEdward-JW Yang 	} else {
151*95ea87ffSEdward-JW Yang 		/* TINFO = "Turn OFF DCM 'mp_cpusys_top_bus_pll_div_dcm'" */
152*95ea87ffSEdward-JW Yang 		mmio_clrsetbits_32(MP_CPUSYS_TOP_BUS_PLLDIV_CFG,
153*95ea87ffSEdward-JW Yang 			MP_CPUSYS_TOP_BUS_PLL_DIV_DCM_REG0_MASK,
154*95ea87ffSEdward-JW Yang 			MP_CPUSYS_TOP_BUS_PLL_DIV_DCM_REG0_OFF);
155*95ea87ffSEdward-JW Yang 	}
156*95ea87ffSEdward-JW Yang }
157*95ea87ffSEdward-JW Yang 
158*95ea87ffSEdward-JW Yang #define MP_CPUSYS_TOP_CORE_STALL_DCM_REG0_MASK (BIT(0))
159*95ea87ffSEdward-JW Yang #define MP_CPUSYS_TOP_CORE_STALL_DCM_REG0_ON (BIT(0))
160*95ea87ffSEdward-JW Yang #define MP_CPUSYS_TOP_CORE_STALL_DCM_REG0_OFF ((0x0 << 0))
161*95ea87ffSEdward-JW Yang 
dcm_mp_cpusys_top_core_stall_dcm_is_on(void)162*95ea87ffSEdward-JW Yang bool dcm_mp_cpusys_top_core_stall_dcm_is_on(void)
163*95ea87ffSEdward-JW Yang {
164*95ea87ffSEdward-JW Yang 	bool ret = true;
165*95ea87ffSEdward-JW Yang 
166*95ea87ffSEdward-JW Yang 	ret &= ((mmio_read_32(MP_CPUSYS_TOP_MP0_DCM_CFG7) &
167*95ea87ffSEdward-JW Yang 		MP_CPUSYS_TOP_CORE_STALL_DCM_REG0_MASK) ==
168*95ea87ffSEdward-JW Yang 		(unsigned int) MP_CPUSYS_TOP_CORE_STALL_DCM_REG0_ON);
169*95ea87ffSEdward-JW Yang 
170*95ea87ffSEdward-JW Yang 	return ret;
171*95ea87ffSEdward-JW Yang }
172*95ea87ffSEdward-JW Yang 
dcm_mp_cpusys_top_core_stall_dcm(bool on)173*95ea87ffSEdward-JW Yang void dcm_mp_cpusys_top_core_stall_dcm(bool on)
174*95ea87ffSEdward-JW Yang {
175*95ea87ffSEdward-JW Yang 	if (on) {
176*95ea87ffSEdward-JW Yang 		/* TINFO = "Turn ON DCM 'mp_cpusys_top_core_stall_dcm'" */
177*95ea87ffSEdward-JW Yang 		mmio_clrsetbits_32(MP_CPUSYS_TOP_MP0_DCM_CFG7,
178*95ea87ffSEdward-JW Yang 			MP_CPUSYS_TOP_CORE_STALL_DCM_REG0_MASK,
179*95ea87ffSEdward-JW Yang 			MP_CPUSYS_TOP_CORE_STALL_DCM_REG0_ON);
180*95ea87ffSEdward-JW Yang 	} else {
181*95ea87ffSEdward-JW Yang 		/* TINFO = "Turn OFF DCM 'mp_cpusys_top_core_stall_dcm'" */
182*95ea87ffSEdward-JW Yang 		mmio_clrsetbits_32(MP_CPUSYS_TOP_MP0_DCM_CFG7,
183*95ea87ffSEdward-JW Yang 			MP_CPUSYS_TOP_CORE_STALL_DCM_REG0_MASK,
184*95ea87ffSEdward-JW Yang 			MP_CPUSYS_TOP_CORE_STALL_DCM_REG0_OFF);
185*95ea87ffSEdward-JW Yang 	}
186*95ea87ffSEdward-JW Yang }
187*95ea87ffSEdward-JW Yang 
188*95ea87ffSEdward-JW Yang #define MP_CPUSYS_TOP_CPUBIU_DBG_CG_REG0_MASK (BIT(0))
189*95ea87ffSEdward-JW Yang #define MP_CPUSYS_TOP_CPUBIU_DBG_CG_REG0_ON ((0x0 << 0))
190*95ea87ffSEdward-JW Yang #define MP_CPUSYS_TOP_CPUBIU_DBG_CG_REG0_OFF (BIT(0))
191*95ea87ffSEdward-JW Yang 
dcm_mp_cpusys_top_cpubiu_dbg_cg_is_on(void)192*95ea87ffSEdward-JW Yang bool dcm_mp_cpusys_top_cpubiu_dbg_cg_is_on(void)
193*95ea87ffSEdward-JW Yang {
194*95ea87ffSEdward-JW Yang 	bool ret = true;
195*95ea87ffSEdward-JW Yang 
196*95ea87ffSEdward-JW Yang 	ret &= ((mmio_read_32(MP_CPUSYS_TOP_MCSI_CFG2) &
197*95ea87ffSEdward-JW Yang 		MP_CPUSYS_TOP_CPUBIU_DBG_CG_REG0_MASK) ==
198*95ea87ffSEdward-JW Yang 		(unsigned int) MP_CPUSYS_TOP_CPUBIU_DBG_CG_REG0_ON);
199*95ea87ffSEdward-JW Yang 
200*95ea87ffSEdward-JW Yang 	return ret;
201*95ea87ffSEdward-JW Yang }
202*95ea87ffSEdward-JW Yang 
dcm_mp_cpusys_top_cpubiu_dbg_cg(bool on)203*95ea87ffSEdward-JW Yang void dcm_mp_cpusys_top_cpubiu_dbg_cg(bool on)
204*95ea87ffSEdward-JW Yang {
205*95ea87ffSEdward-JW Yang 	if (on) {
206*95ea87ffSEdward-JW Yang 		/* TINFO = "Turn ON DCM 'mp_cpusys_top_cpubiu_dbg_cg'" */
207*95ea87ffSEdward-JW Yang 		mmio_clrsetbits_32(MP_CPUSYS_TOP_MCSI_CFG2,
208*95ea87ffSEdward-JW Yang 			MP_CPUSYS_TOP_CPUBIU_DBG_CG_REG0_MASK,
209*95ea87ffSEdward-JW Yang 			MP_CPUSYS_TOP_CPUBIU_DBG_CG_REG0_ON);
210*95ea87ffSEdward-JW Yang 	} else {
211*95ea87ffSEdward-JW Yang 		/* TINFO = "Turn OFF DCM 'mp_cpusys_top_cpubiu_dbg_cg'" */
212*95ea87ffSEdward-JW Yang 		mmio_clrsetbits_32(MP_CPUSYS_TOP_MCSI_CFG2,
213*95ea87ffSEdward-JW Yang 			MP_CPUSYS_TOP_CPUBIU_DBG_CG_REG0_MASK,
214*95ea87ffSEdward-JW Yang 			MP_CPUSYS_TOP_CPUBIU_DBG_CG_REG0_OFF);
215*95ea87ffSEdward-JW Yang 	}
216*95ea87ffSEdward-JW Yang }
217*95ea87ffSEdward-JW Yang 
218*95ea87ffSEdward-JW Yang #define MP_CPUSYS_TOP_CPUBIU_DCM_REG0_MASK ((0xffff << 0))
219*95ea87ffSEdward-JW Yang #define MP_CPUSYS_TOP_CPUBIU_DCM_REG0_ON ((0xffff << 0))
220*95ea87ffSEdward-JW Yang #define MP_CPUSYS_TOP_CPUBIU_DCM_REG0_OFF ((0x0 << 0))
221*95ea87ffSEdward-JW Yang 
dcm_mp_cpusys_top_cpubiu_dcm_is_on(void)222*95ea87ffSEdward-JW Yang bool dcm_mp_cpusys_top_cpubiu_dcm_is_on(void)
223*95ea87ffSEdward-JW Yang {
224*95ea87ffSEdward-JW Yang 	bool ret = true;
225*95ea87ffSEdward-JW Yang 
226*95ea87ffSEdward-JW Yang 	ret &= ((mmio_read_32(MP_CPUSYS_TOP_MCSIC_DCM0) &
227*95ea87ffSEdward-JW Yang 		MP_CPUSYS_TOP_CPUBIU_DCM_REG0_MASK) ==
228*95ea87ffSEdward-JW Yang 		(unsigned int) MP_CPUSYS_TOP_CPUBIU_DCM_REG0_ON);
229*95ea87ffSEdward-JW Yang 
230*95ea87ffSEdward-JW Yang 	return ret;
231*95ea87ffSEdward-JW Yang }
232*95ea87ffSEdward-JW Yang 
dcm_mp_cpusys_top_cpubiu_dcm(bool on)233*95ea87ffSEdward-JW Yang void dcm_mp_cpusys_top_cpubiu_dcm(bool on)
234*95ea87ffSEdward-JW Yang {
235*95ea87ffSEdward-JW Yang 	if (on) {
236*95ea87ffSEdward-JW Yang 		/* TINFO = "Turn ON DCM 'mp_cpusys_top_cpubiu_dcm'" */
237*95ea87ffSEdward-JW Yang 		mmio_clrsetbits_32(MP_CPUSYS_TOP_MCSIC_DCM0,
238*95ea87ffSEdward-JW Yang 			MP_CPUSYS_TOP_CPUBIU_DCM_REG0_MASK,
239*95ea87ffSEdward-JW Yang 			MP_CPUSYS_TOP_CPUBIU_DCM_REG0_ON);
240*95ea87ffSEdward-JW Yang 	} else {
241*95ea87ffSEdward-JW Yang 		/* TINFO = "Turn OFF DCM 'mp_cpusys_top_cpubiu_dcm'" */
242*95ea87ffSEdward-JW Yang 		mmio_clrsetbits_32(MP_CPUSYS_TOP_MCSIC_DCM0,
243*95ea87ffSEdward-JW Yang 			MP_CPUSYS_TOP_CPUBIU_DCM_REG0_MASK,
244*95ea87ffSEdward-JW Yang 			MP_CPUSYS_TOP_CPUBIU_DCM_REG0_OFF);
245*95ea87ffSEdward-JW Yang 	}
246*95ea87ffSEdward-JW Yang }
247*95ea87ffSEdward-JW Yang 
248*95ea87ffSEdward-JW Yang #define MP_CPUSYS_TOP_CPU_PLL_DIV_0_DCM_REG0_MASK (BIT(11) |	\
249*95ea87ffSEdward-JW Yang 						   BIT(24) |	\
250*95ea87ffSEdward-JW Yang 						   BIT(25))
251*95ea87ffSEdward-JW Yang #define MP_CPUSYS_TOP_CPU_PLL_DIV_0_DCM_REG0_ON (BIT(11) |	\
252*95ea87ffSEdward-JW Yang 						 BIT(24) |	\
253*95ea87ffSEdward-JW Yang 						 BIT(25))
254*95ea87ffSEdward-JW Yang #define MP_CPUSYS_TOP_CPU_PLL_DIV_0_DCM_REG0_OFF ((0x0 << 11) |	\
255*95ea87ffSEdward-JW Yang 						  (0x0 << 24) |	\
256*95ea87ffSEdward-JW Yang 						  (0x0 << 25))
257*95ea87ffSEdward-JW Yang 
dcm_mp_cpusys_top_cpu_pll_div_0_dcm_is_on(void)258*95ea87ffSEdward-JW Yang bool dcm_mp_cpusys_top_cpu_pll_div_0_dcm_is_on(void)
259*95ea87ffSEdward-JW Yang {
260*95ea87ffSEdward-JW Yang 	bool ret = true;
261*95ea87ffSEdward-JW Yang 
262*95ea87ffSEdward-JW Yang 	ret &= ((mmio_read_32(MP_CPUSYS_TOP_CPU_PLLDIV_CFG0) &
263*95ea87ffSEdward-JW Yang 		MP_CPUSYS_TOP_CPU_PLL_DIV_0_DCM_REG0_MASK) ==
264*95ea87ffSEdward-JW Yang 		(unsigned int) MP_CPUSYS_TOP_CPU_PLL_DIV_0_DCM_REG0_ON);
265*95ea87ffSEdward-JW Yang 
266*95ea87ffSEdward-JW Yang 	return ret;
267*95ea87ffSEdward-JW Yang }
268*95ea87ffSEdward-JW Yang 
dcm_mp_cpusys_top_cpu_pll_div_0_dcm(bool on)269*95ea87ffSEdward-JW Yang void dcm_mp_cpusys_top_cpu_pll_div_0_dcm(bool on)
270*95ea87ffSEdward-JW Yang {
271*95ea87ffSEdward-JW Yang 	if (on) {
272*95ea87ffSEdward-JW Yang 		/* TINFO = "Turn ON DCM 'mp_cpusys_top_cpu_pll_div_0_dcm'" */
273*95ea87ffSEdward-JW Yang 		mmio_clrsetbits_32(MP_CPUSYS_TOP_CPU_PLLDIV_CFG0,
274*95ea87ffSEdward-JW Yang 			MP_CPUSYS_TOP_CPU_PLL_DIV_0_DCM_REG0_MASK,
275*95ea87ffSEdward-JW Yang 			MP_CPUSYS_TOP_CPU_PLL_DIV_0_DCM_REG0_ON);
276*95ea87ffSEdward-JW Yang 	} else {
277*95ea87ffSEdward-JW Yang 		/* TINFO = "Turn OFF DCM 'mp_cpusys_top_cpu_pll_div_0_dcm'" */
278*95ea87ffSEdward-JW Yang 		mmio_clrsetbits_32(MP_CPUSYS_TOP_CPU_PLLDIV_CFG0,
279*95ea87ffSEdward-JW Yang 			MP_CPUSYS_TOP_CPU_PLL_DIV_0_DCM_REG0_MASK,
280*95ea87ffSEdward-JW Yang 			MP_CPUSYS_TOP_CPU_PLL_DIV_0_DCM_REG0_OFF);
281*95ea87ffSEdward-JW Yang 	}
282*95ea87ffSEdward-JW Yang }
283*95ea87ffSEdward-JW Yang 
284*95ea87ffSEdward-JW Yang #define MP_CPUSYS_TOP_CPU_PLL_DIV_1_DCM_REG0_MASK (BIT(11) |	\
285*95ea87ffSEdward-JW Yang 						   BIT(24) |	\
286*95ea87ffSEdward-JW Yang 						   BIT(25))
287*95ea87ffSEdward-JW Yang #define MP_CPUSYS_TOP_CPU_PLL_DIV_1_DCM_REG0_ON (BIT(11) |	\
288*95ea87ffSEdward-JW Yang 						 BIT(24) |	\
289*95ea87ffSEdward-JW Yang 						 BIT(25))
290*95ea87ffSEdward-JW Yang #define MP_CPUSYS_TOP_CPU_PLL_DIV_1_DCM_REG0_OFF ((0x0 << 11) |	\
291*95ea87ffSEdward-JW Yang 						  (0x0 << 24) |	\
292*95ea87ffSEdward-JW Yang 						  (0x0 << 25))
293*95ea87ffSEdward-JW Yang 
dcm_mp_cpusys_top_cpu_pll_div_1_dcm_is_on(void)294*95ea87ffSEdward-JW Yang bool dcm_mp_cpusys_top_cpu_pll_div_1_dcm_is_on(void)
295*95ea87ffSEdward-JW Yang {
296*95ea87ffSEdward-JW Yang 	bool ret = true;
297*95ea87ffSEdward-JW Yang 
298*95ea87ffSEdward-JW Yang 	ret &= ((mmio_read_32(MP_CPUSYS_TOP_CPU_PLLDIV_CFG1) &
299*95ea87ffSEdward-JW Yang 		MP_CPUSYS_TOP_CPU_PLL_DIV_1_DCM_REG0_MASK) ==
300*95ea87ffSEdward-JW Yang 		(unsigned int) MP_CPUSYS_TOP_CPU_PLL_DIV_1_DCM_REG0_ON);
301*95ea87ffSEdward-JW Yang 
302*95ea87ffSEdward-JW Yang 	return ret;
303*95ea87ffSEdward-JW Yang }
304*95ea87ffSEdward-JW Yang 
dcm_mp_cpusys_top_cpu_pll_div_1_dcm(bool on)305*95ea87ffSEdward-JW Yang void dcm_mp_cpusys_top_cpu_pll_div_1_dcm(bool on)
306*95ea87ffSEdward-JW Yang {
307*95ea87ffSEdward-JW Yang 	if (on) {
308*95ea87ffSEdward-JW Yang 		/* TINFO = "Turn ON DCM 'mp_cpusys_top_cpu_pll_div_1_dcm'" */
309*95ea87ffSEdward-JW Yang 		mmio_clrsetbits_32(MP_CPUSYS_TOP_CPU_PLLDIV_CFG1,
310*95ea87ffSEdward-JW Yang 			MP_CPUSYS_TOP_CPU_PLL_DIV_1_DCM_REG0_MASK,
311*95ea87ffSEdward-JW Yang 			MP_CPUSYS_TOP_CPU_PLL_DIV_1_DCM_REG0_ON);
312*95ea87ffSEdward-JW Yang 	} else {
313*95ea87ffSEdward-JW Yang 		/* TINFO = "Turn OFF DCM 'mp_cpusys_top_cpu_pll_div_1_dcm'" */
314*95ea87ffSEdward-JW Yang 		mmio_clrsetbits_32(MP_CPUSYS_TOP_CPU_PLLDIV_CFG1,
315*95ea87ffSEdward-JW Yang 			MP_CPUSYS_TOP_CPU_PLL_DIV_1_DCM_REG0_MASK,
316*95ea87ffSEdward-JW Yang 			MP_CPUSYS_TOP_CPU_PLL_DIV_1_DCM_REG0_OFF);
317*95ea87ffSEdward-JW Yang 	}
318*95ea87ffSEdward-JW Yang }
319*95ea87ffSEdward-JW Yang 
320*95ea87ffSEdward-JW Yang #define MP_CPUSYS_TOP_FCM_STALL_DCM_REG0_MASK (BIT(4))
321*95ea87ffSEdward-JW Yang #define MP_CPUSYS_TOP_FCM_STALL_DCM_REG0_ON (BIT(4))
322*95ea87ffSEdward-JW Yang #define MP_CPUSYS_TOP_FCM_STALL_DCM_REG0_OFF ((0x0 << 4))
323*95ea87ffSEdward-JW Yang 
dcm_mp_cpusys_top_fcm_stall_dcm_is_on(void)324*95ea87ffSEdward-JW Yang bool dcm_mp_cpusys_top_fcm_stall_dcm_is_on(void)
325*95ea87ffSEdward-JW Yang {
326*95ea87ffSEdward-JW Yang 	bool ret = true;
327*95ea87ffSEdward-JW Yang 
328*95ea87ffSEdward-JW Yang 	ret &= ((mmio_read_32(MP_CPUSYS_TOP_MP0_DCM_CFG7) &
329*95ea87ffSEdward-JW Yang 		MP_CPUSYS_TOP_FCM_STALL_DCM_REG0_MASK) ==
330*95ea87ffSEdward-JW Yang 		(unsigned int) MP_CPUSYS_TOP_FCM_STALL_DCM_REG0_ON);
331*95ea87ffSEdward-JW Yang 
332*95ea87ffSEdward-JW Yang 	return ret;
333*95ea87ffSEdward-JW Yang }
334*95ea87ffSEdward-JW Yang 
dcm_mp_cpusys_top_fcm_stall_dcm(bool on)335*95ea87ffSEdward-JW Yang void dcm_mp_cpusys_top_fcm_stall_dcm(bool on)
336*95ea87ffSEdward-JW Yang {
337*95ea87ffSEdward-JW Yang 	if (on) {
338*95ea87ffSEdward-JW Yang 		/* TINFO = "Turn ON DCM 'mp_cpusys_top_fcm_stall_dcm'" */
339*95ea87ffSEdward-JW Yang 		mmio_clrsetbits_32(MP_CPUSYS_TOP_MP0_DCM_CFG7,
340*95ea87ffSEdward-JW Yang 			MP_CPUSYS_TOP_FCM_STALL_DCM_REG0_MASK,
341*95ea87ffSEdward-JW Yang 			MP_CPUSYS_TOP_FCM_STALL_DCM_REG0_ON);
342*95ea87ffSEdward-JW Yang 	} else {
343*95ea87ffSEdward-JW Yang 		/* TINFO = "Turn OFF DCM 'mp_cpusys_top_fcm_stall_dcm'" */
344*95ea87ffSEdward-JW Yang 		mmio_clrsetbits_32(MP_CPUSYS_TOP_MP0_DCM_CFG7,
345*95ea87ffSEdward-JW Yang 			MP_CPUSYS_TOP_FCM_STALL_DCM_REG0_MASK,
346*95ea87ffSEdward-JW Yang 			MP_CPUSYS_TOP_FCM_STALL_DCM_REG0_OFF);
347*95ea87ffSEdward-JW Yang 	}
348*95ea87ffSEdward-JW Yang }
349*95ea87ffSEdward-JW Yang 
350*95ea87ffSEdward-JW Yang #define MP_CPUSYS_TOP_LAST_COR_IDLE_DCM_REG0_MASK (BIT(31))
351*95ea87ffSEdward-JW Yang #define MP_CPUSYS_TOP_LAST_COR_IDLE_DCM_REG0_ON (BIT(31))
352*95ea87ffSEdward-JW Yang #define MP_CPUSYS_TOP_LAST_COR_IDLE_DCM_REG0_OFF ((0x0 << 31))
353*95ea87ffSEdward-JW Yang 
dcm_mp_cpusys_top_last_cor_idle_dcm_is_on(void)354*95ea87ffSEdward-JW Yang bool dcm_mp_cpusys_top_last_cor_idle_dcm_is_on(void)
355*95ea87ffSEdward-JW Yang {
356*95ea87ffSEdward-JW Yang 	bool ret = true;
357*95ea87ffSEdward-JW Yang 
358*95ea87ffSEdward-JW Yang 	ret &= ((mmio_read_32(MP_CPUSYS_TOP_BUS_PLLDIV_CFG) &
359*95ea87ffSEdward-JW Yang 		MP_CPUSYS_TOP_LAST_COR_IDLE_DCM_REG0_MASK) ==
360*95ea87ffSEdward-JW Yang 		(unsigned int) MP_CPUSYS_TOP_LAST_COR_IDLE_DCM_REG0_ON);
361*95ea87ffSEdward-JW Yang 
362*95ea87ffSEdward-JW Yang 	return ret;
363*95ea87ffSEdward-JW Yang }
364*95ea87ffSEdward-JW Yang 
dcm_mp_cpusys_top_last_cor_idle_dcm(bool on)365*95ea87ffSEdward-JW Yang void dcm_mp_cpusys_top_last_cor_idle_dcm(bool on)
366*95ea87ffSEdward-JW Yang {
367*95ea87ffSEdward-JW Yang 	if (on) {
368*95ea87ffSEdward-JW Yang 		/* TINFO = "Turn ON DCM 'mp_cpusys_top_last_cor_idle_dcm'" */
369*95ea87ffSEdward-JW Yang 		mmio_clrsetbits_32(MP_CPUSYS_TOP_BUS_PLLDIV_CFG,
370*95ea87ffSEdward-JW Yang 			MP_CPUSYS_TOP_LAST_COR_IDLE_DCM_REG0_MASK,
371*95ea87ffSEdward-JW Yang 			MP_CPUSYS_TOP_LAST_COR_IDLE_DCM_REG0_ON);
372*95ea87ffSEdward-JW Yang 	} else {
373*95ea87ffSEdward-JW Yang 		/* TINFO = "Turn OFF DCM 'mp_cpusys_top_last_cor_idle_dcm'" */
374*95ea87ffSEdward-JW Yang 		mmio_clrsetbits_32(MP_CPUSYS_TOP_BUS_PLLDIV_CFG,
375*95ea87ffSEdward-JW Yang 			MP_CPUSYS_TOP_LAST_COR_IDLE_DCM_REG0_MASK,
376*95ea87ffSEdward-JW Yang 			MP_CPUSYS_TOP_LAST_COR_IDLE_DCM_REG0_OFF);
377*95ea87ffSEdward-JW Yang 	}
378*95ea87ffSEdward-JW Yang }
379*95ea87ffSEdward-JW Yang 
380*95ea87ffSEdward-JW Yang #define MP_CPUSYS_TOP_MISC_DCM_REG0_MASK (BIT(0) |	\
381*95ea87ffSEdward-JW Yang 					  BIT(1) |	\
382*95ea87ffSEdward-JW Yang 					  BIT(2) |	\
383*95ea87ffSEdward-JW Yang 					  BIT(3) |	\
384*95ea87ffSEdward-JW Yang 					  BIT(4))
385*95ea87ffSEdward-JW Yang #define MP_CPUSYS_TOP_MISC_DCM_REG0_ON (BIT(0) |	\
386*95ea87ffSEdward-JW Yang 					BIT(1) |	\
387*95ea87ffSEdward-JW Yang 					BIT(2) |	\
388*95ea87ffSEdward-JW Yang 					BIT(3) |	\
389*95ea87ffSEdward-JW Yang 					BIT(4))
390*95ea87ffSEdward-JW Yang #define MP_CPUSYS_TOP_MISC_DCM_REG0_OFF ((0x0 << 0) |	\
391*95ea87ffSEdward-JW Yang 					 (0x0 << 1) |	\
392*95ea87ffSEdward-JW Yang 					 (0x0 << 2) |	\
393*95ea87ffSEdward-JW Yang 					 (0x0 << 3) |	\
394*95ea87ffSEdward-JW Yang 					 (0x0 << 4))
395*95ea87ffSEdward-JW Yang 
dcm_mp_cpusys_top_misc_dcm_is_on(void)396*95ea87ffSEdward-JW Yang bool dcm_mp_cpusys_top_misc_dcm_is_on(void)
397*95ea87ffSEdward-JW Yang {
398*95ea87ffSEdward-JW Yang 	bool ret = true;
399*95ea87ffSEdward-JW Yang 
400*95ea87ffSEdward-JW Yang 	ret &= ((mmio_read_32(MP_CPUSYS_TOP_MP_MISC_DCM_CFG0) &
401*95ea87ffSEdward-JW Yang 		MP_CPUSYS_TOP_MISC_DCM_REG0_MASK) ==
402*95ea87ffSEdward-JW Yang 		(unsigned int) MP_CPUSYS_TOP_MISC_DCM_REG0_ON);
403*95ea87ffSEdward-JW Yang 
404*95ea87ffSEdward-JW Yang 	return ret;
405*95ea87ffSEdward-JW Yang }
406*95ea87ffSEdward-JW Yang 
dcm_mp_cpusys_top_misc_dcm(bool on)407*95ea87ffSEdward-JW Yang void dcm_mp_cpusys_top_misc_dcm(bool on)
408*95ea87ffSEdward-JW Yang {
409*95ea87ffSEdward-JW Yang 	if (on) {
410*95ea87ffSEdward-JW Yang 		/* TINFO = "Turn ON DCM 'mp_cpusys_top_misc_dcm'" */
411*95ea87ffSEdward-JW Yang 		mmio_clrsetbits_32(MP_CPUSYS_TOP_MP_MISC_DCM_CFG0,
412*95ea87ffSEdward-JW Yang 			MP_CPUSYS_TOP_MISC_DCM_REG0_MASK,
413*95ea87ffSEdward-JW Yang 			MP_CPUSYS_TOP_MISC_DCM_REG0_ON);
414*95ea87ffSEdward-JW Yang 	} else {
415*95ea87ffSEdward-JW Yang 		/* TINFO = "Turn OFF DCM 'mp_cpusys_top_misc_dcm'" */
416*95ea87ffSEdward-JW Yang 		mmio_clrsetbits_32(MP_CPUSYS_TOP_MP_MISC_DCM_CFG0,
417*95ea87ffSEdward-JW Yang 			MP_CPUSYS_TOP_MISC_DCM_REG0_MASK,
418*95ea87ffSEdward-JW Yang 			MP_CPUSYS_TOP_MISC_DCM_REG0_OFF);
419*95ea87ffSEdward-JW Yang 	}
420*95ea87ffSEdward-JW Yang }
421*95ea87ffSEdward-JW Yang 
422*95ea87ffSEdward-JW Yang #define MP_CPUSYS_TOP_MP0_QDCM_REG0_MASK (BIT(0) |	\
423*95ea87ffSEdward-JW Yang 			BIT(1) |			\
424*95ea87ffSEdward-JW Yang 			BIT(2) |			\
425*95ea87ffSEdward-JW Yang 			BIT(3))
426*95ea87ffSEdward-JW Yang #define MP_CPUSYS_TOP_MP0_QDCM_REG0_ON (BIT(0) |	\
427*95ea87ffSEdward-JW Yang 			BIT(1) |			\
428*95ea87ffSEdward-JW Yang 			BIT(2) |			\
429*95ea87ffSEdward-JW Yang 			BIT(3))
430*95ea87ffSEdward-JW Yang #define MP_CPUSYS_TOP_MP0_QDCM_REG0_OFF ((0x0 << 0) |	\
431*95ea87ffSEdward-JW Yang 			(0x0 << 1) |			\
432*95ea87ffSEdward-JW Yang 			(0x0 << 2) |			\
433*95ea87ffSEdward-JW Yang 			(0x0 << 3))
434*95ea87ffSEdward-JW Yang 
dcm_mp_cpusys_top_mp0_qdcm_is_on(void)435*95ea87ffSEdward-JW Yang bool dcm_mp_cpusys_top_mp0_qdcm_is_on(void)
436*95ea87ffSEdward-JW Yang {
437*95ea87ffSEdward-JW Yang 	bool ret = true;
438*95ea87ffSEdward-JW Yang 
439*95ea87ffSEdward-JW Yang 	ret &= ((mmio_read_32(MP_CPUSYS_TOP_MP0_DCM_CFG0) &
440*95ea87ffSEdward-JW Yang 		MP_CPUSYS_TOP_MP0_QDCM_REG0_MASK) ==
441*95ea87ffSEdward-JW Yang 		(unsigned int) MP_CPUSYS_TOP_MP0_QDCM_REG0_ON);
442*95ea87ffSEdward-JW Yang 
443*95ea87ffSEdward-JW Yang 	return ret;
444*95ea87ffSEdward-JW Yang }
445*95ea87ffSEdward-JW Yang 
dcm_mp_cpusys_top_mp0_qdcm(bool on)446*95ea87ffSEdward-JW Yang void dcm_mp_cpusys_top_mp0_qdcm(bool on)
447*95ea87ffSEdward-JW Yang {
448*95ea87ffSEdward-JW Yang 	if (on) {
449*95ea87ffSEdward-JW Yang 		/* TINFO = "Turn ON DCM 'mp_cpusys_top_mp0_qdcm'" */
450*95ea87ffSEdward-JW Yang 		mmio_clrsetbits_32(MP_CPUSYS_TOP_MP0_DCM_CFG0,
451*95ea87ffSEdward-JW Yang 			MP_CPUSYS_TOP_MP0_QDCM_REG0_MASK,
452*95ea87ffSEdward-JW Yang 			MP_CPUSYS_TOP_MP0_QDCM_REG0_ON);
453*95ea87ffSEdward-JW Yang 	} else {
454*95ea87ffSEdward-JW Yang 		/* TINFO = "Turn OFF DCM 'mp_cpusys_top_mp0_qdcm'" */
455*95ea87ffSEdward-JW Yang 		mmio_clrsetbits_32(MP_CPUSYS_TOP_MP0_DCM_CFG0,
456*95ea87ffSEdward-JW Yang 			MP_CPUSYS_TOP_MP0_QDCM_REG0_MASK,
457*95ea87ffSEdward-JW Yang 			MP_CPUSYS_TOP_MP0_QDCM_REG0_OFF);
458*95ea87ffSEdward-JW Yang 	}
459*95ea87ffSEdward-JW Yang }
460*95ea87ffSEdward-JW Yang 
461*95ea87ffSEdward-JW Yang #define CPCCFG_REG_EMI_WFIFO_REG0_MASK (BIT(0) | BIT(2))
462*95ea87ffSEdward-JW Yang #define CPCCFG_REG_EMI_WFIFO_REG0_ON (BIT(0) | BIT(2))
463*95ea87ffSEdward-JW Yang #define CPCCFG_REG_EMI_WFIFO_REG0_OFF ((0x0 << 0) | (0x0 << 2))
464*95ea87ffSEdward-JW Yang 
dcm_cpccfg_reg_emi_wfifo_is_on(void)465*95ea87ffSEdward-JW Yang bool dcm_cpccfg_reg_emi_wfifo_is_on(void)
466*95ea87ffSEdward-JW Yang {
467*95ea87ffSEdward-JW Yang 	bool ret = true;
468*95ea87ffSEdward-JW Yang 
469*95ea87ffSEdward-JW Yang 	ret &= ((mmio_read_32(CPCCFG_REG_EMI_WFIFO) &
470*95ea87ffSEdward-JW Yang 		CPCCFG_REG_EMI_WFIFO_REG0_MASK) ==
471*95ea87ffSEdward-JW Yang 		(unsigned int) CPCCFG_REG_EMI_WFIFO_REG0_ON);
472*95ea87ffSEdward-JW Yang 
473*95ea87ffSEdward-JW Yang 	return ret;
474*95ea87ffSEdward-JW Yang }
475*95ea87ffSEdward-JW Yang 
dcm_cpccfg_reg_emi_wfifo(bool on)476*95ea87ffSEdward-JW Yang void dcm_cpccfg_reg_emi_wfifo(bool on)
477*95ea87ffSEdward-JW Yang {
478*95ea87ffSEdward-JW Yang 	if (on) {
479*95ea87ffSEdward-JW Yang 		/* TINFO = "Turn ON DCM 'cpccfg_reg_emi_wfifo'" */
480*95ea87ffSEdward-JW Yang 		mmio_clrsetbits_32(CPCCFG_REG_EMI_WFIFO,
481*95ea87ffSEdward-JW Yang 			CPCCFG_REG_EMI_WFIFO_REG0_MASK,
482*95ea87ffSEdward-JW Yang 			CPCCFG_REG_EMI_WFIFO_REG0_ON);
483*95ea87ffSEdward-JW Yang 	} else {
484*95ea87ffSEdward-JW Yang 		/* TINFO = "Turn OFF DCM 'cpccfg_reg_emi_wfifo'" */
485*95ea87ffSEdward-JW Yang 		mmio_clrsetbits_32(CPCCFG_REG_EMI_WFIFO,
486*95ea87ffSEdward-JW Yang 			CPCCFG_REG_EMI_WFIFO_REG0_MASK,
487*95ea87ffSEdward-JW Yang 			CPCCFG_REG_EMI_WFIFO_REG0_OFF);
488*95ea87ffSEdward-JW Yang 	}
489*95ea87ffSEdward-JW Yang }
490*95ea87ffSEdward-JW Yang 
491