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: Chun-Jie Chen <chun-jie.chen@mediatek.com> 5*e2ad626fSUlf Hansson */ 6*e2ad626fSUlf Hansson 7*e2ad626fSUlf Hansson #ifndef __SOC_MEDIATEK_MT8186_PM_DOMAINS_H 8*e2ad626fSUlf Hansson #define __SOC_MEDIATEK_MT8186_PM_DOMAINS_H 9*e2ad626fSUlf Hansson 10*e2ad626fSUlf Hansson #include "mtk-pm-domains.h" 11*e2ad626fSUlf Hansson #include <dt-bindings/power/mt8186-power.h> 12*e2ad626fSUlf Hansson 13*e2ad626fSUlf Hansson /* 14*e2ad626fSUlf Hansson * MT8186 power domain support 15*e2ad626fSUlf Hansson */ 16*e2ad626fSUlf Hansson 17*e2ad626fSUlf Hansson static const struct scpsys_domain_data scpsys_domain_data_mt8186[] = { 18*e2ad626fSUlf Hansson [MT8186_POWER_DOMAIN_MFG0] = { 19*e2ad626fSUlf Hansson .name = "mfg0", 20*e2ad626fSUlf Hansson .sta_mask = BIT(2), 21*e2ad626fSUlf Hansson .ctl_offs = 0x308, 22*e2ad626fSUlf Hansson .pwr_sta_offs = 0x16C, 23*e2ad626fSUlf Hansson .pwr_sta2nd_offs = 0x170, 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 [MT8186_POWER_DOMAIN_MFG1] = { 29*e2ad626fSUlf Hansson .name = "mfg1", 30*e2ad626fSUlf Hansson .sta_mask = BIT(3), 31*e2ad626fSUlf Hansson .ctl_offs = 0x30c, 32*e2ad626fSUlf Hansson .pwr_sta_offs = 0x16C, 33*e2ad626fSUlf Hansson .pwr_sta2nd_offs = 0x170, 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_IGN(MT8186_TOP_AXI_PROT_EN_1_MFG1_STEP1, 38*e2ad626fSUlf Hansson MT8186_TOP_AXI_PROT_EN_1_SET, 39*e2ad626fSUlf Hansson MT8186_TOP_AXI_PROT_EN_1_CLR, 40*e2ad626fSUlf Hansson MT8186_TOP_AXI_PROT_EN_1_STA), 41*e2ad626fSUlf Hansson BUS_PROT_WR_IGN(MT8186_TOP_AXI_PROT_EN_MFG1_STEP2, 42*e2ad626fSUlf Hansson MT8186_TOP_AXI_PROT_EN_SET, 43*e2ad626fSUlf Hansson MT8186_TOP_AXI_PROT_EN_CLR, 44*e2ad626fSUlf Hansson MT8186_TOP_AXI_PROT_EN_STA), 45*e2ad626fSUlf Hansson BUS_PROT_WR_IGN(MT8186_TOP_AXI_PROT_EN_MFG1_STEP3, 46*e2ad626fSUlf Hansson MT8186_TOP_AXI_PROT_EN_SET, 47*e2ad626fSUlf Hansson MT8186_TOP_AXI_PROT_EN_CLR, 48*e2ad626fSUlf Hansson MT8186_TOP_AXI_PROT_EN_STA), 49*e2ad626fSUlf Hansson BUS_PROT_WR_IGN(MT8186_TOP_AXI_PROT_EN_1_MFG1_STEP4, 50*e2ad626fSUlf Hansson MT8186_TOP_AXI_PROT_EN_1_SET, 51*e2ad626fSUlf Hansson MT8186_TOP_AXI_PROT_EN_1_CLR, 52*e2ad626fSUlf Hansson MT8186_TOP_AXI_PROT_EN_1_STA), 53*e2ad626fSUlf Hansson }, 54*e2ad626fSUlf Hansson .caps = MTK_SCPD_KEEP_DEFAULT_OFF | MTK_SCPD_DOMAIN_SUPPLY, 55*e2ad626fSUlf Hansson }, 56*e2ad626fSUlf Hansson [MT8186_POWER_DOMAIN_MFG2] = { 57*e2ad626fSUlf Hansson .name = "mfg2", 58*e2ad626fSUlf Hansson .sta_mask = BIT(4), 59*e2ad626fSUlf Hansson .ctl_offs = 0x310, 60*e2ad626fSUlf Hansson .pwr_sta_offs = 0x16C, 61*e2ad626fSUlf Hansson .pwr_sta2nd_offs = 0x170, 62*e2ad626fSUlf Hansson .sram_pdn_bits = BIT(8), 63*e2ad626fSUlf Hansson .sram_pdn_ack_bits = BIT(12), 64*e2ad626fSUlf Hansson .caps = MTK_SCPD_KEEP_DEFAULT_OFF, 65*e2ad626fSUlf Hansson }, 66*e2ad626fSUlf Hansson [MT8186_POWER_DOMAIN_MFG3] = { 67*e2ad626fSUlf Hansson .name = "mfg3", 68*e2ad626fSUlf Hansson .sta_mask = BIT(5), 69*e2ad626fSUlf Hansson .ctl_offs = 0x314, 70*e2ad626fSUlf Hansson .pwr_sta_offs = 0x16C, 71*e2ad626fSUlf Hansson .pwr_sta2nd_offs = 0x170, 72*e2ad626fSUlf Hansson .sram_pdn_bits = BIT(8), 73*e2ad626fSUlf Hansson .sram_pdn_ack_bits = BIT(12), 74*e2ad626fSUlf Hansson .caps = MTK_SCPD_KEEP_DEFAULT_OFF, 75*e2ad626fSUlf Hansson }, 76*e2ad626fSUlf Hansson [MT8186_POWER_DOMAIN_SSUSB] = { 77*e2ad626fSUlf Hansson .name = "ssusb", 78*e2ad626fSUlf Hansson .sta_mask = BIT(20), 79*e2ad626fSUlf Hansson .ctl_offs = 0x9F0, 80*e2ad626fSUlf Hansson .pwr_sta_offs = 0x16C, 81*e2ad626fSUlf Hansson .pwr_sta2nd_offs = 0x170, 82*e2ad626fSUlf Hansson .sram_pdn_bits = BIT(8), 83*e2ad626fSUlf Hansson .sram_pdn_ack_bits = BIT(12), 84*e2ad626fSUlf Hansson .caps = MTK_SCPD_ACTIVE_WAKEUP, 85*e2ad626fSUlf Hansson }, 86*e2ad626fSUlf Hansson [MT8186_POWER_DOMAIN_SSUSB_P1] = { 87*e2ad626fSUlf Hansson .name = "ssusb_p1", 88*e2ad626fSUlf Hansson .sta_mask = BIT(19), 89*e2ad626fSUlf Hansson .ctl_offs = 0x9F4, 90*e2ad626fSUlf Hansson .pwr_sta_offs = 0x16C, 91*e2ad626fSUlf Hansson .pwr_sta2nd_offs = 0x170, 92*e2ad626fSUlf Hansson .sram_pdn_bits = BIT(8), 93*e2ad626fSUlf Hansson .sram_pdn_ack_bits = BIT(12), 94*e2ad626fSUlf Hansson .caps = MTK_SCPD_ACTIVE_WAKEUP, 95*e2ad626fSUlf Hansson }, 96*e2ad626fSUlf Hansson [MT8186_POWER_DOMAIN_DIS] = { 97*e2ad626fSUlf Hansson .name = "dis", 98*e2ad626fSUlf Hansson .sta_mask = BIT(21), 99*e2ad626fSUlf Hansson .ctl_offs = 0x354, 100*e2ad626fSUlf Hansson .pwr_sta_offs = 0x16C, 101*e2ad626fSUlf Hansson .pwr_sta2nd_offs = 0x170, 102*e2ad626fSUlf Hansson .sram_pdn_bits = BIT(8), 103*e2ad626fSUlf Hansson .sram_pdn_ack_bits = BIT(12), 104*e2ad626fSUlf Hansson .bp_infracfg = { 105*e2ad626fSUlf Hansson BUS_PROT_WR_IGN(MT8186_TOP_AXI_PROT_EN_1_DIS_STEP1, 106*e2ad626fSUlf Hansson MT8186_TOP_AXI_PROT_EN_1_SET, 107*e2ad626fSUlf Hansson MT8186_TOP_AXI_PROT_EN_1_CLR, 108*e2ad626fSUlf Hansson MT8186_TOP_AXI_PROT_EN_1_STA), 109*e2ad626fSUlf Hansson BUS_PROT_WR_IGN(MT8186_TOP_AXI_PROT_EN_DIS_STEP2, 110*e2ad626fSUlf Hansson MT8186_TOP_AXI_PROT_EN_SET, 111*e2ad626fSUlf Hansson MT8186_TOP_AXI_PROT_EN_CLR, 112*e2ad626fSUlf Hansson MT8186_TOP_AXI_PROT_EN_STA), 113*e2ad626fSUlf Hansson }, 114*e2ad626fSUlf Hansson }, 115*e2ad626fSUlf Hansson [MT8186_POWER_DOMAIN_IMG] = { 116*e2ad626fSUlf Hansson .name = "img", 117*e2ad626fSUlf Hansson .sta_mask = BIT(13), 118*e2ad626fSUlf Hansson .ctl_offs = 0x334, 119*e2ad626fSUlf Hansson .pwr_sta_offs = 0x16C, 120*e2ad626fSUlf Hansson .pwr_sta2nd_offs = 0x170, 121*e2ad626fSUlf Hansson .sram_pdn_bits = BIT(8), 122*e2ad626fSUlf Hansson .sram_pdn_ack_bits = BIT(12), 123*e2ad626fSUlf Hansson .bp_infracfg = { 124*e2ad626fSUlf Hansson BUS_PROT_WR_IGN(MT8186_TOP_AXI_PROT_EN_1_IMG_STEP1, 125*e2ad626fSUlf Hansson MT8186_TOP_AXI_PROT_EN_1_SET, 126*e2ad626fSUlf Hansson MT8186_TOP_AXI_PROT_EN_1_CLR, 127*e2ad626fSUlf Hansson MT8186_TOP_AXI_PROT_EN_1_STA), 128*e2ad626fSUlf Hansson BUS_PROT_WR_IGN(MT8186_TOP_AXI_PROT_EN_1_IMG_STEP2, 129*e2ad626fSUlf Hansson MT8186_TOP_AXI_PROT_EN_1_SET, 130*e2ad626fSUlf Hansson MT8186_TOP_AXI_PROT_EN_1_CLR, 131*e2ad626fSUlf Hansson MT8186_TOP_AXI_PROT_EN_1_STA), 132*e2ad626fSUlf Hansson }, 133*e2ad626fSUlf Hansson .caps = MTK_SCPD_KEEP_DEFAULT_OFF, 134*e2ad626fSUlf Hansson }, 135*e2ad626fSUlf Hansson [MT8186_POWER_DOMAIN_IMG2] = { 136*e2ad626fSUlf Hansson .name = "img2", 137*e2ad626fSUlf Hansson .sta_mask = BIT(14), 138*e2ad626fSUlf Hansson .ctl_offs = 0x338, 139*e2ad626fSUlf Hansson .pwr_sta_offs = 0x16C, 140*e2ad626fSUlf Hansson .pwr_sta2nd_offs = 0x170, 141*e2ad626fSUlf Hansson .sram_pdn_bits = BIT(8), 142*e2ad626fSUlf Hansson .sram_pdn_ack_bits = BIT(12), 143*e2ad626fSUlf Hansson .caps = MTK_SCPD_KEEP_DEFAULT_OFF, 144*e2ad626fSUlf Hansson }, 145*e2ad626fSUlf Hansson [MT8186_POWER_DOMAIN_IPE] = { 146*e2ad626fSUlf Hansson .name = "ipe", 147*e2ad626fSUlf Hansson .sta_mask = BIT(15), 148*e2ad626fSUlf Hansson .ctl_offs = 0x33C, 149*e2ad626fSUlf Hansson .pwr_sta_offs = 0x16C, 150*e2ad626fSUlf Hansson .pwr_sta2nd_offs = 0x170, 151*e2ad626fSUlf Hansson .sram_pdn_bits = BIT(8), 152*e2ad626fSUlf Hansson .sram_pdn_ack_bits = BIT(12), 153*e2ad626fSUlf Hansson .bp_infracfg = { 154*e2ad626fSUlf Hansson BUS_PROT_WR_IGN(MT8186_TOP_AXI_PROT_EN_1_IPE_STEP1, 155*e2ad626fSUlf Hansson MT8186_TOP_AXI_PROT_EN_1_SET, 156*e2ad626fSUlf Hansson MT8186_TOP_AXI_PROT_EN_1_CLR, 157*e2ad626fSUlf Hansson MT8186_TOP_AXI_PROT_EN_1_STA), 158*e2ad626fSUlf Hansson BUS_PROT_WR_IGN(MT8186_TOP_AXI_PROT_EN_1_IPE_STEP2, 159*e2ad626fSUlf Hansson MT8186_TOP_AXI_PROT_EN_1_SET, 160*e2ad626fSUlf Hansson MT8186_TOP_AXI_PROT_EN_1_CLR, 161*e2ad626fSUlf Hansson MT8186_TOP_AXI_PROT_EN_1_STA), 162*e2ad626fSUlf Hansson }, 163*e2ad626fSUlf Hansson .caps = MTK_SCPD_KEEP_DEFAULT_OFF, 164*e2ad626fSUlf Hansson }, 165*e2ad626fSUlf Hansson [MT8186_POWER_DOMAIN_CAM] = { 166*e2ad626fSUlf Hansson .name = "cam", 167*e2ad626fSUlf Hansson .sta_mask = BIT(23), 168*e2ad626fSUlf Hansson .ctl_offs = 0x35C, 169*e2ad626fSUlf Hansson .pwr_sta_offs = 0x16C, 170*e2ad626fSUlf Hansson .pwr_sta2nd_offs = 0x170, 171*e2ad626fSUlf Hansson .sram_pdn_bits = BIT(8), 172*e2ad626fSUlf Hansson .sram_pdn_ack_bits = BIT(12), 173*e2ad626fSUlf Hansson .bp_infracfg = { 174*e2ad626fSUlf Hansson BUS_PROT_WR_IGN(MT8186_TOP_AXI_PROT_EN_1_CAM_STEP1, 175*e2ad626fSUlf Hansson MT8186_TOP_AXI_PROT_EN_1_SET, 176*e2ad626fSUlf Hansson MT8186_TOP_AXI_PROT_EN_1_CLR, 177*e2ad626fSUlf Hansson MT8186_TOP_AXI_PROT_EN_1_STA), 178*e2ad626fSUlf Hansson BUS_PROT_WR_IGN(MT8186_TOP_AXI_PROT_EN_1_CAM_STEP2, 179*e2ad626fSUlf Hansson MT8186_TOP_AXI_PROT_EN_1_SET, 180*e2ad626fSUlf Hansson MT8186_TOP_AXI_PROT_EN_1_CLR, 181*e2ad626fSUlf Hansson MT8186_TOP_AXI_PROT_EN_1_STA), 182*e2ad626fSUlf Hansson }, 183*e2ad626fSUlf Hansson .caps = MTK_SCPD_KEEP_DEFAULT_OFF, 184*e2ad626fSUlf Hansson }, 185*e2ad626fSUlf Hansson [MT8186_POWER_DOMAIN_CAM_RAWA] = { 186*e2ad626fSUlf Hansson .name = "cam_rawa", 187*e2ad626fSUlf Hansson .sta_mask = BIT(24), 188*e2ad626fSUlf Hansson .ctl_offs = 0x360, 189*e2ad626fSUlf Hansson .pwr_sta_offs = 0x16C, 190*e2ad626fSUlf Hansson .pwr_sta2nd_offs = 0x170, 191*e2ad626fSUlf Hansson .sram_pdn_bits = BIT(8), 192*e2ad626fSUlf Hansson .sram_pdn_ack_bits = BIT(12), 193*e2ad626fSUlf Hansson .caps = MTK_SCPD_KEEP_DEFAULT_OFF, 194*e2ad626fSUlf Hansson }, 195*e2ad626fSUlf Hansson [MT8186_POWER_DOMAIN_CAM_RAWB] = { 196*e2ad626fSUlf Hansson .name = "cam_rawb", 197*e2ad626fSUlf Hansson .sta_mask = BIT(25), 198*e2ad626fSUlf Hansson .ctl_offs = 0x364, 199*e2ad626fSUlf Hansson .pwr_sta_offs = 0x16C, 200*e2ad626fSUlf Hansson .pwr_sta2nd_offs = 0x170, 201*e2ad626fSUlf Hansson .sram_pdn_bits = BIT(8), 202*e2ad626fSUlf Hansson .sram_pdn_ack_bits = BIT(12), 203*e2ad626fSUlf Hansson .caps = MTK_SCPD_KEEP_DEFAULT_OFF, 204*e2ad626fSUlf Hansson }, 205*e2ad626fSUlf Hansson [MT8186_POWER_DOMAIN_VENC] = { 206*e2ad626fSUlf Hansson .name = "venc", 207*e2ad626fSUlf Hansson .sta_mask = BIT(18), 208*e2ad626fSUlf Hansson .ctl_offs = 0x348, 209*e2ad626fSUlf Hansson .pwr_sta_offs = 0x16C, 210*e2ad626fSUlf Hansson .pwr_sta2nd_offs = 0x170, 211*e2ad626fSUlf Hansson .sram_pdn_bits = BIT(8), 212*e2ad626fSUlf Hansson .sram_pdn_ack_bits = BIT(12), 213*e2ad626fSUlf Hansson .bp_infracfg = { 214*e2ad626fSUlf Hansson BUS_PROT_WR_IGN(MT8186_TOP_AXI_PROT_EN_1_VENC_STEP1, 215*e2ad626fSUlf Hansson MT8186_TOP_AXI_PROT_EN_1_SET, 216*e2ad626fSUlf Hansson MT8186_TOP_AXI_PROT_EN_1_CLR, 217*e2ad626fSUlf Hansson MT8186_TOP_AXI_PROT_EN_1_STA), 218*e2ad626fSUlf Hansson BUS_PROT_WR_IGN(MT8186_TOP_AXI_PROT_EN_1_VENC_STEP2, 219*e2ad626fSUlf Hansson MT8186_TOP_AXI_PROT_EN_1_SET, 220*e2ad626fSUlf Hansson MT8186_TOP_AXI_PROT_EN_1_CLR, 221*e2ad626fSUlf Hansson MT8186_TOP_AXI_PROT_EN_1_STA), 222*e2ad626fSUlf Hansson }, 223*e2ad626fSUlf Hansson .caps = MTK_SCPD_KEEP_DEFAULT_OFF, 224*e2ad626fSUlf Hansson }, 225*e2ad626fSUlf Hansson [MT8186_POWER_DOMAIN_VDEC] = { 226*e2ad626fSUlf Hansson .name = "vdec", 227*e2ad626fSUlf Hansson .sta_mask = BIT(16), 228*e2ad626fSUlf Hansson .ctl_offs = 0x340, 229*e2ad626fSUlf Hansson .pwr_sta_offs = 0x16C, 230*e2ad626fSUlf Hansson .pwr_sta2nd_offs = 0x170, 231*e2ad626fSUlf Hansson .sram_pdn_bits = BIT(8), 232*e2ad626fSUlf Hansson .sram_pdn_ack_bits = BIT(12), 233*e2ad626fSUlf Hansson .bp_infracfg = { 234*e2ad626fSUlf Hansson BUS_PROT_WR_IGN(MT8186_TOP_AXI_PROT_EN_1_VDEC_STEP1, 235*e2ad626fSUlf Hansson MT8186_TOP_AXI_PROT_EN_1_SET, 236*e2ad626fSUlf Hansson MT8186_TOP_AXI_PROT_EN_1_CLR, 237*e2ad626fSUlf Hansson MT8186_TOP_AXI_PROT_EN_1_STA), 238*e2ad626fSUlf Hansson BUS_PROT_WR_IGN(MT8186_TOP_AXI_PROT_EN_1_VDEC_STEP2, 239*e2ad626fSUlf Hansson MT8186_TOP_AXI_PROT_EN_1_SET, 240*e2ad626fSUlf Hansson MT8186_TOP_AXI_PROT_EN_1_CLR, 241*e2ad626fSUlf Hansson MT8186_TOP_AXI_PROT_EN_1_STA), 242*e2ad626fSUlf Hansson }, 243*e2ad626fSUlf Hansson .caps = MTK_SCPD_KEEP_DEFAULT_OFF, 244*e2ad626fSUlf Hansson }, 245*e2ad626fSUlf Hansson [MT8186_POWER_DOMAIN_WPE] = { 246*e2ad626fSUlf Hansson .name = "wpe", 247*e2ad626fSUlf Hansson .sta_mask = BIT(0), 248*e2ad626fSUlf Hansson .ctl_offs = 0x3F8, 249*e2ad626fSUlf Hansson .pwr_sta_offs = 0x16C, 250*e2ad626fSUlf Hansson .pwr_sta2nd_offs = 0x170, 251*e2ad626fSUlf Hansson .sram_pdn_bits = BIT(8), 252*e2ad626fSUlf Hansson .sram_pdn_ack_bits = BIT(12), 253*e2ad626fSUlf Hansson .bp_infracfg = { 254*e2ad626fSUlf Hansson BUS_PROT_WR_IGN(MT8186_TOP_AXI_PROT_EN_2_WPE_STEP1, 255*e2ad626fSUlf Hansson MT8186_TOP_AXI_PROT_EN_2_SET, 256*e2ad626fSUlf Hansson MT8186_TOP_AXI_PROT_EN_2_CLR, 257*e2ad626fSUlf Hansson MT8186_TOP_AXI_PROT_EN_2_STA), 258*e2ad626fSUlf Hansson BUS_PROT_WR_IGN(MT8186_TOP_AXI_PROT_EN_2_WPE_STEP2, 259*e2ad626fSUlf Hansson MT8186_TOP_AXI_PROT_EN_2_SET, 260*e2ad626fSUlf Hansson MT8186_TOP_AXI_PROT_EN_2_CLR, 261*e2ad626fSUlf Hansson MT8186_TOP_AXI_PROT_EN_2_STA), 262*e2ad626fSUlf Hansson }, 263*e2ad626fSUlf Hansson .caps = MTK_SCPD_KEEP_DEFAULT_OFF, 264*e2ad626fSUlf Hansson }, 265*e2ad626fSUlf Hansson [MT8186_POWER_DOMAIN_CONN_ON] = { 266*e2ad626fSUlf Hansson .name = "conn_on", 267*e2ad626fSUlf Hansson .sta_mask = BIT(1), 268*e2ad626fSUlf Hansson .ctl_offs = 0x304, 269*e2ad626fSUlf Hansson .pwr_sta_offs = 0x16C, 270*e2ad626fSUlf Hansson .pwr_sta2nd_offs = 0x170, 271*e2ad626fSUlf Hansson .bp_infracfg = { 272*e2ad626fSUlf Hansson BUS_PROT_WR_IGN(MT8186_TOP_AXI_PROT_EN_1_CONN_ON_STEP1, 273*e2ad626fSUlf Hansson MT8186_TOP_AXI_PROT_EN_1_SET, 274*e2ad626fSUlf Hansson MT8186_TOP_AXI_PROT_EN_1_CLR, 275*e2ad626fSUlf Hansson MT8186_TOP_AXI_PROT_EN_1_STA), 276*e2ad626fSUlf Hansson BUS_PROT_WR_IGN(MT8186_TOP_AXI_PROT_EN_CONN_ON_STEP2, 277*e2ad626fSUlf Hansson MT8186_TOP_AXI_PROT_EN_SET, 278*e2ad626fSUlf Hansson MT8186_TOP_AXI_PROT_EN_CLR, 279*e2ad626fSUlf Hansson MT8186_TOP_AXI_PROT_EN_STA), 280*e2ad626fSUlf Hansson BUS_PROT_WR_IGN(MT8186_TOP_AXI_PROT_EN_CONN_ON_STEP3, 281*e2ad626fSUlf Hansson MT8186_TOP_AXI_PROT_EN_SET, 282*e2ad626fSUlf Hansson MT8186_TOP_AXI_PROT_EN_CLR, 283*e2ad626fSUlf Hansson MT8186_TOP_AXI_PROT_EN_STA), 284*e2ad626fSUlf Hansson BUS_PROT_WR_IGN(MT8186_TOP_AXI_PROT_EN_CONN_ON_STEP4, 285*e2ad626fSUlf Hansson MT8186_TOP_AXI_PROT_EN_SET, 286*e2ad626fSUlf Hansson MT8186_TOP_AXI_PROT_EN_CLR, 287*e2ad626fSUlf Hansson MT8186_TOP_AXI_PROT_EN_STA), 288*e2ad626fSUlf Hansson }, 289*e2ad626fSUlf Hansson .caps = MTK_SCPD_KEEP_DEFAULT_OFF | MTK_SCPD_ACTIVE_WAKEUP, 290*e2ad626fSUlf Hansson }, 291*e2ad626fSUlf Hansson [MT8186_POWER_DOMAIN_CSIRX_TOP] = { 292*e2ad626fSUlf Hansson .name = "csirx_top", 293*e2ad626fSUlf Hansson .sta_mask = BIT(6), 294*e2ad626fSUlf Hansson .ctl_offs = 0x318, 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 .caps = MTK_SCPD_KEEP_DEFAULT_OFF, 300*e2ad626fSUlf Hansson }, 301*e2ad626fSUlf Hansson [MT8186_POWER_DOMAIN_ADSP_AO] = { 302*e2ad626fSUlf Hansson .name = "adsp_ao", 303*e2ad626fSUlf Hansson .sta_mask = BIT(17), 304*e2ad626fSUlf Hansson .ctl_offs = 0x9FC, 305*e2ad626fSUlf Hansson .pwr_sta_offs = 0x16C, 306*e2ad626fSUlf Hansson .pwr_sta2nd_offs = 0x170, 307*e2ad626fSUlf Hansson }, 308*e2ad626fSUlf Hansson [MT8186_POWER_DOMAIN_ADSP_INFRA] = { 309*e2ad626fSUlf Hansson .name = "adsp_infra", 310*e2ad626fSUlf Hansson .sta_mask = BIT(10), 311*e2ad626fSUlf Hansson .ctl_offs = 0x9F8, 312*e2ad626fSUlf Hansson .pwr_sta_offs = 0x16C, 313*e2ad626fSUlf Hansson .pwr_sta2nd_offs = 0x170, 314*e2ad626fSUlf Hansson }, 315*e2ad626fSUlf Hansson [MT8186_POWER_DOMAIN_ADSP_TOP] = { 316*e2ad626fSUlf Hansson .name = "adsp_top", 317*e2ad626fSUlf Hansson .sta_mask = BIT(31), 318*e2ad626fSUlf Hansson .ctl_offs = 0x3E4, 319*e2ad626fSUlf Hansson .pwr_sta_offs = 0x16C, 320*e2ad626fSUlf Hansson .pwr_sta2nd_offs = 0x170, 321*e2ad626fSUlf Hansson .sram_pdn_bits = BIT(8), 322*e2ad626fSUlf Hansson .sram_pdn_ack_bits = BIT(12), 323*e2ad626fSUlf Hansson .bp_infracfg = { 324*e2ad626fSUlf Hansson BUS_PROT_WR_IGN(MT8186_TOP_AXI_PROT_EN_3_ADSP_TOP_STEP1, 325*e2ad626fSUlf Hansson MT8186_TOP_AXI_PROT_EN_3_SET, 326*e2ad626fSUlf Hansson MT8186_TOP_AXI_PROT_EN_3_CLR, 327*e2ad626fSUlf Hansson MT8186_TOP_AXI_PROT_EN_3_STA), 328*e2ad626fSUlf Hansson BUS_PROT_WR_IGN(MT8186_TOP_AXI_PROT_EN_3_ADSP_TOP_STEP2, 329*e2ad626fSUlf Hansson MT8186_TOP_AXI_PROT_EN_3_SET, 330*e2ad626fSUlf Hansson MT8186_TOP_AXI_PROT_EN_3_CLR, 331*e2ad626fSUlf Hansson MT8186_TOP_AXI_PROT_EN_3_STA), 332*e2ad626fSUlf Hansson }, 333*e2ad626fSUlf Hansson .caps = MTK_SCPD_SRAM_ISO | MTK_SCPD_ACTIVE_WAKEUP, 334*e2ad626fSUlf Hansson }, 335*e2ad626fSUlf Hansson }; 336*e2ad626fSUlf Hansson 337*e2ad626fSUlf Hansson static const struct scpsys_soc_data mt8186_scpsys_data = { 338*e2ad626fSUlf Hansson .domains_data = scpsys_domain_data_mt8186, 339*e2ad626fSUlf Hansson .num_domains = ARRAY_SIZE(scpsys_domain_data_mt8186), 340*e2ad626fSUlf Hansson }; 341*e2ad626fSUlf Hansson 342*e2ad626fSUlf Hansson #endif /* __SOC_MEDIATEK_MT8186_PM_DOMAINS_H */ 343