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 #include <common/debug.h>
8*e578702fSGuangjie Song #include <lib/mmio.h>
9*e578702fSGuangjie Song #include <mtk_dcm_utils.h>
10*e578702fSGuangjie Song #include <mtk_mmap_pool.h>
11*e578702fSGuangjie Song
12*e578702fSGuangjie Song static const mmap_region_t dcm_mmap[] = {
13*e578702fSGuangjie Song MAP_REGION_FLAT(MCUSYS_PAR_WRAP_BASE, MCUSYS_PAR_WRAP_SIZE,
14*e578702fSGuangjie Song MT_DEVICE | MT_RW | MT_SECURE),
15*e578702fSGuangjie Song MAP_REGION_FLAT(APINFRA_IO_CTRL_AO, APINFRA_IO_CTRL_AO_SIZE,
16*e578702fSGuangjie Song MT_DEVICE | MT_RW | MT_SECURE),
17*e578702fSGuangjie Song MAP_REGION_FLAT(APINFRA_IO_NOC_AO, APINFRA_IO_NOC_AO_SIZE,
18*e578702fSGuangjie Song MT_DEVICE | MT_RW | MT_SECURE),
19*e578702fSGuangjie Song MAP_REGION_FLAT(APINFRA_MEM_INTF_NOC_AO, APINFRA_MEM_INTF_NOC_AO_SIZE,
20*e578702fSGuangjie Song MT_DEVICE | MT_RW | MT_SECURE),
21*e578702fSGuangjie Song MAP_REGION_FLAT(APINFRA_MEM_CTRL_AO, APINFRA_MEM_CTRL_AO_SIZE,
22*e578702fSGuangjie Song MT_DEVICE | MT_RW | MT_SECURE),
23*e578702fSGuangjie Song MAP_REGION_FLAT(PERI_AO_BCRM_BASE, PERI_AO_BCRM_BASE_SIZE,
24*e578702fSGuangjie Song MT_DEVICE | MT_RW | MT_SECURE),
25*e578702fSGuangjie Song MAP_REGION_FLAT(VLP_AO_BCRM_BASE, VLP_AO_BCRM_BASE_SIZE,
26*e578702fSGuangjie Song MT_DEVICE | MT_RW | MT_SECURE),
27*e578702fSGuangjie Song { 0 }
28*e578702fSGuangjie Song };
29*e578702fSGuangjie Song DECLARE_MTK_MMAP_REGIONS(dcm_mmap);
30*e578702fSGuangjie Song
dcm_check_state(uintptr_t addr,unsigned int mask,unsigned int state)31*e578702fSGuangjie Song static bool dcm_check_state(uintptr_t addr, unsigned int mask, unsigned int state)
32*e578702fSGuangjie Song {
33*e578702fSGuangjie Song return ((mmio_read_32(addr) & mask) == state);
34*e578702fSGuangjie Song }
35*e578702fSGuangjie Song
dcm_mcusys_par_wrap_mcu_l3c_dcm_is_on(void)36*e578702fSGuangjie Song bool dcm_mcusys_par_wrap_mcu_l3c_dcm_is_on(void)
37*e578702fSGuangjie Song {
38*e578702fSGuangjie Song return dcm_check_state(MCUSYS_PAR_WRAP_L3_SHARE_DCM_CTRL,
39*e578702fSGuangjie Song MCUSYS_PAR_WRAP_MCU_L3C_DCM_REG0_MASK,
40*e578702fSGuangjie Song MCUSYS_PAR_WRAP_MCU_L3C_DCM_REG0_ON);
41*e578702fSGuangjie Song }
42*e578702fSGuangjie Song
dcm_mcusys_par_wrap_mcu_l3c_dcm(bool on)43*e578702fSGuangjie Song void dcm_mcusys_par_wrap_mcu_l3c_dcm(bool on)
44*e578702fSGuangjie Song {
45*e578702fSGuangjie Song if (on)
46*e578702fSGuangjie Song mmio_clrsetbits_32(MCUSYS_PAR_WRAP_L3_SHARE_DCM_CTRL,
47*e578702fSGuangjie Song MCUSYS_PAR_WRAP_MCU_L3C_DCM_REG0_MASK,
48*e578702fSGuangjie Song MCUSYS_PAR_WRAP_MCU_L3C_DCM_REG0_ON);
49*e578702fSGuangjie Song else
50*e578702fSGuangjie Song mmio_clrsetbits_32(MCUSYS_PAR_WRAP_L3_SHARE_DCM_CTRL,
51*e578702fSGuangjie Song MCUSYS_PAR_WRAP_MCU_L3C_DCM_REG0_MASK,
52*e578702fSGuangjie Song MCUSYS_PAR_WRAP_MCU_L3C_DCM_REG0_OFF);
53*e578702fSGuangjie Song }
54*e578702fSGuangjie Song
dcm_mcusys_par_wrap_mcu_acp_dcm_is_on(void)55*e578702fSGuangjie Song bool dcm_mcusys_par_wrap_mcu_acp_dcm_is_on(void)
56*e578702fSGuangjie Song {
57*e578702fSGuangjie Song return dcm_check_state(MCUSYS_PAR_WRAP_MP_ADB_DCM_CFG0,
58*e578702fSGuangjie Song MCUSYS_PAR_WRAP_MCU_ACP_DCM_REG0_MASK,
59*e578702fSGuangjie Song MCUSYS_PAR_WRAP_MCU_ACP_DCM_REG0_ON);
60*e578702fSGuangjie Song
61*e578702fSGuangjie Song }
62*e578702fSGuangjie Song
dcm_mcusys_par_wrap_mcu_acp_dcm(bool on)63*e578702fSGuangjie Song void dcm_mcusys_par_wrap_mcu_acp_dcm(bool on)
64*e578702fSGuangjie Song {
65*e578702fSGuangjie Song if (on)
66*e578702fSGuangjie Song mmio_clrsetbits_32(MCUSYS_PAR_WRAP_MP_ADB_DCM_CFG0,
67*e578702fSGuangjie Song MCUSYS_PAR_WRAP_MCU_ACP_DCM_REG0_MASK,
68*e578702fSGuangjie Song MCUSYS_PAR_WRAP_MCU_ACP_DCM_REG0_ON);
69*e578702fSGuangjie Song else
70*e578702fSGuangjie Song mmio_clrsetbits_32(MCUSYS_PAR_WRAP_MP_ADB_DCM_CFG0,
71*e578702fSGuangjie Song MCUSYS_PAR_WRAP_MCU_ACP_DCM_REG0_MASK,
72*e578702fSGuangjie Song MCUSYS_PAR_WRAP_MCU_ACP_DCM_REG0_OFF);
73*e578702fSGuangjie Song }
74*e578702fSGuangjie Song
dcm_mcusys_par_wrap_mcu_adb_dcm_is_on(void)75*e578702fSGuangjie Song bool dcm_mcusys_par_wrap_mcu_adb_dcm_is_on(void)
76*e578702fSGuangjie Song {
77*e578702fSGuangjie Song return dcm_check_state(MCUSYS_PAR_WRAP_ADB_FIFO_DCM_EN,
78*e578702fSGuangjie Song MCUSYS_PAR_WRAP_MCU_ADB_DCM_REG0_MASK,
79*e578702fSGuangjie Song MCUSYS_PAR_WRAP_MCU_ADB_DCM_REG0_ON);
80*e578702fSGuangjie Song }
81*e578702fSGuangjie Song
dcm_mcusys_par_wrap_mcu_adb_dcm(bool on)82*e578702fSGuangjie Song void dcm_mcusys_par_wrap_mcu_adb_dcm(bool on)
83*e578702fSGuangjie Song {
84*e578702fSGuangjie Song if (on)
85*e578702fSGuangjie Song mmio_clrsetbits_32(MCUSYS_PAR_WRAP_ADB_FIFO_DCM_EN,
86*e578702fSGuangjie Song MCUSYS_PAR_WRAP_MCU_ADB_DCM_REG0_MASK,
87*e578702fSGuangjie Song MCUSYS_PAR_WRAP_MCU_ADB_DCM_REG0_ON);
88*e578702fSGuangjie Song else
89*e578702fSGuangjie Song mmio_clrsetbits_32(MCUSYS_PAR_WRAP_ADB_FIFO_DCM_EN,
90*e578702fSGuangjie Song MCUSYS_PAR_WRAP_MCU_ADB_DCM_REG0_MASK,
91*e578702fSGuangjie Song MCUSYS_PAR_WRAP_MCU_ADB_DCM_REG0_OFF);
92*e578702fSGuangjie Song }
93*e578702fSGuangjie Song
dcm_mcusys_par_wrap_mcu_stalldcm_is_on(void)94*e578702fSGuangjie Song bool dcm_mcusys_par_wrap_mcu_stalldcm_is_on(void)
95*e578702fSGuangjie Song {
96*e578702fSGuangjie Song return dcm_check_state(MCUSYS_PAR_WRAP_MP0_DCM_CFG0,
97*e578702fSGuangjie Song MCUSYS_PAR_WRAP_MCU_STALLDCM_REG0_MASK,
98*e578702fSGuangjie Song MCUSYS_PAR_WRAP_MCU_STALLDCM_REG0_ON);
99*e578702fSGuangjie Song
100*e578702fSGuangjie Song }
101*e578702fSGuangjie Song
dcm_mcusys_par_wrap_mcu_stalldcm(bool on)102*e578702fSGuangjie Song void dcm_mcusys_par_wrap_mcu_stalldcm(bool on)
103*e578702fSGuangjie Song {
104*e578702fSGuangjie Song if (on)
105*e578702fSGuangjie Song mmio_clrsetbits_32(MCUSYS_PAR_WRAP_MP0_DCM_CFG0,
106*e578702fSGuangjie Song MCUSYS_PAR_WRAP_MCU_STALLDCM_REG0_MASK,
107*e578702fSGuangjie Song MCUSYS_PAR_WRAP_MCU_STALLDCM_REG0_ON);
108*e578702fSGuangjie Song else
109*e578702fSGuangjie Song mmio_clrsetbits_32(MCUSYS_PAR_WRAP_MP0_DCM_CFG0,
110*e578702fSGuangjie Song MCUSYS_PAR_WRAP_MCU_STALLDCM_REG0_MASK,
111*e578702fSGuangjie Song MCUSYS_PAR_WRAP_MCU_STALLDCM_REG0_OFF);
112*e578702fSGuangjie Song }
113*e578702fSGuangjie Song
dcm_mcusys_par_wrap_mcu_apb_dcm_is_on(void)114*e578702fSGuangjie Song bool dcm_mcusys_par_wrap_mcu_apb_dcm_is_on(void)
115*e578702fSGuangjie Song {
116*e578702fSGuangjie Song return dcm_check_state(MCUSYS_PAR_WRAP_MP0_DCM_CFG0,
117*e578702fSGuangjie Song MCUSYS_PAR_WRAP_MCU_APB_DCM_REG0_MASK,
118*e578702fSGuangjie Song MCUSYS_PAR_WRAP_MCU_APB_DCM_REG0_ON);
119*e578702fSGuangjie Song }
120*e578702fSGuangjie Song
dcm_mcusys_par_wrap_mcu_apb_dcm(bool on)121*e578702fSGuangjie Song void dcm_mcusys_par_wrap_mcu_apb_dcm(bool on)
122*e578702fSGuangjie Song {
123*e578702fSGuangjie Song if (on)
124*e578702fSGuangjie Song mmio_clrsetbits_32(MCUSYS_PAR_WRAP_MP0_DCM_CFG0,
125*e578702fSGuangjie Song MCUSYS_PAR_WRAP_MCU_APB_DCM_REG0_MASK,
126*e578702fSGuangjie Song MCUSYS_PAR_WRAP_MCU_APB_DCM_REG0_ON);
127*e578702fSGuangjie Song else
128*e578702fSGuangjie Song mmio_clrsetbits_32(MCUSYS_PAR_WRAP_MP0_DCM_CFG0,
129*e578702fSGuangjie Song MCUSYS_PAR_WRAP_MCU_APB_DCM_REG0_MASK,
130*e578702fSGuangjie Song MCUSYS_PAR_WRAP_MCU_APB_DCM_REG0_OFF);
131*e578702fSGuangjie Song }
132*e578702fSGuangjie Song
dcm_mcusys_par_wrap_mcu_io_dcm_is_on(void)133*e578702fSGuangjie Song bool dcm_mcusys_par_wrap_mcu_io_dcm_is_on(void)
134*e578702fSGuangjie Song {
135*e578702fSGuangjie Song bool ret = true;
136*e578702fSGuangjie Song
137*e578702fSGuangjie Song ret &= dcm_check_state(MCUSYS_PAR_WRAP_QDCM_CONFIG0,
138*e578702fSGuangjie Song MCUSYS_PAR_WRAP_MCU_IO_DCM_REG0_MASK,
139*e578702fSGuangjie Song MCUSYS_PAR_WRAP_MCU_IO_DCM_REG0_ON);
140*e578702fSGuangjie Song ret &= dcm_check_state(MCUSYS_PAR_WRAP_L3GIC_ARCH_CG_CONFIG,
141*e578702fSGuangjie Song MCUSYS_PAR_WRAP_MCU_IO_DCM_REG1_MASK,
142*e578702fSGuangjie Song MCUSYS_PAR_WRAP_MCU_IO_DCM_REG1_ON);
143*e578702fSGuangjie Song
144*e578702fSGuangjie Song return ret;
145*e578702fSGuangjie Song }
146*e578702fSGuangjie Song
dcm_mcusys_par_wrap_mcu_io_dcm(bool on)147*e578702fSGuangjie Song void dcm_mcusys_par_wrap_mcu_io_dcm(bool on)
148*e578702fSGuangjie Song {
149*e578702fSGuangjie Song if (on) {
150*e578702fSGuangjie Song mmio_clrsetbits_32(MCUSYS_PAR_WRAP_QDCM_CONFIG0,
151*e578702fSGuangjie Song MCUSYS_PAR_WRAP_MCU_IO_DCM_REG0_MASK,
152*e578702fSGuangjie Song MCUSYS_PAR_WRAP_MCU_IO_DCM_REG0_ON);
153*e578702fSGuangjie Song mmio_clrsetbits_32(MCUSYS_PAR_WRAP_L3GIC_ARCH_CG_CONFIG,
154*e578702fSGuangjie Song MCUSYS_PAR_WRAP_MCU_IO_DCM_REG1_MASK,
155*e578702fSGuangjie Song MCUSYS_PAR_WRAP_MCU_IO_DCM_REG1_ON);
156*e578702fSGuangjie Song } else {
157*e578702fSGuangjie Song mmio_clrsetbits_32(MCUSYS_PAR_WRAP_QDCM_CONFIG0,
158*e578702fSGuangjie Song MCUSYS_PAR_WRAP_MCU_IO_DCM_REG0_MASK,
159*e578702fSGuangjie Song MCUSYS_PAR_WRAP_MCU_IO_DCM_REG0_OFF);
160*e578702fSGuangjie Song mmio_clrsetbits_32(MCUSYS_PAR_WRAP_L3GIC_ARCH_CG_CONFIG,
161*e578702fSGuangjie Song MCUSYS_PAR_WRAP_MCU_IO_DCM_REG1_MASK,
162*e578702fSGuangjie Song MCUSYS_PAR_WRAP_MCU_IO_DCM_REG1_OFF);
163*e578702fSGuangjie Song }
164*e578702fSGuangjie Song }
165*e578702fSGuangjie Song
dcm_mcusys_par_wrap_mcu_bus_qdcm_is_on(void)166*e578702fSGuangjie Song bool dcm_mcusys_par_wrap_mcu_bus_qdcm_is_on(void)
167*e578702fSGuangjie Song {
168*e578702fSGuangjie Song bool ret = true;
169*e578702fSGuangjie Song
170*e578702fSGuangjie Song ret &= dcm_check_state(MCUSYS_PAR_WRAP_QDCM_CONFIG0,
171*e578702fSGuangjie Song MCUSYS_PAR_WRAP_MCU_BUS_QDCM_REG0_MASK,
172*e578702fSGuangjie Song MCUSYS_PAR_WRAP_MCU_BUS_QDCM_REG0_ON);
173*e578702fSGuangjie Song ret &= dcm_check_state(MCUSYS_PAR_WRAP_QDCM_CONFIG1,
174*e578702fSGuangjie Song MCUSYS_PAR_WRAP_MCU_BUS_QDCM_REG1_MASK,
175*e578702fSGuangjie Song MCUSYS_PAR_WRAP_MCU_BUS_QDCM_REG1_ON);
176*e578702fSGuangjie Song
177*e578702fSGuangjie Song return ret;
178*e578702fSGuangjie Song }
179*e578702fSGuangjie Song
dcm_mcusys_par_wrap_mcu_bus_qdcm(bool on)180*e578702fSGuangjie Song void dcm_mcusys_par_wrap_mcu_bus_qdcm(bool on)
181*e578702fSGuangjie Song {
182*e578702fSGuangjie Song if (on) {
183*e578702fSGuangjie Song mmio_clrsetbits_32(MCUSYS_PAR_WRAP_QDCM_CONFIG0,
184*e578702fSGuangjie Song MCUSYS_PAR_WRAP_MCU_BUS_QDCM_REG0_MASK,
185*e578702fSGuangjie Song MCUSYS_PAR_WRAP_MCU_BUS_QDCM_REG0_ON);
186*e578702fSGuangjie Song mmio_clrsetbits_32(MCUSYS_PAR_WRAP_QDCM_CONFIG1,
187*e578702fSGuangjie Song MCUSYS_PAR_WRAP_MCU_BUS_QDCM_REG1_MASK,
188*e578702fSGuangjie Song MCUSYS_PAR_WRAP_MCU_BUS_QDCM_REG1_ON);
189*e578702fSGuangjie Song } else {
190*e578702fSGuangjie Song mmio_clrsetbits_32(MCUSYS_PAR_WRAP_QDCM_CONFIG0,
191*e578702fSGuangjie Song MCUSYS_PAR_WRAP_MCU_BUS_QDCM_REG0_MASK,
192*e578702fSGuangjie Song MCUSYS_PAR_WRAP_MCU_BUS_QDCM_REG0_OFF);
193*e578702fSGuangjie Song mmio_clrsetbits_32(MCUSYS_PAR_WRAP_QDCM_CONFIG1,
194*e578702fSGuangjie Song MCUSYS_PAR_WRAP_MCU_BUS_QDCM_REG1_MASK,
195*e578702fSGuangjie Song MCUSYS_PAR_WRAP_MCU_BUS_QDCM_REG1_OFF);
196*e578702fSGuangjie Song }
197*e578702fSGuangjie Song }
198*e578702fSGuangjie Song
dcm_mcusys_par_wrap_mcu_core_qdcm_is_on(void)199*e578702fSGuangjie Song bool dcm_mcusys_par_wrap_mcu_core_qdcm_is_on(void)
200*e578702fSGuangjie Song {
201*e578702fSGuangjie Song bool ret = true;
202*e578702fSGuangjie Song
203*e578702fSGuangjie Song ret &= dcm_check_state(MCUSYS_PAR_WRAP_QDCM_CONFIG2,
204*e578702fSGuangjie Song MCUSYS_PAR_WRAP_MCU_CORE_QDCM_REG0_MASK,
205*e578702fSGuangjie Song MCUSYS_PAR_WRAP_MCU_CORE_QDCM_REG0_ON);
206*e578702fSGuangjie Song ret &= dcm_check_state(MCUSYS_PAR_WRAP_QDCM_CONFIG3,
207*e578702fSGuangjie Song MCUSYS_PAR_WRAP_MCU_CORE_QDCM_REG1_MASK,
208*e578702fSGuangjie Song MCUSYS_PAR_WRAP_MCU_CORE_QDCM_REG1_ON);
209*e578702fSGuangjie Song
210*e578702fSGuangjie Song return ret;
211*e578702fSGuangjie Song }
212*e578702fSGuangjie Song
dcm_mcusys_par_wrap_mcu_core_qdcm(bool on)213*e578702fSGuangjie Song void dcm_mcusys_par_wrap_mcu_core_qdcm(bool on)
214*e578702fSGuangjie Song {
215*e578702fSGuangjie Song if (on) {
216*e578702fSGuangjie Song mmio_clrsetbits_32(MCUSYS_PAR_WRAP_QDCM_CONFIG2,
217*e578702fSGuangjie Song MCUSYS_PAR_WRAP_MCU_CORE_QDCM_REG0_MASK,
218*e578702fSGuangjie Song MCUSYS_PAR_WRAP_MCU_CORE_QDCM_REG0_ON);
219*e578702fSGuangjie Song mmio_clrsetbits_32(MCUSYS_PAR_WRAP_QDCM_CONFIG3,
220*e578702fSGuangjie Song MCUSYS_PAR_WRAP_MCU_CORE_QDCM_REG1_MASK,
221*e578702fSGuangjie Song MCUSYS_PAR_WRAP_MCU_CORE_QDCM_REG1_ON);
222*e578702fSGuangjie Song } else {
223*e578702fSGuangjie Song mmio_clrsetbits_32(MCUSYS_PAR_WRAP_QDCM_CONFIG2,
224*e578702fSGuangjie Song MCUSYS_PAR_WRAP_MCU_CORE_QDCM_REG0_MASK,
225*e578702fSGuangjie Song MCUSYS_PAR_WRAP_MCU_CORE_QDCM_REG0_OFF);
226*e578702fSGuangjie Song mmio_clrsetbits_32(MCUSYS_PAR_WRAP_QDCM_CONFIG3,
227*e578702fSGuangjie Song MCUSYS_PAR_WRAP_MCU_CORE_QDCM_REG1_MASK,
228*e578702fSGuangjie Song MCUSYS_PAR_WRAP_MCU_CORE_QDCM_REG1_OFF);
229*e578702fSGuangjie Song }
230*e578702fSGuangjie Song }
231*e578702fSGuangjie Song
dcm_mcusys_par_wrap_mcu_bkr_ldcm1_is_on(void)232*e578702fSGuangjie Song bool dcm_mcusys_par_wrap_mcu_bkr_ldcm1_is_on(void)
233*e578702fSGuangjie Song {
234*e578702fSGuangjie Song return dcm_check_state(MCUSYS_PAR_WRAP_CI700_DCM_CTRL,
235*e578702fSGuangjie Song MCUSYS_PAR_WRAP_MCU_BKR_LDCM1_REG0_MASK,
236*e578702fSGuangjie Song MCUSYS_PAR_WRAP_MCU_BKR_LDCM1_REG0_ON);
237*e578702fSGuangjie Song
238*e578702fSGuangjie Song }
239*e578702fSGuangjie Song
dcm_mcusys_par_wrap_mcu_bkr_ldcm1(bool on)240*e578702fSGuangjie Song void dcm_mcusys_par_wrap_mcu_bkr_ldcm1(bool on)
241*e578702fSGuangjie Song {
242*e578702fSGuangjie Song if (on)
243*e578702fSGuangjie Song mmio_clrsetbits_32(MCUSYS_PAR_WRAP_CI700_DCM_CTRL,
244*e578702fSGuangjie Song MCUSYS_PAR_WRAP_MCU_BKR_LDCM1_REG0_MASK,
245*e578702fSGuangjie Song MCUSYS_PAR_WRAP_MCU_BKR_LDCM1_REG0_ON);
246*e578702fSGuangjie Song else
247*e578702fSGuangjie Song mmio_clrsetbits_32(MCUSYS_PAR_WRAP_CI700_DCM_CTRL,
248*e578702fSGuangjie Song MCUSYS_PAR_WRAP_MCU_BKR_LDCM1_REG0_MASK,
249*e578702fSGuangjie Song MCUSYS_PAR_WRAP_MCU_BKR_LDCM1_REG0_OFF);
250*e578702fSGuangjie Song }
251*e578702fSGuangjie Song
dcm_mcusys_par_wrap_mcu_bkr_ldcm2_is_on(void)252*e578702fSGuangjie Song bool dcm_mcusys_par_wrap_mcu_bkr_ldcm2_is_on(void)
253*e578702fSGuangjie Song {
254*e578702fSGuangjie Song return dcm_check_state(MCUSYS_PAR_WRAP_CI700_DCM_CTRL,
255*e578702fSGuangjie Song MCUSYS_PAR_WRAP_MCU_BKR_LDCM2_REG0_MASK,
256*e578702fSGuangjie Song MCUSYS_PAR_WRAP_MCU_BKR_LDCM2_REG0_ON);
257*e578702fSGuangjie Song
258*e578702fSGuangjie Song }
259*e578702fSGuangjie Song
dcm_mcusys_par_wrap_mcu_bkr_ldcm2(bool on)260*e578702fSGuangjie Song void dcm_mcusys_par_wrap_mcu_bkr_ldcm2(bool on)
261*e578702fSGuangjie Song {
262*e578702fSGuangjie Song if (on)
263*e578702fSGuangjie Song mmio_clrsetbits_32(MCUSYS_PAR_WRAP_CI700_DCM_CTRL,
264*e578702fSGuangjie Song MCUSYS_PAR_WRAP_MCU_BKR_LDCM2_REG0_MASK,
265*e578702fSGuangjie Song MCUSYS_PAR_WRAP_MCU_BKR_LDCM2_REG0_ON);
266*e578702fSGuangjie Song else
267*e578702fSGuangjie Song mmio_clrsetbits_32(MCUSYS_PAR_WRAP_CI700_DCM_CTRL,
268*e578702fSGuangjie Song MCUSYS_PAR_WRAP_MCU_BKR_LDCM2_REG0_MASK,
269*e578702fSGuangjie Song MCUSYS_PAR_WRAP_MCU_BKR_LDCM2_REG0_OFF);
270*e578702fSGuangjie Song }
271*e578702fSGuangjie Song
dcm_mcusys_par_wrap_mcu_cbip_dcm_is_on(void)272*e578702fSGuangjie Song bool dcm_mcusys_par_wrap_mcu_cbip_dcm_is_on(void)
273*e578702fSGuangjie Song {
274*e578702fSGuangjie Song bool ret = true;
275*e578702fSGuangjie Song
276*e578702fSGuangjie Song ret &= dcm_check_state(MCUSYS_PAR_WRAP_CBIP_CABGEN_3TO1_CONFIG,
277*e578702fSGuangjie Song MCUSYS_PAR_WRAP_MCU_CBIP_DCM_REG0_MASK,
278*e578702fSGuangjie Song MCUSYS_PAR_WRAP_MCU_CBIP_DCM_REG0_ON);
279*e578702fSGuangjie Song ret &= dcm_check_state(MCUSYS_PAR_WRAP_CBIP_CABGEN_2TO1_CONFIG,
280*e578702fSGuangjie Song MCUSYS_PAR_WRAP_MCU_CBIP_DCM_REG1_MASK,
281*e578702fSGuangjie Song MCUSYS_PAR_WRAP_MCU_CBIP_DCM_REG1_ON);
282*e578702fSGuangjie Song ret &= dcm_check_state(MCUSYS_PAR_WRAP_CBIP_CABGEN_4TO2_CONFIG,
283*e578702fSGuangjie Song MCUSYS_PAR_WRAP_MCU_CBIP_DCM_REG2_MASK,
284*e578702fSGuangjie Song MCUSYS_PAR_WRAP_MCU_CBIP_DCM_REG2_ON);
285*e578702fSGuangjie Song ret &= dcm_check_state(MCUSYS_PAR_WRAP_CBIP_CABGEN_1TO2_CONFIG,
286*e578702fSGuangjie Song MCUSYS_PAR_WRAP_MCU_CBIP_DCM_REG3_MASK,
287*e578702fSGuangjie Song MCUSYS_PAR_WRAP_MCU_CBIP_DCM_REG3_ON);
288*e578702fSGuangjie Song ret &= dcm_check_state(MCUSYS_PAR_WRAP_CBIP_CABGEN_2TO5_CONFIG,
289*e578702fSGuangjie Song MCUSYS_PAR_WRAP_MCU_CBIP_DCM_REG4_MASK,
290*e578702fSGuangjie Song MCUSYS_PAR_WRAP_MCU_CBIP_DCM_REG4_ON);
291*e578702fSGuangjie Song ret &= dcm_check_state(MCUSYS_PAR_WRAP_CBIP_P2P_CONFIG0,
292*e578702fSGuangjie Song MCUSYS_PAR_WRAP_MCU_CBIP_DCM_REG5_MASK,
293*e578702fSGuangjie Song MCUSYS_PAR_WRAP_MCU_CBIP_DCM_REG5_ON);
294*e578702fSGuangjie Song ret &= dcm_check_state(MCUSYS_PAR_WRAP_CBIP_CABGEN_1TO2_L3GIC_CONFIG,
295*e578702fSGuangjie Song MCUSYS_PAR_WRAP_MCU_CBIP_DCM_REG6_MASK,
296*e578702fSGuangjie Song MCUSYS_PAR_WRAP_MCU_CBIP_DCM_REG6_ON);
297*e578702fSGuangjie Song ret &= dcm_check_state(MCUSYS_PAR_WRAP_CBIP_CABGEN_1TO2_INFRA_CONFIG,
298*e578702fSGuangjie Song MCUSYS_PAR_WRAP_MCU_CBIP_DCM_REG7_MASK,
299*e578702fSGuangjie Song MCUSYS_PAR_WRAP_MCU_CBIP_DCM_REG7_ON);
300*e578702fSGuangjie Song
301*e578702fSGuangjie Song return ret;
302*e578702fSGuangjie Song }
303*e578702fSGuangjie Song
dcm_mcusys_par_wrap_mcu_cbip_dcm(bool on)304*e578702fSGuangjie Song void dcm_mcusys_par_wrap_mcu_cbip_dcm(bool on)
305*e578702fSGuangjie Song {
306*e578702fSGuangjie Song if (on) {
307*e578702fSGuangjie Song mmio_clrsetbits_32(MCUSYS_PAR_WRAP_CBIP_CABGEN_3TO1_CONFIG,
308*e578702fSGuangjie Song MCUSYS_PAR_WRAP_MCU_CBIP_DCM_REG0_MASK,
309*e578702fSGuangjie Song MCUSYS_PAR_WRAP_MCU_CBIP_DCM_REG0_ON);
310*e578702fSGuangjie Song mmio_clrsetbits_32(MCUSYS_PAR_WRAP_CBIP_CABGEN_2TO1_CONFIG,
311*e578702fSGuangjie Song MCUSYS_PAR_WRAP_MCU_CBIP_DCM_REG1_MASK,
312*e578702fSGuangjie Song MCUSYS_PAR_WRAP_MCU_CBIP_DCM_REG1_ON);
313*e578702fSGuangjie Song mmio_clrsetbits_32(MCUSYS_PAR_WRAP_CBIP_CABGEN_4TO2_CONFIG,
314*e578702fSGuangjie Song MCUSYS_PAR_WRAP_MCU_CBIP_DCM_REG2_MASK,
315*e578702fSGuangjie Song MCUSYS_PAR_WRAP_MCU_CBIP_DCM_REG2_ON);
316*e578702fSGuangjie Song mmio_clrsetbits_32(MCUSYS_PAR_WRAP_CBIP_CABGEN_1TO2_CONFIG,
317*e578702fSGuangjie Song MCUSYS_PAR_WRAP_MCU_CBIP_DCM_REG3_MASK,
318*e578702fSGuangjie Song MCUSYS_PAR_WRAP_MCU_CBIP_DCM_REG3_ON);
319*e578702fSGuangjie Song mmio_clrsetbits_32(MCUSYS_PAR_WRAP_CBIP_CABGEN_2TO5_CONFIG,
320*e578702fSGuangjie Song MCUSYS_PAR_WRAP_MCU_CBIP_DCM_REG4_MASK,
321*e578702fSGuangjie Song MCUSYS_PAR_WRAP_MCU_CBIP_DCM_REG4_ON);
322*e578702fSGuangjie Song mmio_clrsetbits_32(MCUSYS_PAR_WRAP_CBIP_P2P_CONFIG0,
323*e578702fSGuangjie Song MCUSYS_PAR_WRAP_MCU_CBIP_DCM_REG5_MASK,
324*e578702fSGuangjie Song MCUSYS_PAR_WRAP_MCU_CBIP_DCM_REG5_ON);
325*e578702fSGuangjie Song mmio_clrsetbits_32(MCUSYS_PAR_WRAP_CBIP_CABGEN_1TO2_L3GIC_CONFIG,
326*e578702fSGuangjie Song MCUSYS_PAR_WRAP_MCU_CBIP_DCM_REG6_MASK,
327*e578702fSGuangjie Song MCUSYS_PAR_WRAP_MCU_CBIP_DCM_REG6_ON);
328*e578702fSGuangjie Song mmio_clrsetbits_32(MCUSYS_PAR_WRAP_CBIP_CABGEN_1TO2_INFRA_CONFIG,
329*e578702fSGuangjie Song MCUSYS_PAR_WRAP_MCU_CBIP_DCM_REG7_MASK,
330*e578702fSGuangjie Song MCUSYS_PAR_WRAP_MCU_CBIP_DCM_REG7_ON);
331*e578702fSGuangjie Song } else {
332*e578702fSGuangjie Song mmio_clrsetbits_32(MCUSYS_PAR_WRAP_CBIP_CABGEN_3TO1_CONFIG,
333*e578702fSGuangjie Song MCUSYS_PAR_WRAP_MCU_CBIP_DCM_REG0_MASK,
334*e578702fSGuangjie Song MCUSYS_PAR_WRAP_MCU_CBIP_DCM_REG0_OFF);
335*e578702fSGuangjie Song mmio_clrsetbits_32(MCUSYS_PAR_WRAP_CBIP_CABGEN_2TO1_CONFIG,
336*e578702fSGuangjie Song MCUSYS_PAR_WRAP_MCU_CBIP_DCM_REG1_MASK,
337*e578702fSGuangjie Song MCUSYS_PAR_WRAP_MCU_CBIP_DCM_REG1_OFF);
338*e578702fSGuangjie Song mmio_clrsetbits_32(MCUSYS_PAR_WRAP_CBIP_CABGEN_4TO2_CONFIG,
339*e578702fSGuangjie Song MCUSYS_PAR_WRAP_MCU_CBIP_DCM_REG2_MASK,
340*e578702fSGuangjie Song MCUSYS_PAR_WRAP_MCU_CBIP_DCM_REG2_OFF);
341*e578702fSGuangjie Song mmio_clrsetbits_32(MCUSYS_PAR_WRAP_CBIP_CABGEN_1TO2_CONFIG,
342*e578702fSGuangjie Song MCUSYS_PAR_WRAP_MCU_CBIP_DCM_REG3_MASK,
343*e578702fSGuangjie Song MCUSYS_PAR_WRAP_MCU_CBIP_DCM_REG3_OFF);
344*e578702fSGuangjie Song mmio_clrsetbits_32(MCUSYS_PAR_WRAP_CBIP_CABGEN_2TO5_CONFIG,
345*e578702fSGuangjie Song MCUSYS_PAR_WRAP_MCU_CBIP_DCM_REG4_MASK,
346*e578702fSGuangjie Song MCUSYS_PAR_WRAP_MCU_CBIP_DCM_REG4_OFF);
347*e578702fSGuangjie Song mmio_clrsetbits_32(MCUSYS_PAR_WRAP_CBIP_P2P_CONFIG0,
348*e578702fSGuangjie Song MCUSYS_PAR_WRAP_MCU_CBIP_DCM_REG5_MASK,
349*e578702fSGuangjie Song MCUSYS_PAR_WRAP_MCU_CBIP_DCM_REG5_OFF);
350*e578702fSGuangjie Song mmio_clrsetbits_32(MCUSYS_PAR_WRAP_CBIP_CABGEN_1TO2_L3GIC_CONFIG,
351*e578702fSGuangjie Song MCUSYS_PAR_WRAP_MCU_CBIP_DCM_REG6_MASK,
352*e578702fSGuangjie Song MCUSYS_PAR_WRAP_MCU_CBIP_DCM_REG6_OFF);
353*e578702fSGuangjie Song mmio_clrsetbits_32(MCUSYS_PAR_WRAP_CBIP_CABGEN_1TO2_INFRA_CONFIG,
354*e578702fSGuangjie Song MCUSYS_PAR_WRAP_MCU_CBIP_DCM_REG7_MASK,
355*e578702fSGuangjie Song MCUSYS_PAR_WRAP_MCU_CBIP_DCM_REG7_OFF);
356*e578702fSGuangjie Song }
357*e578702fSGuangjie Song }
358*e578702fSGuangjie Song
dcm_mcusys_par_wrap_mcu_misc_dcm_is_on(void)359*e578702fSGuangjie Song bool dcm_mcusys_par_wrap_mcu_misc_dcm_is_on(void)
360*e578702fSGuangjie Song {
361*e578702fSGuangjie Song return dcm_check_state(MCUSYS_PAR_WRAP_MP_CENTRAL_FABRIC_SUB_CHANNEL_CG,
362*e578702fSGuangjie Song MCUSYS_PAR_WRAP_MCU_MISC_DCM_REG0_MASK,
363*e578702fSGuangjie Song MCUSYS_PAR_WRAP_MCU_MISC_DCM_REG0_ON);
364*e578702fSGuangjie Song }
365*e578702fSGuangjie Song
dcm_mcusys_par_wrap_mcu_misc_dcm(bool on)366*e578702fSGuangjie Song void dcm_mcusys_par_wrap_mcu_misc_dcm(bool on)
367*e578702fSGuangjie Song {
368*e578702fSGuangjie Song if (on)
369*e578702fSGuangjie Song mmio_clrsetbits_32(MCUSYS_PAR_WRAP_MP_CENTRAL_FABRIC_SUB_CHANNEL_CG,
370*e578702fSGuangjie Song MCUSYS_PAR_WRAP_MCU_MISC_DCM_REG0_MASK,
371*e578702fSGuangjie Song MCUSYS_PAR_WRAP_MCU_MISC_DCM_REG0_ON);
372*e578702fSGuangjie Song else
373*e578702fSGuangjie Song mmio_clrsetbits_32(MCUSYS_PAR_WRAP_MP_CENTRAL_FABRIC_SUB_CHANNEL_CG,
374*e578702fSGuangjie Song MCUSYS_PAR_WRAP_MCU_MISC_DCM_REG0_MASK,
375*e578702fSGuangjie Song MCUSYS_PAR_WRAP_MCU_MISC_DCM_REG0_OFF);
376*e578702fSGuangjie Song }
377*e578702fSGuangjie Song
dcm_mcusys_par_wrap_mcu_dsu_acp_dcm_is_on(void)378*e578702fSGuangjie Song bool dcm_mcusys_par_wrap_mcu_dsu_acp_dcm_is_on(void)
379*e578702fSGuangjie Song {
380*e578702fSGuangjie Song return dcm_check_state(MCUSYS_PAR_WRAP_ACP_SLAVE_DCM_EN,
381*e578702fSGuangjie Song MCUSYS_PAR_WRAP_MCU_DSU_ACP_DCM_REG0_MASK,
382*e578702fSGuangjie Song MCUSYS_PAR_WRAP_MCU_DSU_ACP_DCM_REG0_ON);
383*e578702fSGuangjie Song }
384*e578702fSGuangjie Song
dcm_mcusys_par_wrap_mcu_dsu_acp_dcm(bool on)385*e578702fSGuangjie Song void dcm_mcusys_par_wrap_mcu_dsu_acp_dcm(bool on)
386*e578702fSGuangjie Song {
387*e578702fSGuangjie Song if (on)
388*e578702fSGuangjie Song mmio_clrsetbits_32(MCUSYS_PAR_WRAP_ACP_SLAVE_DCM_EN,
389*e578702fSGuangjie Song MCUSYS_PAR_WRAP_MCU_DSU_ACP_DCM_REG0_MASK,
390*e578702fSGuangjie Song MCUSYS_PAR_WRAP_MCU_DSU_ACP_DCM_REG0_ON);
391*e578702fSGuangjie Song else
392*e578702fSGuangjie Song mmio_clrsetbits_32(MCUSYS_PAR_WRAP_ACP_SLAVE_DCM_EN,
393*e578702fSGuangjie Song MCUSYS_PAR_WRAP_MCU_DSU_ACP_DCM_REG0_MASK,
394*e578702fSGuangjie Song MCUSYS_PAR_WRAP_MCU_DSU_ACP_DCM_REG0_OFF);
395*e578702fSGuangjie Song }
396*e578702fSGuangjie Song
dcm_mcusys_par_wrap_mcu_chi_mon_dcm_is_on(void)397*e578702fSGuangjie Song bool dcm_mcusys_par_wrap_mcu_chi_mon_dcm_is_on(void)
398*e578702fSGuangjie Song {
399*e578702fSGuangjie Song return dcm_check_state(MCUSYS_PAR_WRAP_ACP_SLAVE_DCM_EN,
400*e578702fSGuangjie Song MCUSYS_PAR_WRAP_MCU_CHI_MON_DCM_REG0_MASK,
401*e578702fSGuangjie Song MCUSYS_PAR_WRAP_MCU_CHI_MON_DCM_REG0_ON);
402*e578702fSGuangjie Song }
403*e578702fSGuangjie Song
dcm_mcusys_par_wrap_mcu_chi_mon_dcm(bool on)404*e578702fSGuangjie Song void dcm_mcusys_par_wrap_mcu_chi_mon_dcm(bool on)
405*e578702fSGuangjie Song {
406*e578702fSGuangjie Song if (on)
407*e578702fSGuangjie Song mmio_clrsetbits_32(MCUSYS_PAR_WRAP_ACP_SLAVE_DCM_EN,
408*e578702fSGuangjie Song MCUSYS_PAR_WRAP_MCU_CHI_MON_DCM_REG0_MASK,
409*e578702fSGuangjie Song MCUSYS_PAR_WRAP_MCU_CHI_MON_DCM_REG0_ON);
410*e578702fSGuangjie Song else
411*e578702fSGuangjie Song mmio_clrsetbits_32(MCUSYS_PAR_WRAP_ACP_SLAVE_DCM_EN,
412*e578702fSGuangjie Song MCUSYS_PAR_WRAP_MCU_CHI_MON_DCM_REG0_MASK,
413*e578702fSGuangjie Song MCUSYS_PAR_WRAP_MCU_CHI_MON_DCM_REG0_OFF);
414*e578702fSGuangjie Song }
415*e578702fSGuangjie Song
dcm_mcusys_par_wrap_mcu_gic_spi_dcm_is_on(void)416*e578702fSGuangjie Song bool dcm_mcusys_par_wrap_mcu_gic_spi_dcm_is_on(void)
417*e578702fSGuangjie Song {
418*e578702fSGuangjie Song return dcm_check_state(MCUSYS_PAR_WRAP_GIC_SPI_SLOW_CK_CFG,
419*e578702fSGuangjie Song MCUSYS_PAR_WRAP_MCU_GIC_SPI_DCM_REG0_MASK,
420*e578702fSGuangjie Song MCUSYS_PAR_WRAP_MCU_GIC_SPI_DCM_REG0_ON);
421*e578702fSGuangjie Song }
422*e578702fSGuangjie Song
dcm_mcusys_par_wrap_mcu_gic_spi_dcm(bool on)423*e578702fSGuangjie Song void dcm_mcusys_par_wrap_mcu_gic_spi_dcm(bool on)
424*e578702fSGuangjie Song {
425*e578702fSGuangjie Song if (on)
426*e578702fSGuangjie Song mmio_clrsetbits_32(MCUSYS_PAR_WRAP_GIC_SPI_SLOW_CK_CFG,
427*e578702fSGuangjie Song MCUSYS_PAR_WRAP_MCU_GIC_SPI_DCM_REG0_MASK,
428*e578702fSGuangjie Song MCUSYS_PAR_WRAP_MCU_GIC_SPI_DCM_REG0_ON);
429*e578702fSGuangjie Song else
430*e578702fSGuangjie Song mmio_clrsetbits_32(MCUSYS_PAR_WRAP_GIC_SPI_SLOW_CK_CFG,
431*e578702fSGuangjie Song MCUSYS_PAR_WRAP_MCU_GIC_SPI_DCM_REG0_MASK,
432*e578702fSGuangjie Song MCUSYS_PAR_WRAP_MCU_GIC_SPI_DCM_REG0_OFF);
433*e578702fSGuangjie Song }
434*e578702fSGuangjie Song
dcm_mcusys_par_wrap_mcu_ebg_dcm_is_on(void)435*e578702fSGuangjie Song bool dcm_mcusys_par_wrap_mcu_ebg_dcm_is_on(void)
436*e578702fSGuangjie Song {
437*e578702fSGuangjie Song return dcm_check_state(MCUSYS_PAR_WRAP_EBG_CKE_WRAP_FIFO_CFG,
438*e578702fSGuangjie Song MCUSYS_PAR_WRAP_MCU_EBG_DCM_REG0_MASK,
439*e578702fSGuangjie Song MCUSYS_PAR_WRAP_MCU_EBG_DCM_REG0_ON);
440*e578702fSGuangjie Song }
441*e578702fSGuangjie Song
dcm_mcusys_par_wrap_mcu_ebg_dcm(bool on)442*e578702fSGuangjie Song void dcm_mcusys_par_wrap_mcu_ebg_dcm(bool on)
443*e578702fSGuangjie Song {
444*e578702fSGuangjie Song if (on)
445*e578702fSGuangjie Song mmio_clrsetbits_32(MCUSYS_PAR_WRAP_EBG_CKE_WRAP_FIFO_CFG,
446*e578702fSGuangjie Song MCUSYS_PAR_WRAP_MCU_EBG_DCM_REG0_MASK,
447*e578702fSGuangjie Song MCUSYS_PAR_WRAP_MCU_EBG_DCM_REG0_ON);
448*e578702fSGuangjie Song else
449*e578702fSGuangjie Song mmio_clrsetbits_32(MCUSYS_PAR_WRAP_EBG_CKE_WRAP_FIFO_CFG,
450*e578702fSGuangjie Song MCUSYS_PAR_WRAP_MCU_EBG_DCM_REG0_MASK,
451*e578702fSGuangjie Song MCUSYS_PAR_WRAP_MCU_EBG_DCM_REG0_OFF);
452*e578702fSGuangjie Song }
453*e578702fSGuangjie Song
dcm_bcrm_apinfra_io_ctrl_ao_infra_bus_dcm_is_on(void)454*e578702fSGuangjie Song bool dcm_bcrm_apinfra_io_ctrl_ao_infra_bus_dcm_is_on(void)
455*e578702fSGuangjie Song {
456*e578702fSGuangjie Song return dcm_check_state(CLK_AXI_VDNR_DCM_TOP_APINFRA_IO_INTX_BUS_CTRL_0,
457*e578702fSGuangjie Song APINFRA_IO_CTRL_AO_INFRA_BUS_DCM_REG0_MASK,
458*e578702fSGuangjie Song APINFRA_IO_CTRL_AO_INFRA_BUS_DCM_REG0_ON);
459*e578702fSGuangjie Song }
460*e578702fSGuangjie Song
dcm_bcrm_apinfra_io_ctrl_ao_infra_bus_dcm(bool on)461*e578702fSGuangjie Song void dcm_bcrm_apinfra_io_ctrl_ao_infra_bus_dcm(bool on)
462*e578702fSGuangjie Song {
463*e578702fSGuangjie Song if (on)
464*e578702fSGuangjie Song mmio_clrsetbits_32(CLK_AXI_VDNR_DCM_TOP_APINFRA_IO_INTX_BUS_CTRL_0,
465*e578702fSGuangjie Song APINFRA_IO_CTRL_AO_INFRA_BUS_DCM_REG0_MASK,
466*e578702fSGuangjie Song APINFRA_IO_CTRL_AO_INFRA_BUS_DCM_REG0_ON);
467*e578702fSGuangjie Song else
468*e578702fSGuangjie Song mmio_clrsetbits_32(CLK_AXI_VDNR_DCM_TOP_APINFRA_IO_INTX_BUS_CTRL_0,
469*e578702fSGuangjie Song APINFRA_IO_CTRL_AO_INFRA_BUS_DCM_REG0_MASK,
470*e578702fSGuangjie Song APINFRA_IO_CTRL_AO_INFRA_BUS_DCM_REG0_OFF);
471*e578702fSGuangjie Song }
472*e578702fSGuangjie Song
dcm_bcrm_apinfra_io_noc_ao_infra_bus_dcm_is_on(void)473*e578702fSGuangjie Song bool dcm_bcrm_apinfra_io_noc_ao_infra_bus_dcm_is_on(void)
474*e578702fSGuangjie Song {
475*e578702fSGuangjie Song return dcm_check_state(CLK_IO_NOC_VDNR_DCM_TOP_APINFRA_IO_INTF_PAR_BUS_CTRL_0,
476*e578702fSGuangjie Song APINFRA_IO_NOC_AO_INFRA_BUS_DCM_REG0_MASK,
477*e578702fSGuangjie Song APINFRA_IO_NOC_AO_INFRA_BUS_DCM_REG0_ON);
478*e578702fSGuangjie Song }
479*e578702fSGuangjie Song
dcm_bcrm_apinfra_io_noc_ao_infra_bus_dcm(bool on)480*e578702fSGuangjie Song void dcm_bcrm_apinfra_io_noc_ao_infra_bus_dcm(bool on)
481*e578702fSGuangjie Song {
482*e578702fSGuangjie Song if (on)
483*e578702fSGuangjie Song mmio_clrsetbits_32(CLK_IO_NOC_VDNR_DCM_TOP_APINFRA_IO_INTF_PAR_BUS_CTRL_0,
484*e578702fSGuangjie Song APINFRA_IO_NOC_AO_INFRA_BUS_DCM_REG0_MASK,
485*e578702fSGuangjie Song APINFRA_IO_NOC_AO_INFRA_BUS_DCM_REG0_ON);
486*e578702fSGuangjie Song else
487*e578702fSGuangjie Song mmio_clrsetbits_32(CLK_IO_NOC_VDNR_DCM_TOP_APINFRA_IO_INTF_PAR_BUS_CTRL_0,
488*e578702fSGuangjie Song APINFRA_IO_NOC_AO_INFRA_BUS_DCM_REG0_MASK,
489*e578702fSGuangjie Song APINFRA_IO_NOC_AO_INFRA_BUS_DCM_REG0_OFF);
490*e578702fSGuangjie Song }
491*e578702fSGuangjie Song
dcm_bcrm_apinfra_mem_intf_noc_ao_infra_bus_dcm_is_on(void)492*e578702fSGuangjie Song bool dcm_bcrm_apinfra_mem_intf_noc_ao_infra_bus_dcm_is_on(void)
493*e578702fSGuangjie Song {
494*e578702fSGuangjie Song return dcm_check_state(VDNR_DCM_TOP_APINFRA_MEM_INTF_PAR_BUS_CTRL_0,
495*e578702fSGuangjie Song APINFRA_MEM_INTF_NOC_AO_INFRA_BUS_DCM_REG0_MASK,
496*e578702fSGuangjie Song APINFRA_MEM_INTF_NOC_AO_INFRA_BUS_DCM_REG0_ON);
497*e578702fSGuangjie Song }
498*e578702fSGuangjie Song
dcm_bcrm_apinfra_mem_intf_noc_ao_infra_bus_dcm(bool on)499*e578702fSGuangjie Song void dcm_bcrm_apinfra_mem_intf_noc_ao_infra_bus_dcm(bool on)
500*e578702fSGuangjie Song {
501*e578702fSGuangjie Song if (on)
502*e578702fSGuangjie Song mmio_clrsetbits_32(VDNR_DCM_TOP_APINFRA_MEM_INTF_PAR_BUS_CTRL_0,
503*e578702fSGuangjie Song APINFRA_MEM_INTF_NOC_AO_INFRA_BUS_DCM_REG0_MASK,
504*e578702fSGuangjie Song APINFRA_MEM_INTF_NOC_AO_INFRA_BUS_DCM_REG0_ON);
505*e578702fSGuangjie Song else
506*e578702fSGuangjie Song mmio_clrsetbits_32(VDNR_DCM_TOP_APINFRA_MEM_INTF_PAR_BUS_CTRL_0,
507*e578702fSGuangjie Song APINFRA_MEM_INTF_NOC_AO_INFRA_BUS_DCM_REG0_MASK,
508*e578702fSGuangjie Song APINFRA_MEM_INTF_NOC_AO_INFRA_BUS_DCM_REG0_OFF);
509*e578702fSGuangjie Song }
510*e578702fSGuangjie Song
dcm_bcrm_apinfra_mem_ctrl_ao_infra_bus_dcm_is_on(void)511*e578702fSGuangjie Song bool dcm_bcrm_apinfra_mem_ctrl_ao_infra_bus_dcm_is_on(void)
512*e578702fSGuangjie Song {
513*e578702fSGuangjie Song bool ret = true;
514*e578702fSGuangjie Song
515*e578702fSGuangjie Song ret &= dcm_check_state(CLK_FMEM_SUB_CFG_VDNR_DCM_TOP_APINFRA_MEM_INTX_BUS_CTRL_0,
516*e578702fSGuangjie Song APINFRA_MEM_CTRL_AO_INFRA_BUS_DCM_REG0_MASK,
517*e578702fSGuangjie Song APINFRA_MEM_CTRL_AO_INFRA_BUS_DCM_REG0_ON);
518*e578702fSGuangjie Song ret &= dcm_check_state(CLK_FMEM_SUB_VDNR_DCM_TOP_APINFRA_MEM_INTX_BUS_CTRL_0,
519*e578702fSGuangjie Song APINFRA_MEM_CTRL_AO_INFRA_BUS_DCM_REG1_MASK,
520*e578702fSGuangjie Song APINFRA_MEM_CTRL_AO_INFRA_BUS_DCM_REG1_ON);
521*e578702fSGuangjie Song ret &= dcm_check_state(CLK_FMEM_SUB_VDNR_DCM_TOP_APINFRA_MEM_INTX_BUS_CTRL_1,
522*e578702fSGuangjie Song APINFRA_MEM_CTRL_AO_INFRA_BUS_DCM_REG2_MASK,
523*e578702fSGuangjie Song APINFRA_MEM_CTRL_AO_INFRA_BUS_DCM_REG2_ON);
524*e578702fSGuangjie Song ret &= dcm_check_state(CLK_FMEM_SUB_VDNR_DCM_TOP_APINFRA_MEM_INTX_BUS_CTRL_2,
525*e578702fSGuangjie Song APINFRA_MEM_CTRL_AO_INFRA_BUS_DCM_REG3_MASK,
526*e578702fSGuangjie Song APINFRA_MEM_CTRL_AO_INFRA_BUS_DCM_REG3_ON);
527*e578702fSGuangjie Song ret &= dcm_check_state(CLK_FMEM_SUB_VDNR_DCM_TOP_APINFRA_MEM_INTX_BUS_CTRL_3,
528*e578702fSGuangjie Song APINFRA_MEM_CTRL_AO_INFRA_BUS_DCM_REG4_MASK,
529*e578702fSGuangjie Song APINFRA_MEM_CTRL_AO_INFRA_BUS_DCM_REG4_ON);
530*e578702fSGuangjie Song ret &= dcm_check_state(CLK_FMEM_SUB_VDNR_DCM_TOP_APINFRA_MEM_INTX_BUS_CTRL_4,
531*e578702fSGuangjie Song APINFRA_MEM_CTRL_AO_INFRA_BUS_DCM_REG5_MASK,
532*e578702fSGuangjie Song APINFRA_MEM_CTRL_AO_INFRA_BUS_DCM_REG5_ON);
533*e578702fSGuangjie Song ret &= dcm_check_state(CLK_FMEM_SUB_VDNR_DCM_TOP_APINFRA_MEM_INTX_BUS_CTRL_5,
534*e578702fSGuangjie Song APINFRA_MEM_CTRL_AO_INFRA_BUS_DCM_REG6_MASK,
535*e578702fSGuangjie Song APINFRA_MEM_CTRL_AO_INFRA_BUS_DCM_REG6_ON);
536*e578702fSGuangjie Song
537*e578702fSGuangjie Song return ret;
538*e578702fSGuangjie Song }
539*e578702fSGuangjie Song
dcm_bcrm_apinfra_mem_ctrl_ao_infra_bus_dcm(bool on)540*e578702fSGuangjie Song void dcm_bcrm_apinfra_mem_ctrl_ao_infra_bus_dcm(bool on)
541*e578702fSGuangjie Song {
542*e578702fSGuangjie Song if (on) {
543*e578702fSGuangjie Song mmio_clrsetbits_32(CLK_FMEM_SUB_CFG_VDNR_DCM_TOP_APINFRA_MEM_INTX_BUS_CTRL_0,
544*e578702fSGuangjie Song APINFRA_MEM_CTRL_AO_INFRA_BUS_DCM_REG0_MASK,
545*e578702fSGuangjie Song APINFRA_MEM_CTRL_AO_INFRA_BUS_DCM_REG0_ON);
546*e578702fSGuangjie Song mmio_clrsetbits_32(CLK_FMEM_SUB_VDNR_DCM_TOP_APINFRA_MEM_INTX_BUS_CTRL_0,
547*e578702fSGuangjie Song APINFRA_MEM_CTRL_AO_INFRA_BUS_DCM_REG1_MASK,
548*e578702fSGuangjie Song APINFRA_MEM_CTRL_AO_INFRA_BUS_DCM_REG1_ON);
549*e578702fSGuangjie Song mmio_clrsetbits_32(CLK_FMEM_SUB_VDNR_DCM_TOP_APINFRA_MEM_INTX_BUS_CTRL_1,
550*e578702fSGuangjie Song APINFRA_MEM_CTRL_AO_INFRA_BUS_DCM_REG2_MASK,
551*e578702fSGuangjie Song APINFRA_MEM_CTRL_AO_INFRA_BUS_DCM_REG2_ON);
552*e578702fSGuangjie Song mmio_clrsetbits_32(CLK_FMEM_SUB_VDNR_DCM_TOP_APINFRA_MEM_INTX_BUS_CTRL_2,
553*e578702fSGuangjie Song APINFRA_MEM_CTRL_AO_INFRA_BUS_DCM_REG3_MASK,
554*e578702fSGuangjie Song APINFRA_MEM_CTRL_AO_INFRA_BUS_DCM_REG3_ON);
555*e578702fSGuangjie Song mmio_clrsetbits_32(CLK_FMEM_SUB_VDNR_DCM_TOP_APINFRA_MEM_INTX_BUS_CTRL_3,
556*e578702fSGuangjie Song APINFRA_MEM_CTRL_AO_INFRA_BUS_DCM_REG4_MASK,
557*e578702fSGuangjie Song APINFRA_MEM_CTRL_AO_INFRA_BUS_DCM_REG4_ON);
558*e578702fSGuangjie Song mmio_clrsetbits_32(CLK_FMEM_SUB_VDNR_DCM_TOP_APINFRA_MEM_INTX_BUS_CTRL_4,
559*e578702fSGuangjie Song APINFRA_MEM_CTRL_AO_INFRA_BUS_DCM_REG5_MASK,
560*e578702fSGuangjie Song APINFRA_MEM_CTRL_AO_INFRA_BUS_DCM_REG5_ON);
561*e578702fSGuangjie Song mmio_clrsetbits_32(CLK_FMEM_SUB_VDNR_DCM_TOP_APINFRA_MEM_INTX_BUS_CTRL_5,
562*e578702fSGuangjie Song APINFRA_MEM_CTRL_AO_INFRA_BUS_DCM_REG6_MASK,
563*e578702fSGuangjie Song APINFRA_MEM_CTRL_AO_INFRA_BUS_DCM_REG6_ON);
564*e578702fSGuangjie Song } else {
565*e578702fSGuangjie Song mmio_clrsetbits_32(CLK_FMEM_SUB_CFG_VDNR_DCM_TOP_APINFRA_MEM_INTX_BUS_CTRL_0,
566*e578702fSGuangjie Song APINFRA_MEM_CTRL_AO_INFRA_BUS_DCM_REG0_MASK,
567*e578702fSGuangjie Song APINFRA_MEM_CTRL_AO_INFRA_BUS_DCM_REG0_OFF);
568*e578702fSGuangjie Song mmio_clrsetbits_32(CLK_FMEM_SUB_VDNR_DCM_TOP_APINFRA_MEM_INTX_BUS_CTRL_0,
569*e578702fSGuangjie Song APINFRA_MEM_CTRL_AO_INFRA_BUS_DCM_REG1_MASK,
570*e578702fSGuangjie Song APINFRA_MEM_CTRL_AO_INFRA_BUS_DCM_REG1_OFF);
571*e578702fSGuangjie Song mmio_clrsetbits_32(CLK_FMEM_SUB_VDNR_DCM_TOP_APINFRA_MEM_INTX_BUS_CTRL_1,
572*e578702fSGuangjie Song APINFRA_MEM_CTRL_AO_INFRA_BUS_DCM_REG2_MASK,
573*e578702fSGuangjie Song APINFRA_MEM_CTRL_AO_INFRA_BUS_DCM_REG2_OFF);
574*e578702fSGuangjie Song mmio_clrsetbits_32(CLK_FMEM_SUB_VDNR_DCM_TOP_APINFRA_MEM_INTX_BUS_CTRL_2,
575*e578702fSGuangjie Song APINFRA_MEM_CTRL_AO_INFRA_BUS_DCM_REG3_MASK,
576*e578702fSGuangjie Song APINFRA_MEM_CTRL_AO_INFRA_BUS_DCM_REG3_OFF);
577*e578702fSGuangjie Song mmio_clrsetbits_32(CLK_FMEM_SUB_VDNR_DCM_TOP_APINFRA_MEM_INTX_BUS_CTRL_3,
578*e578702fSGuangjie Song APINFRA_MEM_CTRL_AO_INFRA_BUS_DCM_REG4_MASK,
579*e578702fSGuangjie Song APINFRA_MEM_CTRL_AO_INFRA_BUS_DCM_REG4_OFF);
580*e578702fSGuangjie Song mmio_clrsetbits_32(CLK_FMEM_SUB_VDNR_DCM_TOP_APINFRA_MEM_INTX_BUS_CTRL_4,
581*e578702fSGuangjie Song APINFRA_MEM_CTRL_AO_INFRA_BUS_DCM_REG5_MASK,
582*e578702fSGuangjie Song APINFRA_MEM_CTRL_AO_INFRA_BUS_DCM_REG5_OFF);
583*e578702fSGuangjie Song mmio_clrsetbits_32(CLK_FMEM_SUB_VDNR_DCM_TOP_APINFRA_MEM_INTX_BUS_CTRL_5,
584*e578702fSGuangjie Song APINFRA_MEM_CTRL_AO_INFRA_BUS_DCM_REG6_MASK,
585*e578702fSGuangjie Song APINFRA_MEM_CTRL_AO_INFRA_BUS_DCM_REG6_OFF);
586*e578702fSGuangjie Song }
587*e578702fSGuangjie Song }
588*e578702fSGuangjie Song
dcm_peri_ao_bcrm_peri_bus1_dcm_is_on(void)589*e578702fSGuangjie Song bool dcm_peri_ao_bcrm_peri_bus1_dcm_is_on(void)
590*e578702fSGuangjie Song {
591*e578702fSGuangjie Song bool ret = true;
592*e578702fSGuangjie Song
593*e578702fSGuangjie Song ret &= dcm_check_state(VDNR_DCM_TOP_PERI_PAR_BUS_CTRL1_0,
594*e578702fSGuangjie Song PERI_AO_BCRM_PERI_BUS_DCM_REG0_MASK,
595*e578702fSGuangjie Song PERI_AO_BCRM_PERI_BUS_DCM_REG0_ON);
596*e578702fSGuangjie Song ret &= dcm_check_state(VDNR_DCM_TOP_PERI_PAR_BUS_CTRL1_1,
597*e578702fSGuangjie Song PERI_AO_BCRM_PERI_BUS_DCM_REG1_MASK,
598*e578702fSGuangjie Song PERI_AO_BCRM_PERI_BUS_DCM_REG1_ON);
599*e578702fSGuangjie Song ret &= dcm_check_state(VDNR_DCM_TOP_PERI_PAR_BUS_CTRL1_2,
600*e578702fSGuangjie Song PERI_AO_BCRM_PERI_BUS_DCM_REG2_MASK,
601*e578702fSGuangjie Song PERI_AO_BCRM_PERI_BUS_DCM_REG2_ON);
602*e578702fSGuangjie Song ret &= dcm_check_state(VDNR_DCM_TOP_PERI_PAR_BUS_CTRL1_3,
603*e578702fSGuangjie Song PERI_AO_BCRM_PERI_BUS_DCM_REG3_MASK,
604*e578702fSGuangjie Song PERI_AO_BCRM_PERI_BUS_DCM_REG3_ON);
605*e578702fSGuangjie Song
606*e578702fSGuangjie Song return ret;
607*e578702fSGuangjie Song }
608*e578702fSGuangjie Song
dcm_peri_ao_bcrm_peri_bus1_dcm(bool on)609*e578702fSGuangjie Song void dcm_peri_ao_bcrm_peri_bus1_dcm(bool on)
610*e578702fSGuangjie Song {
611*e578702fSGuangjie Song if (on) {
612*e578702fSGuangjie Song mmio_clrsetbits_32(VDNR_DCM_TOP_PERI_PAR_BUS_CTRL1_0,
613*e578702fSGuangjie Song PERI_AO_BCRM_PERI_BUS_DCM_REG0_MASK,
614*e578702fSGuangjie Song PERI_AO_BCRM_PERI_BUS_DCM_REG0_ON);
615*e578702fSGuangjie Song mmio_clrsetbits_32(VDNR_DCM_TOP_PERI_PAR_BUS_CTRL1_1,
616*e578702fSGuangjie Song PERI_AO_BCRM_PERI_BUS_DCM_REG1_MASK,
617*e578702fSGuangjie Song PERI_AO_BCRM_PERI_BUS_DCM_REG1_ON);
618*e578702fSGuangjie Song mmio_clrsetbits_32(VDNR_DCM_TOP_PERI_PAR_BUS_CTRL1_2,
619*e578702fSGuangjie Song PERI_AO_BCRM_PERI_BUS_DCM_REG2_MASK,
620*e578702fSGuangjie Song PERI_AO_BCRM_PERI_BUS_DCM_REG2_ON);
621*e578702fSGuangjie Song mmio_clrsetbits_32(VDNR_DCM_TOP_PERI_PAR_BUS_CTRL1_3,
622*e578702fSGuangjie Song PERI_AO_BCRM_PERI_BUS_DCM_REG3_MASK,
623*e578702fSGuangjie Song PERI_AO_BCRM_PERI_BUS_DCM_REG3_ON);
624*e578702fSGuangjie Song } else {
625*e578702fSGuangjie Song mmio_clrsetbits_32(VDNR_DCM_TOP_PERI_PAR_BUS_CTRL1_0,
626*e578702fSGuangjie Song PERI_AO_BCRM_PERI_BUS_DCM_REG0_MASK,
627*e578702fSGuangjie Song PERI_AO_BCRM_PERI_BUS_DCM_REG0_OFF);
628*e578702fSGuangjie Song mmio_clrsetbits_32(VDNR_DCM_TOP_PERI_PAR_BUS_CTRL1_1,
629*e578702fSGuangjie Song PERI_AO_BCRM_PERI_BUS_DCM_REG1_MASK,
630*e578702fSGuangjie Song PERI_AO_BCRM_PERI_BUS_DCM_REG1_OFF);
631*e578702fSGuangjie Song mmio_clrsetbits_32(VDNR_DCM_TOP_PERI_PAR_BUS_CTRL1_2,
632*e578702fSGuangjie Song PERI_AO_BCRM_PERI_BUS_DCM_REG2_MASK,
633*e578702fSGuangjie Song PERI_AO_BCRM_PERI_BUS_DCM_REG2_OFF);
634*e578702fSGuangjie Song mmio_clrsetbits_32(VDNR_DCM_TOP_PERI_PAR_BUS_CTRL1_3,
635*e578702fSGuangjie Song PERI_AO_BCRM_PERI_BUS_DCM_REG3_MASK,
636*e578702fSGuangjie Song PERI_AO_BCRM_PERI_BUS_DCM_REG3_OFF);
637*e578702fSGuangjie Song }
638*e578702fSGuangjie Song }
639*e578702fSGuangjie Song
dcm_peri_ao_bcrm_peri_bus2_dcm_is_on(void)640*e578702fSGuangjie Song bool dcm_peri_ao_bcrm_peri_bus2_dcm_is_on(void)
641*e578702fSGuangjie Song {
642*e578702fSGuangjie Song bool ret = true;
643*e578702fSGuangjie Song
644*e578702fSGuangjie Song ret &= dcm_check_state(VDNR_DCM_TOP_PERI_PAR_BUS_CTRL2_0,
645*e578702fSGuangjie Song PERI_AO_BCRM_PERI_BUS_DCM_REG0_MASK,
646*e578702fSGuangjie Song PERI_AO_BCRM_PERI_BUS_DCM_REG0_ON);
647*e578702fSGuangjie Song ret &= dcm_check_state(VDNR_DCM_TOP_PERI_PAR_BUS_CTRL2_1,
648*e578702fSGuangjie Song PERI_AO_BCRM_PERI_BUS_DCM_REG1_MASK,
649*e578702fSGuangjie Song PERI_AO_BCRM_PERI_BUS_DCM_REG1_ON);
650*e578702fSGuangjie Song ret &= dcm_check_state(VDNR_DCM_TOP_PERI_PAR_BUS_CTRL2_2,
651*e578702fSGuangjie Song PERI_AO_BCRM_PERI_BUS_DCM_REG2_MASK,
652*e578702fSGuangjie Song PERI_AO_BCRM_PERI_BUS_DCM_REG2_ON);
653*e578702fSGuangjie Song ret &= dcm_check_state(VDNR_DCM_TOP_PERI_PAR_BUS_CTRL2_3,
654*e578702fSGuangjie Song PERI_AO_BCRM_PERI_BUS_DCM_REG3_MASK,
655*e578702fSGuangjie Song PERI_AO_BCRM_PERI_BUS_DCM_REG3_ON);
656*e578702fSGuangjie Song
657*e578702fSGuangjie Song return ret;
658*e578702fSGuangjie Song }
659*e578702fSGuangjie Song
dcm_peri_ao_bcrm_peri_bus2_dcm(bool on)660*e578702fSGuangjie Song void dcm_peri_ao_bcrm_peri_bus2_dcm(bool on)
661*e578702fSGuangjie Song {
662*e578702fSGuangjie Song if (on) {
663*e578702fSGuangjie Song mmio_clrsetbits_32(VDNR_DCM_TOP_PERI_PAR_BUS_CTRL2_0,
664*e578702fSGuangjie Song PERI_AO_BCRM_PERI_BUS_DCM_REG0_MASK,
665*e578702fSGuangjie Song PERI_AO_BCRM_PERI_BUS_DCM_REG0_ON);
666*e578702fSGuangjie Song mmio_clrsetbits_32(VDNR_DCM_TOP_PERI_PAR_BUS_CTRL2_1,
667*e578702fSGuangjie Song PERI_AO_BCRM_PERI_BUS_DCM_REG1_MASK,
668*e578702fSGuangjie Song PERI_AO_BCRM_PERI_BUS_DCM_REG1_ON);
669*e578702fSGuangjie Song mmio_clrsetbits_32(VDNR_DCM_TOP_PERI_PAR_BUS_CTRL2_2,
670*e578702fSGuangjie Song PERI_AO_BCRM_PERI_BUS_DCM_REG2_MASK,
671*e578702fSGuangjie Song PERI_AO_BCRM_PERI_BUS_DCM_REG2_ON);
672*e578702fSGuangjie Song mmio_clrsetbits_32(VDNR_DCM_TOP_PERI_PAR_BUS_CTRL2_3,
673*e578702fSGuangjie Song PERI_AO_BCRM_PERI_BUS_DCM_REG3_MASK,
674*e578702fSGuangjie Song PERI_AO_BCRM_PERI_BUS_DCM_REG3_ON);
675*e578702fSGuangjie Song } else {
676*e578702fSGuangjie Song mmio_clrsetbits_32(VDNR_DCM_TOP_PERI_PAR_BUS_CTRL2_0,
677*e578702fSGuangjie Song PERI_AO_BCRM_PERI_BUS_DCM_REG0_MASK,
678*e578702fSGuangjie Song PERI_AO_BCRM_PERI_BUS_DCM_REG0_OFF);
679*e578702fSGuangjie Song mmio_clrsetbits_32(VDNR_DCM_TOP_PERI_PAR_BUS_CTRL2_1,
680*e578702fSGuangjie Song PERI_AO_BCRM_PERI_BUS_DCM_REG1_MASK,
681*e578702fSGuangjie Song PERI_AO_BCRM_PERI_BUS_DCM_REG1_OFF);
682*e578702fSGuangjie Song mmio_clrsetbits_32(VDNR_DCM_TOP_PERI_PAR_BUS_CTRL2_2,
683*e578702fSGuangjie Song PERI_AO_BCRM_PERI_BUS_DCM_REG2_MASK,
684*e578702fSGuangjie Song PERI_AO_BCRM_PERI_BUS_DCM_REG2_OFF);
685*e578702fSGuangjie Song mmio_clrsetbits_32(VDNR_DCM_TOP_PERI_PAR_BUS_CTRL2_3,
686*e578702fSGuangjie Song PERI_AO_BCRM_PERI_BUS_DCM_REG3_MASK,
687*e578702fSGuangjie Song PERI_AO_BCRM_PERI_BUS_DCM_REG3_OFF);
688*e578702fSGuangjie Song }
689*e578702fSGuangjie Song }
690*e578702fSGuangjie Song
dcm_vlp_ao_bcrm_vlp_bus_dcm_is_on(void)691*e578702fSGuangjie Song bool dcm_vlp_ao_bcrm_vlp_bus_dcm_is_on(void)
692*e578702fSGuangjie Song {
693*e578702fSGuangjie Song return dcm_check_state(VDNR_DCM_TOP_VLP_PAR_BUS_TOP_CTRL_0,
694*e578702fSGuangjie Song VLP_AO_BCRM_VLP_BUS_DCM_REG0_MASK,
695*e578702fSGuangjie Song VLP_AO_BCRM_VLP_BUS_DCM_REG0_ON);
696*e578702fSGuangjie Song }
697*e578702fSGuangjie Song
dcm_vlp_ao_bcrm_vlp_bus_dcm(bool on)698*e578702fSGuangjie Song void dcm_vlp_ao_bcrm_vlp_bus_dcm(bool on)
699*e578702fSGuangjie Song {
700*e578702fSGuangjie Song if (on)
701*e578702fSGuangjie Song mmio_clrsetbits_32(VDNR_DCM_TOP_VLP_PAR_BUS_TOP_CTRL_0,
702*e578702fSGuangjie Song VLP_AO_BCRM_VLP_BUS_DCM_REG0_MASK,
703*e578702fSGuangjie Song VLP_AO_BCRM_VLP_BUS_DCM_REG0_ON);
704*e578702fSGuangjie Song else
705*e578702fSGuangjie Song mmio_clrsetbits_32(VDNR_DCM_TOP_VLP_PAR_BUS_TOP_CTRL_0,
706*e578702fSGuangjie Song VLP_AO_BCRM_VLP_BUS_DCM_REG0_MASK,
707*e578702fSGuangjie Song VLP_AO_BCRM_VLP_BUS_DCM_REG0_OFF);
708*e578702fSGuangjie Song }
709