1*e2ad626fSUlf Hansson /* SPDX-License-Identifier: GPL-2.0-only */ 2*e2ad626fSUlf Hansson /* 3*e2ad626fSUlf Hansson * Copyright (c) 2022 MediaTek Inc. 4*e2ad626fSUlf Hansson * Author: Garmin Chang <garmin.chang@mediatek.com> 5*e2ad626fSUlf Hansson */ 6*e2ad626fSUlf Hansson 7*e2ad626fSUlf Hansson #ifndef __SOC_MEDIATEK_MT8188_PM_DOMAINS_H 8*e2ad626fSUlf Hansson #define __SOC_MEDIATEK_MT8188_PM_DOMAINS_H 9*e2ad626fSUlf Hansson 10*e2ad626fSUlf Hansson #include "mtk-pm-domains.h" 11*e2ad626fSUlf Hansson #include <dt-bindings/power/mediatek,mt8188-power.h> 12*e2ad626fSUlf Hansson 13*e2ad626fSUlf Hansson /* 14*e2ad626fSUlf Hansson * MT8188 power domain support 15*e2ad626fSUlf Hansson */ 16*e2ad626fSUlf Hansson 17*e2ad626fSUlf Hansson static const struct scpsys_domain_data scpsys_domain_data_mt8188[] = { 18*e2ad626fSUlf Hansson [MT8188_POWER_DOMAIN_MFG0] = { 19*e2ad626fSUlf Hansson .name = "mfg0", 20*e2ad626fSUlf Hansson .sta_mask = BIT(1), 21*e2ad626fSUlf Hansson .ctl_offs = 0x300, 22*e2ad626fSUlf Hansson .pwr_sta_offs = 0x174, 23*e2ad626fSUlf Hansson .pwr_sta2nd_offs = 0x178, 24*e2ad626fSUlf Hansson .sram_pdn_bits = BIT(8), 25*e2ad626fSUlf Hansson .sram_pdn_ack_bits = BIT(12), 26*e2ad626fSUlf Hansson .caps = MTK_SCPD_KEEP_DEFAULT_OFF | MTK_SCPD_DOMAIN_SUPPLY, 27*e2ad626fSUlf Hansson }, 28*e2ad626fSUlf Hansson [MT8188_POWER_DOMAIN_MFG1] = { 29*e2ad626fSUlf Hansson .name = "mfg1", 30*e2ad626fSUlf Hansson .sta_mask = BIT(2), 31*e2ad626fSUlf Hansson .ctl_offs = 0x304, 32*e2ad626fSUlf Hansson .pwr_sta_offs = 0x174, 33*e2ad626fSUlf Hansson .pwr_sta2nd_offs = 0x178, 34*e2ad626fSUlf Hansson .sram_pdn_bits = BIT(8), 35*e2ad626fSUlf Hansson .sram_pdn_ack_bits = BIT(12), 36*e2ad626fSUlf Hansson .bp_infracfg = { 37*e2ad626fSUlf Hansson BUS_PROT_WR(MT8188_TOP_AXI_PROT_EN_MFG1_STEP1, 38*e2ad626fSUlf Hansson MT8188_TOP_AXI_PROT_EN_SET, 39*e2ad626fSUlf Hansson MT8188_TOP_AXI_PROT_EN_CLR, 40*e2ad626fSUlf Hansson MT8188_TOP_AXI_PROT_EN_STA), 41*e2ad626fSUlf Hansson BUS_PROT_WR(MT8188_TOP_AXI_PROT_EN_2_MFG1_STEP2, 42*e2ad626fSUlf Hansson MT8188_TOP_AXI_PROT_EN_2_SET, 43*e2ad626fSUlf Hansson MT8188_TOP_AXI_PROT_EN_2_CLR, 44*e2ad626fSUlf Hansson MT8188_TOP_AXI_PROT_EN_2_STA), 45*e2ad626fSUlf Hansson BUS_PROT_WR(MT8188_TOP_AXI_PROT_EN_1_MFG1_STEP3, 46*e2ad626fSUlf Hansson MT8188_TOP_AXI_PROT_EN_1_SET, 47*e2ad626fSUlf Hansson MT8188_TOP_AXI_PROT_EN_1_CLR, 48*e2ad626fSUlf Hansson MT8188_TOP_AXI_PROT_EN_1_STA), 49*e2ad626fSUlf Hansson BUS_PROT_WR(MT8188_TOP_AXI_PROT_EN_2_MFG1_STEP4, 50*e2ad626fSUlf Hansson MT8188_TOP_AXI_PROT_EN_2_SET, 51*e2ad626fSUlf Hansson MT8188_TOP_AXI_PROT_EN_2_CLR, 52*e2ad626fSUlf Hansson MT8188_TOP_AXI_PROT_EN_2_STA), 53*e2ad626fSUlf Hansson BUS_PROT_WR(MT8188_TOP_AXI_PROT_EN_MFG1_STEP5, 54*e2ad626fSUlf Hansson MT8188_TOP_AXI_PROT_EN_SET, 55*e2ad626fSUlf Hansson MT8188_TOP_AXI_PROT_EN_CLR, 56*e2ad626fSUlf Hansson MT8188_TOP_AXI_PROT_EN_STA), 57*e2ad626fSUlf Hansson BUS_PROT_WR(MT8188_TOP_AXI_PROT_EN_SUB_INFRA_VDNR_MFG1_STEP6, 58*e2ad626fSUlf Hansson MT8188_TOP_AXI_PROT_EN_SUB_INFRA_VDNR_SET, 59*e2ad626fSUlf Hansson MT8188_TOP_AXI_PROT_EN_SUB_INFRA_VDNR_CLR, 60*e2ad626fSUlf Hansson MT8188_TOP_AXI_PROT_EN_SUB_INFRA_VDNR_STA), 61*e2ad626fSUlf Hansson }, 62*e2ad626fSUlf Hansson .caps = MTK_SCPD_KEEP_DEFAULT_OFF | MTK_SCPD_DOMAIN_SUPPLY, 63*e2ad626fSUlf Hansson }, 64*e2ad626fSUlf Hansson [MT8188_POWER_DOMAIN_MFG2] = { 65*e2ad626fSUlf Hansson .name = "mfg2", 66*e2ad626fSUlf Hansson .sta_mask = BIT(3), 67*e2ad626fSUlf Hansson .ctl_offs = 0x308, 68*e2ad626fSUlf Hansson .pwr_sta_offs = 0x174, 69*e2ad626fSUlf Hansson .pwr_sta2nd_offs = 0x178, 70*e2ad626fSUlf Hansson .sram_pdn_bits = BIT(8), 71*e2ad626fSUlf Hansson .sram_pdn_ack_bits = BIT(12), 72*e2ad626fSUlf Hansson .caps = MTK_SCPD_KEEP_DEFAULT_OFF, 73*e2ad626fSUlf Hansson }, 74*e2ad626fSUlf Hansson [MT8188_POWER_DOMAIN_MFG3] = { 75*e2ad626fSUlf Hansson .name = "mfg3", 76*e2ad626fSUlf Hansson .sta_mask = BIT(4), 77*e2ad626fSUlf Hansson .ctl_offs = 0x30C, 78*e2ad626fSUlf Hansson .pwr_sta_offs = 0x174, 79*e2ad626fSUlf Hansson .pwr_sta2nd_offs = 0x178, 80*e2ad626fSUlf Hansson .sram_pdn_bits = BIT(8), 81*e2ad626fSUlf Hansson .sram_pdn_ack_bits = BIT(12), 82*e2ad626fSUlf Hansson .caps = MTK_SCPD_KEEP_DEFAULT_OFF, 83*e2ad626fSUlf Hansson }, 84*e2ad626fSUlf Hansson [MT8188_POWER_DOMAIN_MFG4] = { 85*e2ad626fSUlf Hansson .name = "mfg4", 86*e2ad626fSUlf Hansson .sta_mask = BIT(5), 87*e2ad626fSUlf Hansson .ctl_offs = 0x310, 88*e2ad626fSUlf Hansson .pwr_sta_offs = 0x174, 89*e2ad626fSUlf Hansson .pwr_sta2nd_offs = 0x178, 90*e2ad626fSUlf Hansson .sram_pdn_bits = BIT(8), 91*e2ad626fSUlf Hansson .sram_pdn_ack_bits = BIT(12), 92*e2ad626fSUlf Hansson .caps = MTK_SCPD_KEEP_DEFAULT_OFF, 93*e2ad626fSUlf Hansson }, 94*e2ad626fSUlf Hansson [MT8188_POWER_DOMAIN_PEXTP_MAC_P0] = { 95*e2ad626fSUlf Hansson .name = "pextp_mac_p0", 96*e2ad626fSUlf Hansson .sta_mask = BIT(10), 97*e2ad626fSUlf Hansson .ctl_offs = 0x324, 98*e2ad626fSUlf Hansson .pwr_sta_offs = 0x174, 99*e2ad626fSUlf Hansson .pwr_sta2nd_offs = 0x178, 100*e2ad626fSUlf Hansson .sram_pdn_bits = BIT(8), 101*e2ad626fSUlf Hansson .sram_pdn_ack_bits = BIT(12), 102*e2ad626fSUlf Hansson .bp_infracfg = { 103*e2ad626fSUlf Hansson BUS_PROT_WR(MT8188_TOP_AXI_PROT_EN_PEXTP_MAC_P0_STEP1, 104*e2ad626fSUlf Hansson MT8188_TOP_AXI_PROT_EN_SET, 105*e2ad626fSUlf Hansson MT8188_TOP_AXI_PROT_EN_CLR, 106*e2ad626fSUlf Hansson MT8188_TOP_AXI_PROT_EN_STA), 107*e2ad626fSUlf Hansson BUS_PROT_WR(MT8188_TOP_AXI_PROT_EN_INFRA_VDNR_PEXTP_MAC_P0_STEP2, 108*e2ad626fSUlf Hansson MT8188_TOP_AXI_PROT_EN_INFRA_VDNR_SET, 109*e2ad626fSUlf Hansson MT8188_TOP_AXI_PROT_EN_INFRA_VDNR_CLR, 110*e2ad626fSUlf Hansson MT8188_TOP_AXI_PROT_EN_INFRA_VDNR_STA), 111*e2ad626fSUlf Hansson }, 112*e2ad626fSUlf Hansson .caps = MTK_SCPD_KEEP_DEFAULT_OFF, 113*e2ad626fSUlf Hansson }, 114*e2ad626fSUlf Hansson [MT8188_POWER_DOMAIN_PEXTP_PHY_TOP] = { 115*e2ad626fSUlf Hansson .name = "pextp_phy_top", 116*e2ad626fSUlf Hansson .sta_mask = BIT(12), 117*e2ad626fSUlf Hansson .ctl_offs = 0x328, 118*e2ad626fSUlf Hansson .pwr_sta_offs = 0x174, 119*e2ad626fSUlf Hansson .pwr_sta2nd_offs = 0x178, 120*e2ad626fSUlf Hansson .caps = MTK_SCPD_KEEP_DEFAULT_OFF, 121*e2ad626fSUlf Hansson }, 122*e2ad626fSUlf Hansson [MT8188_POWER_DOMAIN_CSIRX_TOP] = { 123*e2ad626fSUlf Hansson .name = "pextp_csirx_top", 124*e2ad626fSUlf Hansson .sta_mask = BIT(17), 125*e2ad626fSUlf Hansson .ctl_offs = 0x3C4, 126*e2ad626fSUlf Hansson .pwr_sta_offs = 0x174, 127*e2ad626fSUlf Hansson .pwr_sta2nd_offs = 0x178, 128*e2ad626fSUlf Hansson .caps = MTK_SCPD_KEEP_DEFAULT_OFF, 129*e2ad626fSUlf Hansson }, 130*e2ad626fSUlf Hansson [MT8188_POWER_DOMAIN_ETHER] = { 131*e2ad626fSUlf Hansson .name = "ether", 132*e2ad626fSUlf Hansson .sta_mask = BIT(1), 133*e2ad626fSUlf Hansson .ctl_offs = 0x338, 134*e2ad626fSUlf Hansson .pwr_sta_offs = 0x16C, 135*e2ad626fSUlf Hansson .pwr_sta2nd_offs = 0x170, 136*e2ad626fSUlf Hansson .sram_pdn_bits = BIT(8), 137*e2ad626fSUlf Hansson .sram_pdn_ack_bits = BIT(12), 138*e2ad626fSUlf Hansson .bp_infracfg = { 139*e2ad626fSUlf Hansson BUS_PROT_WR(MT8188_TOP_AXI_PROT_EN_INFRA_VDNR_ETHER_STEP1, 140*e2ad626fSUlf Hansson MT8188_TOP_AXI_PROT_EN_INFRA_VDNR_SET, 141*e2ad626fSUlf Hansson MT8188_TOP_AXI_PROT_EN_INFRA_VDNR_CLR, 142*e2ad626fSUlf Hansson MT8188_TOP_AXI_PROT_EN_INFRA_VDNR_STA), 143*e2ad626fSUlf Hansson }, 144*e2ad626fSUlf Hansson .caps = MTK_SCPD_KEEP_DEFAULT_OFF | MTK_SCPD_ACTIVE_WAKEUP, 145*e2ad626fSUlf Hansson }, 146*e2ad626fSUlf Hansson [MT8188_POWER_DOMAIN_HDMI_TX] = { 147*e2ad626fSUlf Hansson .name = "hdmi_tx", 148*e2ad626fSUlf Hansson .sta_mask = BIT(18), 149*e2ad626fSUlf Hansson .ctl_offs = 0x37C, 150*e2ad626fSUlf Hansson .pwr_sta_offs = 0x16C, 151*e2ad626fSUlf Hansson .pwr_sta2nd_offs = 0x170, 152*e2ad626fSUlf Hansson .sram_pdn_bits = BIT(8), 153*e2ad626fSUlf Hansson .sram_pdn_ack_bits = BIT(12), 154*e2ad626fSUlf Hansson .bp_infracfg = { 155*e2ad626fSUlf Hansson BUS_PROT_WR(MT8188_TOP_AXI_PROT_EN_INFRA_VDNR_HDMI_TX_STEP1, 156*e2ad626fSUlf Hansson MT8188_TOP_AXI_PROT_EN_INFRA_VDNR_SET, 157*e2ad626fSUlf Hansson MT8188_TOP_AXI_PROT_EN_INFRA_VDNR_CLR, 158*e2ad626fSUlf Hansson MT8188_TOP_AXI_PROT_EN_INFRA_VDNR_STA), 159*e2ad626fSUlf Hansson }, 160*e2ad626fSUlf Hansson .caps = MTK_SCPD_KEEP_DEFAULT_OFF | MTK_SCPD_ACTIVE_WAKEUP, 161*e2ad626fSUlf Hansson }, 162*e2ad626fSUlf Hansson [MT8188_POWER_DOMAIN_ADSP_AO] = { 163*e2ad626fSUlf Hansson .name = "adsp_ao", 164*e2ad626fSUlf Hansson .sta_mask = BIT(10), 165*e2ad626fSUlf Hansson .ctl_offs = 0x35C, 166*e2ad626fSUlf Hansson .pwr_sta_offs = 0x16C, 167*e2ad626fSUlf Hansson .pwr_sta2nd_offs = 0x170, 168*e2ad626fSUlf Hansson .bp_infracfg = { 169*e2ad626fSUlf Hansson BUS_PROT_WR(MT8188_TOP_AXI_PROT_EN_2_ADSP_AO_STEP1, 170*e2ad626fSUlf Hansson MT8188_TOP_AXI_PROT_EN_2_SET, 171*e2ad626fSUlf Hansson MT8188_TOP_AXI_PROT_EN_2_CLR, 172*e2ad626fSUlf Hansson MT8188_TOP_AXI_PROT_EN_2_STA), 173*e2ad626fSUlf Hansson BUS_PROT_WR(MT8188_TOP_AXI_PROT_EN_2_ADSP_AO_STEP2, 174*e2ad626fSUlf Hansson MT8188_TOP_AXI_PROT_EN_2_SET, 175*e2ad626fSUlf Hansson MT8188_TOP_AXI_PROT_EN_2_CLR, 176*e2ad626fSUlf Hansson MT8188_TOP_AXI_PROT_EN_2_STA), 177*e2ad626fSUlf Hansson }, 178*e2ad626fSUlf Hansson .caps = MTK_SCPD_ALWAYS_ON, 179*e2ad626fSUlf Hansson }, 180*e2ad626fSUlf Hansson [MT8188_POWER_DOMAIN_ADSP_INFRA] = { 181*e2ad626fSUlf Hansson .name = "adsp_infra", 182*e2ad626fSUlf Hansson .sta_mask = BIT(9), 183*e2ad626fSUlf Hansson .ctl_offs = 0x358, 184*e2ad626fSUlf Hansson .pwr_sta_offs = 0x16C, 185*e2ad626fSUlf Hansson .pwr_sta2nd_offs = 0x170, 186*e2ad626fSUlf Hansson .sram_pdn_bits = BIT(8), 187*e2ad626fSUlf Hansson .sram_pdn_ack_bits = BIT(12), 188*e2ad626fSUlf Hansson .bp_infracfg = { 189*e2ad626fSUlf Hansson BUS_PROT_WR(MT8188_TOP_AXI_PROT_EN_2_ADSP_INFRA_STEP1, 190*e2ad626fSUlf Hansson MT8188_TOP_AXI_PROT_EN_2_SET, 191*e2ad626fSUlf Hansson MT8188_TOP_AXI_PROT_EN_2_CLR, 192*e2ad626fSUlf Hansson MT8188_TOP_AXI_PROT_EN_2_STA), 193*e2ad626fSUlf Hansson BUS_PROT_WR(MT8188_TOP_AXI_PROT_EN_2_ADSP_INFRA_STEP2, 194*e2ad626fSUlf Hansson MT8188_TOP_AXI_PROT_EN_2_SET, 195*e2ad626fSUlf Hansson MT8188_TOP_AXI_PROT_EN_2_CLR, 196*e2ad626fSUlf Hansson MT8188_TOP_AXI_PROT_EN_2_STA), 197*e2ad626fSUlf Hansson }, 198*e2ad626fSUlf Hansson .caps = MTK_SCPD_SRAM_ISO | MTK_SCPD_ALWAYS_ON, 199*e2ad626fSUlf Hansson }, 200*e2ad626fSUlf Hansson [MT8188_POWER_DOMAIN_ADSP] = { 201*e2ad626fSUlf Hansson .name = "adsp", 202*e2ad626fSUlf Hansson .sta_mask = BIT(8), 203*e2ad626fSUlf Hansson .ctl_offs = 0x354, 204*e2ad626fSUlf Hansson .pwr_sta_offs = 0x16C, 205*e2ad626fSUlf Hansson .pwr_sta2nd_offs = 0x170, 206*e2ad626fSUlf Hansson .sram_pdn_bits = BIT(8), 207*e2ad626fSUlf Hansson .sram_pdn_ack_bits = BIT(12), 208*e2ad626fSUlf Hansson .bp_infracfg = { 209*e2ad626fSUlf Hansson BUS_PROT_WR(MT8188_TOP_AXI_PROT_EN_2_ADSP_STEP1, 210*e2ad626fSUlf Hansson MT8188_TOP_AXI_PROT_EN_2_SET, 211*e2ad626fSUlf Hansson MT8188_TOP_AXI_PROT_EN_2_CLR, 212*e2ad626fSUlf Hansson MT8188_TOP_AXI_PROT_EN_2_STA), 213*e2ad626fSUlf Hansson BUS_PROT_WR(MT8188_TOP_AXI_PROT_EN_2_ADSP_STEP2, 214*e2ad626fSUlf Hansson MT8188_TOP_AXI_PROT_EN_2_SET, 215*e2ad626fSUlf Hansson MT8188_TOP_AXI_PROT_EN_2_CLR, 216*e2ad626fSUlf Hansson MT8188_TOP_AXI_PROT_EN_2_STA), 217*e2ad626fSUlf Hansson }, 218*e2ad626fSUlf Hansson .caps = MTK_SCPD_KEEP_DEFAULT_OFF | MTK_SCPD_SRAM_ISO | MTK_SCPD_ACTIVE_WAKEUP, 219*e2ad626fSUlf Hansson }, 220*e2ad626fSUlf Hansson [MT8188_POWER_DOMAIN_AUDIO] = { 221*e2ad626fSUlf Hansson .name = "audio", 222*e2ad626fSUlf Hansson .sta_mask = BIT(6), 223*e2ad626fSUlf Hansson .ctl_offs = 0x34C, 224*e2ad626fSUlf Hansson .pwr_sta_offs = 0x16C, 225*e2ad626fSUlf Hansson .pwr_sta2nd_offs = 0x170, 226*e2ad626fSUlf Hansson .sram_pdn_bits = BIT(8), 227*e2ad626fSUlf Hansson .sram_pdn_ack_bits = BIT(12), 228*e2ad626fSUlf Hansson .bp_infracfg = { 229*e2ad626fSUlf Hansson BUS_PROT_WR(MT8188_TOP_AXI_PROT_EN_2_AUDIO_STEP1, 230*e2ad626fSUlf Hansson MT8188_TOP_AXI_PROT_EN_2_SET, 231*e2ad626fSUlf Hansson MT8188_TOP_AXI_PROT_EN_2_CLR, 232*e2ad626fSUlf Hansson MT8188_TOP_AXI_PROT_EN_2_STA), 233*e2ad626fSUlf Hansson BUS_PROT_WR(MT8188_TOP_AXI_PROT_EN_2_AUDIO_STEP2, 234*e2ad626fSUlf Hansson MT8188_TOP_AXI_PROT_EN_2_SET, 235*e2ad626fSUlf Hansson MT8188_TOP_AXI_PROT_EN_2_CLR, 236*e2ad626fSUlf Hansson MT8188_TOP_AXI_PROT_EN_2_STA), 237*e2ad626fSUlf Hansson }, 238*e2ad626fSUlf Hansson .caps = MTK_SCPD_KEEP_DEFAULT_OFF | MTK_SCPD_ACTIVE_WAKEUP, 239*e2ad626fSUlf Hansson }, 240*e2ad626fSUlf Hansson [MT8188_POWER_DOMAIN_AUDIO_ASRC] = { 241*e2ad626fSUlf Hansson .name = "audio_asrc", 242*e2ad626fSUlf Hansson .sta_mask = BIT(7), 243*e2ad626fSUlf Hansson .ctl_offs = 0x350, 244*e2ad626fSUlf Hansson .pwr_sta_offs = 0x16C, 245*e2ad626fSUlf Hansson .pwr_sta2nd_offs = 0x170, 246*e2ad626fSUlf Hansson .sram_pdn_bits = BIT(8), 247*e2ad626fSUlf Hansson .sram_pdn_ack_bits = BIT(12), 248*e2ad626fSUlf Hansson .bp_infracfg = { 249*e2ad626fSUlf Hansson BUS_PROT_WR(MT8188_TOP_AXI_PROT_EN_2_AUDIO_ASRC_STEP1, 250*e2ad626fSUlf Hansson MT8188_TOP_AXI_PROT_EN_2_SET, 251*e2ad626fSUlf Hansson MT8188_TOP_AXI_PROT_EN_2_CLR, 252*e2ad626fSUlf Hansson MT8188_TOP_AXI_PROT_EN_2_STA), 253*e2ad626fSUlf Hansson BUS_PROT_WR(MT8188_TOP_AXI_PROT_EN_2_AUDIO_ASRC_STEP2, 254*e2ad626fSUlf Hansson MT8188_TOP_AXI_PROT_EN_2_SET, 255*e2ad626fSUlf Hansson MT8188_TOP_AXI_PROT_EN_2_CLR, 256*e2ad626fSUlf Hansson MT8188_TOP_AXI_PROT_EN_2_STA), 257*e2ad626fSUlf Hansson }, 258*e2ad626fSUlf Hansson .caps = MTK_SCPD_KEEP_DEFAULT_OFF, 259*e2ad626fSUlf Hansson }, 260*e2ad626fSUlf Hansson [MT8188_POWER_DOMAIN_VPPSYS0] = { 261*e2ad626fSUlf Hansson .name = "vppsys0", 262*e2ad626fSUlf Hansson .sta_mask = BIT(11), 263*e2ad626fSUlf Hansson .ctl_offs = 0x360, 264*e2ad626fSUlf Hansson .pwr_sta_offs = 0x16C, 265*e2ad626fSUlf Hansson .pwr_sta2nd_offs = 0x170, 266*e2ad626fSUlf Hansson .sram_pdn_bits = BIT(8), 267*e2ad626fSUlf Hansson .sram_pdn_ack_bits = BIT(12), 268*e2ad626fSUlf Hansson .bp_infracfg = { 269*e2ad626fSUlf Hansson BUS_PROT_WR(MT8188_TOP_AXI_PROT_EN_VPPSYS0_STEP1, 270*e2ad626fSUlf Hansson MT8188_TOP_AXI_PROT_EN_SET, 271*e2ad626fSUlf Hansson MT8188_TOP_AXI_PROT_EN_CLR, 272*e2ad626fSUlf Hansson MT8188_TOP_AXI_PROT_EN_STA), 273*e2ad626fSUlf Hansson BUS_PROT_WR(MT8188_TOP_AXI_PROT_EN_MM_2_VPPSYS0_STEP2, 274*e2ad626fSUlf Hansson MT8188_TOP_AXI_PROT_EN_MM_2_SET, 275*e2ad626fSUlf Hansson MT8188_TOP_AXI_PROT_EN_MM_2_CLR, 276*e2ad626fSUlf Hansson MT8188_TOP_AXI_PROT_EN_MM_2_STA), 277*e2ad626fSUlf Hansson BUS_PROT_WR(MT8188_TOP_AXI_PROT_EN_VPPSYS0_STEP3, 278*e2ad626fSUlf Hansson MT8188_TOP_AXI_PROT_EN_SET, 279*e2ad626fSUlf Hansson MT8188_TOP_AXI_PROT_EN_CLR, 280*e2ad626fSUlf Hansson MT8188_TOP_AXI_PROT_EN_STA), 281*e2ad626fSUlf Hansson BUS_PROT_WR(MT8188_TOP_AXI_PROT_EN_MM_2_VPPSYS0_STEP4, 282*e2ad626fSUlf Hansson MT8188_TOP_AXI_PROT_EN_MM_2_SET, 283*e2ad626fSUlf Hansson MT8188_TOP_AXI_PROT_EN_MM_2_CLR, 284*e2ad626fSUlf Hansson MT8188_TOP_AXI_PROT_EN_MM_2_STA), 285*e2ad626fSUlf Hansson BUS_PROT_WR(MT8188_TOP_AXI_PROT_EN_SUB_INFRA_VDNR_VPPSYS0_STEP5, 286*e2ad626fSUlf Hansson MT8188_TOP_AXI_PROT_EN_SUB_INFRA_VDNR_SET, 287*e2ad626fSUlf Hansson MT8188_TOP_AXI_PROT_EN_SUB_INFRA_VDNR_CLR, 288*e2ad626fSUlf Hansson MT8188_TOP_AXI_PROT_EN_SUB_INFRA_VDNR_STA), 289*e2ad626fSUlf Hansson }, 290*e2ad626fSUlf Hansson }, 291*e2ad626fSUlf Hansson [MT8188_POWER_DOMAIN_VDOSYS0] = { 292*e2ad626fSUlf Hansson .name = "vdosys0", 293*e2ad626fSUlf Hansson .sta_mask = BIT(13), 294*e2ad626fSUlf Hansson .ctl_offs = 0x368, 295*e2ad626fSUlf Hansson .pwr_sta_offs = 0x16C, 296*e2ad626fSUlf Hansson .pwr_sta2nd_offs = 0x170, 297*e2ad626fSUlf Hansson .sram_pdn_bits = BIT(8), 298*e2ad626fSUlf Hansson .sram_pdn_ack_bits = BIT(12), 299*e2ad626fSUlf Hansson .bp_infracfg = { 300*e2ad626fSUlf Hansson BUS_PROT_WR(MT8188_TOP_AXI_PROT_EN_MM_VDOSYS0_STEP1, 301*e2ad626fSUlf Hansson MT8188_TOP_AXI_PROT_EN_MM_SET, 302*e2ad626fSUlf Hansson MT8188_TOP_AXI_PROT_EN_MM_CLR, 303*e2ad626fSUlf Hansson MT8188_TOP_AXI_PROT_EN_MM_STA), 304*e2ad626fSUlf Hansson BUS_PROT_WR(MT8188_TOP_AXI_PROT_EN_VDOSYS0_STEP2, 305*e2ad626fSUlf Hansson MT8188_TOP_AXI_PROT_EN_SET, 306*e2ad626fSUlf Hansson MT8188_TOP_AXI_PROT_EN_CLR, 307*e2ad626fSUlf Hansson MT8188_TOP_AXI_PROT_EN_STA), 308*e2ad626fSUlf Hansson BUS_PROT_WR(MT8188_TOP_AXI_PROT_EN_SUB_INFRA_VDNR_VDOSYS0_STEP3, 309*e2ad626fSUlf Hansson MT8188_TOP_AXI_PROT_EN_SUB_INFRA_VDNR_SET, 310*e2ad626fSUlf Hansson MT8188_TOP_AXI_PROT_EN_SUB_INFRA_VDNR_CLR, 311*e2ad626fSUlf Hansson MT8188_TOP_AXI_PROT_EN_SUB_INFRA_VDNR_STA), 312*e2ad626fSUlf Hansson }, 313*e2ad626fSUlf Hansson }, 314*e2ad626fSUlf Hansson [MT8188_POWER_DOMAIN_VDOSYS1] = { 315*e2ad626fSUlf Hansson .name = "vdosys1", 316*e2ad626fSUlf Hansson .sta_mask = BIT(14), 317*e2ad626fSUlf Hansson .ctl_offs = 0x36C, 318*e2ad626fSUlf Hansson .pwr_sta_offs = 0x16C, 319*e2ad626fSUlf Hansson .pwr_sta2nd_offs = 0x170, 320*e2ad626fSUlf Hansson .sram_pdn_bits = BIT(8), 321*e2ad626fSUlf Hansson .sram_pdn_ack_bits = BIT(12), 322*e2ad626fSUlf Hansson .bp_infracfg = { 323*e2ad626fSUlf Hansson BUS_PROT_WR(MT8188_TOP_AXI_PROT_EN_MM_VDOSYS1_STEP1, 324*e2ad626fSUlf Hansson MT8188_TOP_AXI_PROT_EN_MM_SET, 325*e2ad626fSUlf Hansson MT8188_TOP_AXI_PROT_EN_MM_CLR, 326*e2ad626fSUlf Hansson MT8188_TOP_AXI_PROT_EN_MM_STA), 327*e2ad626fSUlf Hansson BUS_PROT_WR(MT8188_TOP_AXI_PROT_EN_MM_VDOSYS1_STEP2, 328*e2ad626fSUlf Hansson MT8188_TOP_AXI_PROT_EN_MM_SET, 329*e2ad626fSUlf Hansson MT8188_TOP_AXI_PROT_EN_MM_CLR, 330*e2ad626fSUlf Hansson MT8188_TOP_AXI_PROT_EN_MM_STA), 331*e2ad626fSUlf Hansson BUS_PROT_WR(MT8188_TOP_AXI_PROT_EN_MM_2_VDOSYS1_STEP3, 332*e2ad626fSUlf Hansson MT8188_TOP_AXI_PROT_EN_MM_2_SET, 333*e2ad626fSUlf Hansson MT8188_TOP_AXI_PROT_EN_MM_2_CLR, 334*e2ad626fSUlf Hansson MT8188_TOP_AXI_PROT_EN_MM_2_STA), 335*e2ad626fSUlf Hansson }, 336*e2ad626fSUlf Hansson }, 337*e2ad626fSUlf Hansson [MT8188_POWER_DOMAIN_DP_TX] = { 338*e2ad626fSUlf Hansson .name = "dp_tx", 339*e2ad626fSUlf Hansson .sta_mask = BIT(16), 340*e2ad626fSUlf Hansson .ctl_offs = 0x374, 341*e2ad626fSUlf Hansson .pwr_sta_offs = 0x16C, 342*e2ad626fSUlf Hansson .pwr_sta2nd_offs = 0x170, 343*e2ad626fSUlf Hansson .sram_pdn_bits = BIT(8), 344*e2ad626fSUlf Hansson .sram_pdn_ack_bits = BIT(12), 345*e2ad626fSUlf Hansson .bp_infracfg = { 346*e2ad626fSUlf Hansson BUS_PROT_WR(MT8188_TOP_AXI_PROT_EN_INFRA_VDNR_DP_TX_STEP1, 347*e2ad626fSUlf Hansson MT8188_TOP_AXI_PROT_EN_INFRA_VDNR_SET, 348*e2ad626fSUlf Hansson MT8188_TOP_AXI_PROT_EN_INFRA_VDNR_CLR, 349*e2ad626fSUlf Hansson MT8188_TOP_AXI_PROT_EN_INFRA_VDNR_STA), 350*e2ad626fSUlf Hansson }, 351*e2ad626fSUlf Hansson .caps = MTK_SCPD_KEEP_DEFAULT_OFF, 352*e2ad626fSUlf Hansson }, 353*e2ad626fSUlf Hansson [MT8188_POWER_DOMAIN_EDP_TX] = { 354*e2ad626fSUlf Hansson .name = "edp_tx", 355*e2ad626fSUlf Hansson .sta_mask = BIT(17), 356*e2ad626fSUlf Hansson .ctl_offs = 0x378, 357*e2ad626fSUlf Hansson .pwr_sta_offs = 0x16C, 358*e2ad626fSUlf Hansson .pwr_sta2nd_offs = 0x170, 359*e2ad626fSUlf Hansson .sram_pdn_bits = BIT(8), 360*e2ad626fSUlf Hansson .sram_pdn_ack_bits = BIT(12), 361*e2ad626fSUlf Hansson .bp_infracfg = { 362*e2ad626fSUlf Hansson BUS_PROT_WR(MT8188_TOP_AXI_PROT_EN_INFRA_VDNR_EDP_TX_STEP1, 363*e2ad626fSUlf Hansson MT8188_TOP_AXI_PROT_EN_INFRA_VDNR_SET, 364*e2ad626fSUlf Hansson MT8188_TOP_AXI_PROT_EN_INFRA_VDNR_CLR, 365*e2ad626fSUlf Hansson MT8188_TOP_AXI_PROT_EN_INFRA_VDNR_STA), 366*e2ad626fSUlf Hansson }, 367*e2ad626fSUlf Hansson .caps = MTK_SCPD_KEEP_DEFAULT_OFF, 368*e2ad626fSUlf Hansson }, 369*e2ad626fSUlf Hansson [MT8188_POWER_DOMAIN_VPPSYS1] = { 370*e2ad626fSUlf Hansson .name = "vppsys1", 371*e2ad626fSUlf Hansson .sta_mask = BIT(12), 372*e2ad626fSUlf Hansson .ctl_offs = 0x364, 373*e2ad626fSUlf Hansson .pwr_sta_offs = 0x16C, 374*e2ad626fSUlf Hansson .pwr_sta2nd_offs = 0x170, 375*e2ad626fSUlf Hansson .sram_pdn_bits = BIT(8), 376*e2ad626fSUlf Hansson .sram_pdn_ack_bits = BIT(12), 377*e2ad626fSUlf Hansson .bp_infracfg = { 378*e2ad626fSUlf Hansson BUS_PROT_WR(MT8188_TOP_AXI_PROT_EN_MM_VPPSYS1_STEP1, 379*e2ad626fSUlf Hansson MT8188_TOP_AXI_PROT_EN_MM_SET, 380*e2ad626fSUlf Hansson MT8188_TOP_AXI_PROT_EN_MM_CLR, 381*e2ad626fSUlf Hansson MT8188_TOP_AXI_PROT_EN_MM_STA), 382*e2ad626fSUlf Hansson BUS_PROT_WR(MT8188_TOP_AXI_PROT_EN_MM_VPPSYS1_STEP2, 383*e2ad626fSUlf Hansson MT8188_TOP_AXI_PROT_EN_MM_SET, 384*e2ad626fSUlf Hansson MT8188_TOP_AXI_PROT_EN_MM_CLR, 385*e2ad626fSUlf Hansson MT8188_TOP_AXI_PROT_EN_MM_STA), 386*e2ad626fSUlf Hansson BUS_PROT_WR(MT8188_TOP_AXI_PROT_EN_MM_2_VPPSYS1_STEP3, 387*e2ad626fSUlf Hansson MT8188_TOP_AXI_PROT_EN_MM_2_SET, 388*e2ad626fSUlf Hansson MT8188_TOP_AXI_PROT_EN_MM_2_CLR, 389*e2ad626fSUlf Hansson MT8188_TOP_AXI_PROT_EN_MM_2_STA), 390*e2ad626fSUlf Hansson }, 391*e2ad626fSUlf Hansson }, 392*e2ad626fSUlf Hansson [MT8188_POWER_DOMAIN_WPE] = { 393*e2ad626fSUlf Hansson .name = "wpe", 394*e2ad626fSUlf Hansson .sta_mask = BIT(15), 395*e2ad626fSUlf Hansson .ctl_offs = 0x370, 396*e2ad626fSUlf Hansson .pwr_sta_offs = 0x16C, 397*e2ad626fSUlf Hansson .pwr_sta2nd_offs = 0x170, 398*e2ad626fSUlf Hansson .sram_pdn_bits = BIT(8), 399*e2ad626fSUlf Hansson .sram_pdn_ack_bits = BIT(12), 400*e2ad626fSUlf Hansson .bp_infracfg = { 401*e2ad626fSUlf Hansson BUS_PROT_WR(MT8188_TOP_AXI_PROT_EN_MM_2_WPE_STEP1, 402*e2ad626fSUlf Hansson MT8188_TOP_AXI_PROT_EN_MM_2_SET, 403*e2ad626fSUlf Hansson MT8188_TOP_AXI_PROT_EN_MM_2_CLR, 404*e2ad626fSUlf Hansson MT8188_TOP_AXI_PROT_EN_MM_2_STA), 405*e2ad626fSUlf Hansson BUS_PROT_WR(MT8188_TOP_AXI_PROT_EN_MM_2_WPE_STEP2, 406*e2ad626fSUlf Hansson MT8188_TOP_AXI_PROT_EN_MM_2_SET, 407*e2ad626fSUlf Hansson MT8188_TOP_AXI_PROT_EN_MM_2_CLR, 408*e2ad626fSUlf Hansson MT8188_TOP_AXI_PROT_EN_MM_2_STA), 409*e2ad626fSUlf Hansson }, 410*e2ad626fSUlf Hansson .caps = MTK_SCPD_KEEP_DEFAULT_OFF, 411*e2ad626fSUlf Hansson }, 412*e2ad626fSUlf Hansson [MT8188_POWER_DOMAIN_VDEC0] = { 413*e2ad626fSUlf Hansson .name = "vdec0", 414*e2ad626fSUlf Hansson .sta_mask = BIT(19), 415*e2ad626fSUlf Hansson .ctl_offs = 0x380, 416*e2ad626fSUlf Hansson .pwr_sta_offs = 0x16C, 417*e2ad626fSUlf Hansson .pwr_sta2nd_offs = 0x170, 418*e2ad626fSUlf Hansson .sram_pdn_bits = BIT(8), 419*e2ad626fSUlf Hansson .sram_pdn_ack_bits = BIT(12), 420*e2ad626fSUlf Hansson .bp_infracfg = { 421*e2ad626fSUlf Hansson BUS_PROT_WR(MT8188_TOP_AXI_PROT_EN_MM_VDEC0_STEP1, 422*e2ad626fSUlf Hansson MT8188_TOP_AXI_PROT_EN_MM_SET, 423*e2ad626fSUlf Hansson MT8188_TOP_AXI_PROT_EN_MM_CLR, 424*e2ad626fSUlf Hansson MT8188_TOP_AXI_PROT_EN_MM_STA), 425*e2ad626fSUlf Hansson BUS_PROT_WR(MT8188_TOP_AXI_PROT_EN_MM_2_VDEC0_STEP2, 426*e2ad626fSUlf Hansson MT8188_TOP_AXI_PROT_EN_MM_2_SET, 427*e2ad626fSUlf Hansson MT8188_TOP_AXI_PROT_EN_MM_2_CLR, 428*e2ad626fSUlf Hansson MT8188_TOP_AXI_PROT_EN_MM_2_STA), 429*e2ad626fSUlf Hansson }, 430*e2ad626fSUlf Hansson .caps = MTK_SCPD_KEEP_DEFAULT_OFF, 431*e2ad626fSUlf Hansson }, 432*e2ad626fSUlf Hansson [MT8188_POWER_DOMAIN_VDEC1] = { 433*e2ad626fSUlf Hansson .name = "vdec1", 434*e2ad626fSUlf Hansson .sta_mask = BIT(20), 435*e2ad626fSUlf Hansson .ctl_offs = 0x384, 436*e2ad626fSUlf Hansson .pwr_sta_offs = 0x16C, 437*e2ad626fSUlf Hansson .pwr_sta2nd_offs = 0x170, 438*e2ad626fSUlf Hansson .sram_pdn_bits = BIT(8), 439*e2ad626fSUlf Hansson .sram_pdn_ack_bits = BIT(12), 440*e2ad626fSUlf Hansson .bp_infracfg = { 441*e2ad626fSUlf Hansson BUS_PROT_WR(MT8188_TOP_AXI_PROT_EN_MM_VDEC1_STEP1, 442*e2ad626fSUlf Hansson MT8188_TOP_AXI_PROT_EN_MM_SET, 443*e2ad626fSUlf Hansson MT8188_TOP_AXI_PROT_EN_MM_CLR, 444*e2ad626fSUlf Hansson MT8188_TOP_AXI_PROT_EN_MM_STA), 445*e2ad626fSUlf Hansson BUS_PROT_WR(MT8188_TOP_AXI_PROT_EN_MM_VDEC1_STEP2, 446*e2ad626fSUlf Hansson MT8188_TOP_AXI_PROT_EN_MM_SET, 447*e2ad626fSUlf Hansson MT8188_TOP_AXI_PROT_EN_MM_CLR, 448*e2ad626fSUlf Hansson MT8188_TOP_AXI_PROT_EN_MM_STA), 449*e2ad626fSUlf Hansson }, 450*e2ad626fSUlf Hansson .caps = MTK_SCPD_KEEP_DEFAULT_OFF, 451*e2ad626fSUlf Hansson }, 452*e2ad626fSUlf Hansson [MT8188_POWER_DOMAIN_VENC] = { 453*e2ad626fSUlf Hansson .name = "venc", 454*e2ad626fSUlf Hansson .sta_mask = BIT(22), 455*e2ad626fSUlf Hansson .ctl_offs = 0x38C, 456*e2ad626fSUlf Hansson .pwr_sta_offs = 0x16C, 457*e2ad626fSUlf Hansson .pwr_sta2nd_offs = 0x170, 458*e2ad626fSUlf Hansson .sram_pdn_bits = BIT(8), 459*e2ad626fSUlf Hansson .sram_pdn_ack_bits = BIT(12), 460*e2ad626fSUlf Hansson .bp_infracfg = { 461*e2ad626fSUlf Hansson BUS_PROT_WR(MT8188_TOP_AXI_PROT_EN_MM_VENC_STEP1, 462*e2ad626fSUlf Hansson MT8188_TOP_AXI_PROT_EN_MM_SET, 463*e2ad626fSUlf Hansson MT8188_TOP_AXI_PROT_EN_MM_CLR, 464*e2ad626fSUlf Hansson MT8188_TOP_AXI_PROT_EN_MM_STA), 465*e2ad626fSUlf Hansson BUS_PROT_WR(MT8188_TOP_AXI_PROT_EN_MM_VENC_STEP2, 466*e2ad626fSUlf Hansson MT8188_TOP_AXI_PROT_EN_MM_SET, 467*e2ad626fSUlf Hansson MT8188_TOP_AXI_PROT_EN_MM_CLR, 468*e2ad626fSUlf Hansson MT8188_TOP_AXI_PROT_EN_MM_STA), 469*e2ad626fSUlf Hansson BUS_PROT_WR(MT8188_TOP_AXI_PROT_EN_MM_2_VENC_STEP3, 470*e2ad626fSUlf Hansson MT8188_TOP_AXI_PROT_EN_MM_2_SET, 471*e2ad626fSUlf Hansson MT8188_TOP_AXI_PROT_EN_MM_2_CLR, 472*e2ad626fSUlf Hansson MT8188_TOP_AXI_PROT_EN_MM_2_STA), 473*e2ad626fSUlf Hansson }, 474*e2ad626fSUlf Hansson .caps = MTK_SCPD_KEEP_DEFAULT_OFF, 475*e2ad626fSUlf Hansson }, 476*e2ad626fSUlf Hansson [MT8188_POWER_DOMAIN_IMG_VCORE] = { 477*e2ad626fSUlf Hansson .name = "vcore", 478*e2ad626fSUlf Hansson .sta_mask = BIT(28), 479*e2ad626fSUlf Hansson .ctl_offs = 0x3A4, 480*e2ad626fSUlf Hansson .pwr_sta_offs = 0x16C, 481*e2ad626fSUlf Hansson .pwr_sta2nd_offs = 0x170, 482*e2ad626fSUlf Hansson .bp_infracfg = { 483*e2ad626fSUlf Hansson BUS_PROT_WR(MT8188_TOP_AXI_PROT_EN_MM_IMG_VCORE_STEP1, 484*e2ad626fSUlf Hansson MT8188_TOP_AXI_PROT_EN_MM_SET, 485*e2ad626fSUlf Hansson MT8188_TOP_AXI_PROT_EN_MM_CLR, 486*e2ad626fSUlf Hansson MT8188_TOP_AXI_PROT_EN_MM_STA), 487*e2ad626fSUlf Hansson BUS_PROT_WR(MT8188_TOP_AXI_PROT_EN_MM_IMG_VCORE_STEP2, 488*e2ad626fSUlf Hansson MT8188_TOP_AXI_PROT_EN_MM_SET, 489*e2ad626fSUlf Hansson MT8188_TOP_AXI_PROT_EN_MM_CLR, 490*e2ad626fSUlf Hansson MT8188_TOP_AXI_PROT_EN_MM_STA), 491*e2ad626fSUlf Hansson BUS_PROT_WR(MT8188_TOP_AXI_PROT_EN_MM_2_IMG_VCORE_STEP3, 492*e2ad626fSUlf Hansson MT8188_TOP_AXI_PROT_EN_MM_2_SET, 493*e2ad626fSUlf Hansson MT8188_TOP_AXI_PROT_EN_MM_2_CLR, 494*e2ad626fSUlf Hansson MT8188_TOP_AXI_PROT_EN_MM_2_STA), 495*e2ad626fSUlf Hansson }, 496*e2ad626fSUlf Hansson .caps = MTK_SCPD_KEEP_DEFAULT_OFF | MTK_SCPD_DOMAIN_SUPPLY, 497*e2ad626fSUlf Hansson }, 498*e2ad626fSUlf Hansson [MT8188_POWER_DOMAIN_IMG_MAIN] = { 499*e2ad626fSUlf Hansson .name = "img_main", 500*e2ad626fSUlf Hansson .sta_mask = BIT(29), 501*e2ad626fSUlf Hansson .ctl_offs = 0x3A8, 502*e2ad626fSUlf Hansson .pwr_sta_offs = 0x16C, 503*e2ad626fSUlf Hansson .pwr_sta2nd_offs = 0x170, 504*e2ad626fSUlf Hansson .sram_pdn_bits = BIT(8), 505*e2ad626fSUlf Hansson .sram_pdn_ack_bits = BIT(12), 506*e2ad626fSUlf Hansson .bp_infracfg = { 507*e2ad626fSUlf Hansson BUS_PROT_WR(MT8188_TOP_AXI_PROT_EN_MM_2_IMG_MAIN_STEP1, 508*e2ad626fSUlf Hansson MT8188_TOP_AXI_PROT_EN_MM_2_SET, 509*e2ad626fSUlf Hansson MT8188_TOP_AXI_PROT_EN_MM_2_CLR, 510*e2ad626fSUlf Hansson MT8188_TOP_AXI_PROT_EN_MM_2_STA), 511*e2ad626fSUlf Hansson BUS_PROT_WR(MT8188_TOP_AXI_PROT_EN_MM_2_IMG_MAIN_STEP2, 512*e2ad626fSUlf Hansson MT8188_TOP_AXI_PROT_EN_MM_2_SET, 513*e2ad626fSUlf Hansson MT8188_TOP_AXI_PROT_EN_MM_2_CLR, 514*e2ad626fSUlf Hansson MT8188_TOP_AXI_PROT_EN_MM_2_STA), 515*e2ad626fSUlf Hansson }, 516*e2ad626fSUlf Hansson .caps = MTK_SCPD_KEEP_DEFAULT_OFF, 517*e2ad626fSUlf Hansson }, 518*e2ad626fSUlf Hansson [MT8188_POWER_DOMAIN_DIP] = { 519*e2ad626fSUlf Hansson .name = "dip", 520*e2ad626fSUlf Hansson .sta_mask = BIT(30), 521*e2ad626fSUlf Hansson .ctl_offs = 0x3AC, 522*e2ad626fSUlf Hansson .pwr_sta_offs = 0x16C, 523*e2ad626fSUlf Hansson .pwr_sta2nd_offs = 0x170, 524*e2ad626fSUlf Hansson .sram_pdn_bits = BIT(8), 525*e2ad626fSUlf Hansson .sram_pdn_ack_bits = BIT(12), 526*e2ad626fSUlf Hansson .caps = MTK_SCPD_KEEP_DEFAULT_OFF, 527*e2ad626fSUlf Hansson }, 528*e2ad626fSUlf Hansson [MT8188_POWER_DOMAIN_IPE] = { 529*e2ad626fSUlf Hansson .name = "ipe", 530*e2ad626fSUlf Hansson .sta_mask = BIT(31), 531*e2ad626fSUlf Hansson .ctl_offs = 0x3B0, 532*e2ad626fSUlf Hansson .pwr_sta_offs = 0x16C, 533*e2ad626fSUlf Hansson .pwr_sta2nd_offs = 0x170, 534*e2ad626fSUlf Hansson .sram_pdn_bits = BIT(8), 535*e2ad626fSUlf Hansson .sram_pdn_ack_bits = BIT(12), 536*e2ad626fSUlf Hansson .caps = MTK_SCPD_KEEP_DEFAULT_OFF, 537*e2ad626fSUlf Hansson }, 538*e2ad626fSUlf Hansson [MT8188_POWER_DOMAIN_CAM_VCORE] = { 539*e2ad626fSUlf Hansson .name = "cam_vcore", 540*e2ad626fSUlf Hansson .sta_mask = BIT(27), 541*e2ad626fSUlf Hansson .ctl_offs = 0x3A0, 542*e2ad626fSUlf Hansson .pwr_sta_offs = 0x16C, 543*e2ad626fSUlf Hansson .pwr_sta2nd_offs = 0x170, 544*e2ad626fSUlf Hansson .bp_infracfg = { 545*e2ad626fSUlf Hansson BUS_PROT_WR(MT8188_TOP_AXI_PROT_EN_MM_CAM_VCORE_STEP1, 546*e2ad626fSUlf Hansson MT8188_TOP_AXI_PROT_EN_MM_SET, 547*e2ad626fSUlf Hansson MT8188_TOP_AXI_PROT_EN_MM_CLR, 548*e2ad626fSUlf Hansson MT8188_TOP_AXI_PROT_EN_MM_STA), 549*e2ad626fSUlf Hansson BUS_PROT_WR(MT8188_TOP_AXI_PROT_EN_2_CAM_VCORE_STEP2, 550*e2ad626fSUlf Hansson MT8188_TOP_AXI_PROT_EN_2_SET, 551*e2ad626fSUlf Hansson MT8188_TOP_AXI_PROT_EN_2_CLR, 552*e2ad626fSUlf Hansson MT8188_TOP_AXI_PROT_EN_2_STA), 553*e2ad626fSUlf Hansson BUS_PROT_WR(MT8188_TOP_AXI_PROT_EN_1_CAM_VCORE_STEP3, 554*e2ad626fSUlf Hansson MT8188_TOP_AXI_PROT_EN_1_SET, 555*e2ad626fSUlf Hansson MT8188_TOP_AXI_PROT_EN_1_CLR, 556*e2ad626fSUlf Hansson MT8188_TOP_AXI_PROT_EN_1_STA), 557*e2ad626fSUlf Hansson BUS_PROT_WR(MT8188_TOP_AXI_PROT_EN_MM_CAM_VCORE_STEP4, 558*e2ad626fSUlf Hansson MT8188_TOP_AXI_PROT_EN_MM_SET, 559*e2ad626fSUlf Hansson MT8188_TOP_AXI_PROT_EN_MM_CLR, 560*e2ad626fSUlf Hansson MT8188_TOP_AXI_PROT_EN_MM_STA), 561*e2ad626fSUlf Hansson BUS_PROT_WR(MT8188_TOP_AXI_PROT_EN_MM_2_CAM_VCORE_STEP5, 562*e2ad626fSUlf Hansson MT8188_TOP_AXI_PROT_EN_MM_2_SET, 563*e2ad626fSUlf Hansson MT8188_TOP_AXI_PROT_EN_MM_2_CLR, 564*e2ad626fSUlf Hansson MT8188_TOP_AXI_PROT_EN_MM_2_STA), 565*e2ad626fSUlf Hansson }, 566*e2ad626fSUlf Hansson .caps = MTK_SCPD_KEEP_DEFAULT_OFF | MTK_SCPD_DOMAIN_SUPPLY, 567*e2ad626fSUlf Hansson }, 568*e2ad626fSUlf Hansson [MT8188_POWER_DOMAIN_CAM_MAIN] = { 569*e2ad626fSUlf Hansson .name = "cam_main", 570*e2ad626fSUlf Hansson .sta_mask = BIT(24), 571*e2ad626fSUlf Hansson .ctl_offs = 0x394, 572*e2ad626fSUlf Hansson .pwr_sta_offs = 0x16C, 573*e2ad626fSUlf Hansson .pwr_sta2nd_offs = 0x170, 574*e2ad626fSUlf Hansson .sram_pdn_bits = BIT(8), 575*e2ad626fSUlf Hansson .sram_pdn_ack_bits = BIT(12), 576*e2ad626fSUlf Hansson .bp_infracfg = { 577*e2ad626fSUlf Hansson BUS_PROT_WR(MT8188_TOP_AXI_PROT_EN_MM_2_CAM_MAIN_STEP1, 578*e2ad626fSUlf Hansson MT8188_TOP_AXI_PROT_EN_MM_2_SET, 579*e2ad626fSUlf Hansson MT8188_TOP_AXI_PROT_EN_MM_2_CLR, 580*e2ad626fSUlf Hansson MT8188_TOP_AXI_PROT_EN_MM_2_STA), 581*e2ad626fSUlf Hansson BUS_PROT_WR(MT8188_TOP_AXI_PROT_EN_2_CAM_MAIN_STEP2, 582*e2ad626fSUlf Hansson MT8188_TOP_AXI_PROT_EN_2_SET, 583*e2ad626fSUlf Hansson MT8188_TOP_AXI_PROT_EN_2_CLR, 584*e2ad626fSUlf Hansson MT8188_TOP_AXI_PROT_EN_2_STA), 585*e2ad626fSUlf Hansson BUS_PROT_WR(MT8188_TOP_AXI_PROT_EN_MM_2_CAM_MAIN_STEP3, 586*e2ad626fSUlf Hansson MT8188_TOP_AXI_PROT_EN_MM_2_SET, 587*e2ad626fSUlf Hansson MT8188_TOP_AXI_PROT_EN_MM_2_CLR, 588*e2ad626fSUlf Hansson MT8188_TOP_AXI_PROT_EN_MM_2_STA), 589*e2ad626fSUlf Hansson BUS_PROT_WR(MT8188_TOP_AXI_PROT_EN_2_CAM_MAIN_STEP4, 590*e2ad626fSUlf Hansson MT8188_TOP_AXI_PROT_EN_2_SET, 591*e2ad626fSUlf Hansson MT8188_TOP_AXI_PROT_EN_2_CLR, 592*e2ad626fSUlf Hansson MT8188_TOP_AXI_PROT_EN_2_STA), 593*e2ad626fSUlf Hansson }, 594*e2ad626fSUlf Hansson .caps = MTK_SCPD_KEEP_DEFAULT_OFF, 595*e2ad626fSUlf Hansson }, 596*e2ad626fSUlf Hansson [MT8188_POWER_DOMAIN_CAM_SUBA] = { 597*e2ad626fSUlf Hansson .name = "cam_suba", 598*e2ad626fSUlf Hansson .sta_mask = BIT(25), 599*e2ad626fSUlf Hansson .ctl_offs = 0x398, 600*e2ad626fSUlf Hansson .pwr_sta_offs = 0x16C, 601*e2ad626fSUlf Hansson .pwr_sta2nd_offs = 0x170, 602*e2ad626fSUlf Hansson .sram_pdn_bits = BIT(8), 603*e2ad626fSUlf Hansson .sram_pdn_ack_bits = BIT(12), 604*e2ad626fSUlf Hansson .caps = MTK_SCPD_KEEP_DEFAULT_OFF, 605*e2ad626fSUlf Hansson }, 606*e2ad626fSUlf Hansson [MT8188_POWER_DOMAIN_CAM_SUBB] = { 607*e2ad626fSUlf Hansson .name = "cam_subb", 608*e2ad626fSUlf Hansson .sta_mask = BIT(26), 609*e2ad626fSUlf Hansson .ctl_offs = 0x39C, 610*e2ad626fSUlf Hansson .pwr_sta_offs = 0x16C, 611*e2ad626fSUlf Hansson .pwr_sta2nd_offs = 0x170, 612*e2ad626fSUlf Hansson .sram_pdn_bits = BIT(8), 613*e2ad626fSUlf Hansson .sram_pdn_ack_bits = BIT(12), 614*e2ad626fSUlf Hansson .caps = MTK_SCPD_KEEP_DEFAULT_OFF, 615*e2ad626fSUlf Hansson }, 616*e2ad626fSUlf Hansson }; 617*e2ad626fSUlf Hansson 618*e2ad626fSUlf Hansson static const struct scpsys_soc_data mt8188_scpsys_data = { 619*e2ad626fSUlf Hansson .domains_data = scpsys_domain_data_mt8188, 620*e2ad626fSUlf Hansson .num_domains = ARRAY_SIZE(scpsys_domain_data_mt8188), 621*e2ad626fSUlf Hansson }; 622*e2ad626fSUlf Hansson 623*e2ad626fSUlf Hansson #endif /* __SOC_MEDIATEK_MT8188_PM_DOMAINS_H */ 624