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