1*e2ad626fSUlf Hansson /* SPDX-License-Identifier: GPL-2.0-only */ 2*e2ad626fSUlf Hansson /* 3*e2ad626fSUlf Hansson * Copyright (c) 2021 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_MT8195_PM_DOMAINS_H 8*e2ad626fSUlf Hansson #define __SOC_MEDIATEK_MT8195_PM_DOMAINS_H 9*e2ad626fSUlf Hansson 10*e2ad626fSUlf Hansson #include "mtk-pm-domains.h" 11*e2ad626fSUlf Hansson #include <dt-bindings/power/mt8195-power.h> 12*e2ad626fSUlf Hansson 13*e2ad626fSUlf Hansson /* 14*e2ad626fSUlf Hansson * MT8195 power domain support 15*e2ad626fSUlf Hansson */ 16*e2ad626fSUlf Hansson 17*e2ad626fSUlf Hansson static const struct scpsys_domain_data scpsys_domain_data_mt8195[] = { 18*e2ad626fSUlf Hansson [MT8195_POWER_DOMAIN_PCIE_MAC_P0] = { 19*e2ad626fSUlf Hansson .name = "pcie_mac_p0", 20*e2ad626fSUlf Hansson .sta_mask = BIT(11), 21*e2ad626fSUlf Hansson .ctl_offs = 0x328, 22*e2ad626fSUlf Hansson .pwr_sta_offs = 0x174, 23*e2ad626fSUlf Hansson .pwr_sta2nd_offs = 0x178, 24*e2ad626fSUlf Hansson .sram_pdn_bits = GENMASK(8, 8), 25*e2ad626fSUlf Hansson .sram_pdn_ack_bits = GENMASK(12, 12), 26*e2ad626fSUlf Hansson .bp_infracfg = { 27*e2ad626fSUlf Hansson BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_VDNR_PCIE_MAC_P0, 28*e2ad626fSUlf Hansson MT8195_TOP_AXI_PROT_EN_VDNR_SET, 29*e2ad626fSUlf Hansson MT8195_TOP_AXI_PROT_EN_VDNR_CLR, 30*e2ad626fSUlf Hansson MT8195_TOP_AXI_PROT_EN_VDNR_STA1), 31*e2ad626fSUlf Hansson BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_VDNR_1_PCIE_MAC_P0, 32*e2ad626fSUlf Hansson MT8195_TOP_AXI_PROT_EN_VDNR_1_SET, 33*e2ad626fSUlf Hansson MT8195_TOP_AXI_PROT_EN_VDNR_1_CLR, 34*e2ad626fSUlf Hansson MT8195_TOP_AXI_PROT_EN_VDNR_1_STA1), 35*e2ad626fSUlf Hansson }, 36*e2ad626fSUlf Hansson }, 37*e2ad626fSUlf Hansson [MT8195_POWER_DOMAIN_PCIE_MAC_P1] = { 38*e2ad626fSUlf Hansson .name = "pcie_mac_p1", 39*e2ad626fSUlf Hansson .sta_mask = BIT(12), 40*e2ad626fSUlf Hansson .ctl_offs = 0x32C, 41*e2ad626fSUlf Hansson .pwr_sta_offs = 0x174, 42*e2ad626fSUlf Hansson .pwr_sta2nd_offs = 0x178, 43*e2ad626fSUlf Hansson .sram_pdn_bits = GENMASK(8, 8), 44*e2ad626fSUlf Hansson .sram_pdn_ack_bits = GENMASK(12, 12), 45*e2ad626fSUlf Hansson .bp_infracfg = { 46*e2ad626fSUlf Hansson BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_VDNR_PCIE_MAC_P1, 47*e2ad626fSUlf Hansson MT8195_TOP_AXI_PROT_EN_VDNR_SET, 48*e2ad626fSUlf Hansson MT8195_TOP_AXI_PROT_EN_VDNR_CLR, 49*e2ad626fSUlf Hansson MT8195_TOP_AXI_PROT_EN_VDNR_STA1), 50*e2ad626fSUlf Hansson BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_VDNR_1_PCIE_MAC_P1, 51*e2ad626fSUlf Hansson MT8195_TOP_AXI_PROT_EN_VDNR_1_SET, 52*e2ad626fSUlf Hansson MT8195_TOP_AXI_PROT_EN_VDNR_1_CLR, 53*e2ad626fSUlf Hansson MT8195_TOP_AXI_PROT_EN_VDNR_1_STA1), 54*e2ad626fSUlf Hansson }, 55*e2ad626fSUlf Hansson }, 56*e2ad626fSUlf Hansson [MT8195_POWER_DOMAIN_PCIE_PHY] = { 57*e2ad626fSUlf Hansson .name = "pcie_phy", 58*e2ad626fSUlf Hansson .sta_mask = BIT(13), 59*e2ad626fSUlf Hansson .ctl_offs = 0x330, 60*e2ad626fSUlf Hansson .pwr_sta_offs = 0x174, 61*e2ad626fSUlf Hansson .pwr_sta2nd_offs = 0x178, 62*e2ad626fSUlf Hansson .caps = MTK_SCPD_ACTIVE_WAKEUP, 63*e2ad626fSUlf Hansson }, 64*e2ad626fSUlf Hansson [MT8195_POWER_DOMAIN_SSUSB_PCIE_PHY] = { 65*e2ad626fSUlf Hansson .name = "ssusb_pcie_phy", 66*e2ad626fSUlf Hansson .sta_mask = BIT(14), 67*e2ad626fSUlf Hansson .ctl_offs = 0x334, 68*e2ad626fSUlf Hansson .pwr_sta_offs = 0x174, 69*e2ad626fSUlf Hansson .pwr_sta2nd_offs = 0x178, 70*e2ad626fSUlf Hansson .caps = MTK_SCPD_ACTIVE_WAKEUP | MTK_SCPD_ALWAYS_ON, 71*e2ad626fSUlf Hansson }, 72*e2ad626fSUlf Hansson [MT8195_POWER_DOMAIN_CSI_RX_TOP] = { 73*e2ad626fSUlf Hansson .name = "csi_rx_top", 74*e2ad626fSUlf Hansson .sta_mask = BIT(18), 75*e2ad626fSUlf Hansson .ctl_offs = 0x3C4, 76*e2ad626fSUlf Hansson .pwr_sta_offs = 0x174, 77*e2ad626fSUlf Hansson .pwr_sta2nd_offs = 0x178, 78*e2ad626fSUlf Hansson .caps = MTK_SCPD_KEEP_DEFAULT_OFF, 79*e2ad626fSUlf Hansson }, 80*e2ad626fSUlf Hansson [MT8195_POWER_DOMAIN_ETHER] = { 81*e2ad626fSUlf Hansson .name = "ether", 82*e2ad626fSUlf Hansson .sta_mask = BIT(3), 83*e2ad626fSUlf Hansson .ctl_offs = 0x344, 84*e2ad626fSUlf Hansson .pwr_sta_offs = 0x16c, 85*e2ad626fSUlf Hansson .pwr_sta2nd_offs = 0x170, 86*e2ad626fSUlf Hansson .sram_pdn_bits = GENMASK(8, 8), 87*e2ad626fSUlf Hansson .sram_pdn_ack_bits = GENMASK(12, 12), 88*e2ad626fSUlf Hansson .caps = MTK_SCPD_ACTIVE_WAKEUP, 89*e2ad626fSUlf Hansson }, 90*e2ad626fSUlf Hansson [MT8195_POWER_DOMAIN_ADSP] = { 91*e2ad626fSUlf Hansson .name = "adsp", 92*e2ad626fSUlf Hansson .sta_mask = BIT(10), 93*e2ad626fSUlf Hansson .ctl_offs = 0x360, 94*e2ad626fSUlf Hansson .pwr_sta_offs = 0x16c, 95*e2ad626fSUlf Hansson .pwr_sta2nd_offs = 0x170, 96*e2ad626fSUlf Hansson .sram_pdn_bits = GENMASK(8, 8), 97*e2ad626fSUlf Hansson .sram_pdn_ack_bits = GENMASK(12, 12), 98*e2ad626fSUlf Hansson .bp_infracfg = { 99*e2ad626fSUlf Hansson BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_2_ADSP, 100*e2ad626fSUlf Hansson MT8195_TOP_AXI_PROT_EN_2_SET, 101*e2ad626fSUlf Hansson MT8195_TOP_AXI_PROT_EN_2_CLR, 102*e2ad626fSUlf Hansson MT8195_TOP_AXI_PROT_EN_2_STA1), 103*e2ad626fSUlf Hansson }, 104*e2ad626fSUlf Hansson .caps = MTK_SCPD_SRAM_ISO | MTK_SCPD_ACTIVE_WAKEUP, 105*e2ad626fSUlf Hansson }, 106*e2ad626fSUlf Hansson [MT8195_POWER_DOMAIN_AUDIO] = { 107*e2ad626fSUlf Hansson .name = "audio", 108*e2ad626fSUlf Hansson .sta_mask = BIT(8), 109*e2ad626fSUlf Hansson .ctl_offs = 0x358, 110*e2ad626fSUlf Hansson .pwr_sta_offs = 0x16c, 111*e2ad626fSUlf Hansson .pwr_sta2nd_offs = 0x170, 112*e2ad626fSUlf Hansson .sram_pdn_bits = GENMASK(8, 8), 113*e2ad626fSUlf Hansson .sram_pdn_ack_bits = GENMASK(12, 12), 114*e2ad626fSUlf Hansson .bp_infracfg = { 115*e2ad626fSUlf Hansson BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_2_AUDIO, 116*e2ad626fSUlf Hansson MT8195_TOP_AXI_PROT_EN_2_SET, 117*e2ad626fSUlf Hansson MT8195_TOP_AXI_PROT_EN_2_CLR, 118*e2ad626fSUlf Hansson MT8195_TOP_AXI_PROT_EN_2_STA1), 119*e2ad626fSUlf Hansson }, 120*e2ad626fSUlf Hansson }, 121*e2ad626fSUlf Hansson [MT8195_POWER_DOMAIN_MFG0] = { 122*e2ad626fSUlf Hansson .name = "mfg0", 123*e2ad626fSUlf Hansson .sta_mask = BIT(1), 124*e2ad626fSUlf Hansson .ctl_offs = 0x300, 125*e2ad626fSUlf Hansson .pwr_sta_offs = 0x174, 126*e2ad626fSUlf Hansson .pwr_sta2nd_offs = 0x178, 127*e2ad626fSUlf Hansson .sram_pdn_bits = GENMASK(8, 8), 128*e2ad626fSUlf Hansson .sram_pdn_ack_bits = GENMASK(12, 12), 129*e2ad626fSUlf Hansson .caps = MTK_SCPD_KEEP_DEFAULT_OFF | MTK_SCPD_DOMAIN_SUPPLY, 130*e2ad626fSUlf Hansson }, 131*e2ad626fSUlf Hansson [MT8195_POWER_DOMAIN_MFG1] = { 132*e2ad626fSUlf Hansson .name = "mfg1", 133*e2ad626fSUlf Hansson .sta_mask = BIT(2), 134*e2ad626fSUlf Hansson .ctl_offs = 0x304, 135*e2ad626fSUlf Hansson .pwr_sta_offs = 0x174, 136*e2ad626fSUlf Hansson .pwr_sta2nd_offs = 0x178, 137*e2ad626fSUlf Hansson .sram_pdn_bits = GENMASK(8, 8), 138*e2ad626fSUlf Hansson .sram_pdn_ack_bits = GENMASK(12, 12), 139*e2ad626fSUlf Hansson .bp_infracfg = { 140*e2ad626fSUlf Hansson BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_MFG1, 141*e2ad626fSUlf Hansson MT8195_TOP_AXI_PROT_EN_SET, 142*e2ad626fSUlf Hansson MT8195_TOP_AXI_PROT_EN_CLR, 143*e2ad626fSUlf Hansson MT8195_TOP_AXI_PROT_EN_STA1), 144*e2ad626fSUlf Hansson BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_2_MFG1, 145*e2ad626fSUlf Hansson MT8195_TOP_AXI_PROT_EN_2_SET, 146*e2ad626fSUlf Hansson MT8195_TOP_AXI_PROT_EN_2_CLR, 147*e2ad626fSUlf Hansson MT8195_TOP_AXI_PROT_EN_2_STA1), 148*e2ad626fSUlf Hansson BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_1_MFG1, 149*e2ad626fSUlf Hansson MT8195_TOP_AXI_PROT_EN_1_SET, 150*e2ad626fSUlf Hansson MT8195_TOP_AXI_PROT_EN_1_CLR, 151*e2ad626fSUlf Hansson MT8195_TOP_AXI_PROT_EN_1_STA1), 152*e2ad626fSUlf Hansson BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_2_MFG1_2ND, 153*e2ad626fSUlf Hansson MT8195_TOP_AXI_PROT_EN_2_SET, 154*e2ad626fSUlf Hansson MT8195_TOP_AXI_PROT_EN_2_CLR, 155*e2ad626fSUlf Hansson MT8195_TOP_AXI_PROT_EN_2_STA1), 156*e2ad626fSUlf Hansson BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_MFG1_2ND, 157*e2ad626fSUlf Hansson MT8195_TOP_AXI_PROT_EN_SET, 158*e2ad626fSUlf Hansson MT8195_TOP_AXI_PROT_EN_CLR, 159*e2ad626fSUlf Hansson MT8195_TOP_AXI_PROT_EN_STA1), 160*e2ad626fSUlf Hansson BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_SUB_INFRA_VDNR_MFG1, 161*e2ad626fSUlf Hansson MT8195_TOP_AXI_PROT_EN_SUB_INFRA_VDNR_SET, 162*e2ad626fSUlf Hansson MT8195_TOP_AXI_PROT_EN_SUB_INFRA_VDNR_CLR, 163*e2ad626fSUlf Hansson MT8195_TOP_AXI_PROT_EN_SUB_INFRA_VDNR_STA1), 164*e2ad626fSUlf Hansson }, 165*e2ad626fSUlf Hansson .caps = MTK_SCPD_KEEP_DEFAULT_OFF | MTK_SCPD_DOMAIN_SUPPLY, 166*e2ad626fSUlf Hansson }, 167*e2ad626fSUlf Hansson [MT8195_POWER_DOMAIN_MFG2] = { 168*e2ad626fSUlf Hansson .name = "mfg2", 169*e2ad626fSUlf Hansson .sta_mask = BIT(3), 170*e2ad626fSUlf Hansson .ctl_offs = 0x308, 171*e2ad626fSUlf Hansson .pwr_sta_offs = 0x174, 172*e2ad626fSUlf Hansson .pwr_sta2nd_offs = 0x178, 173*e2ad626fSUlf Hansson .sram_pdn_bits = GENMASK(8, 8), 174*e2ad626fSUlf Hansson .sram_pdn_ack_bits = GENMASK(12, 12), 175*e2ad626fSUlf Hansson .caps = MTK_SCPD_KEEP_DEFAULT_OFF, 176*e2ad626fSUlf Hansson }, 177*e2ad626fSUlf Hansson [MT8195_POWER_DOMAIN_MFG3] = { 178*e2ad626fSUlf Hansson .name = "mfg3", 179*e2ad626fSUlf Hansson .sta_mask = BIT(4), 180*e2ad626fSUlf Hansson .ctl_offs = 0x30C, 181*e2ad626fSUlf Hansson .pwr_sta_offs = 0x174, 182*e2ad626fSUlf Hansson .pwr_sta2nd_offs = 0x178, 183*e2ad626fSUlf Hansson .sram_pdn_bits = GENMASK(8, 8), 184*e2ad626fSUlf Hansson .sram_pdn_ack_bits = GENMASK(12, 12), 185*e2ad626fSUlf Hansson .caps = MTK_SCPD_KEEP_DEFAULT_OFF, 186*e2ad626fSUlf Hansson }, 187*e2ad626fSUlf Hansson [MT8195_POWER_DOMAIN_MFG4] = { 188*e2ad626fSUlf Hansson .name = "mfg4", 189*e2ad626fSUlf Hansson .sta_mask = BIT(5), 190*e2ad626fSUlf Hansson .ctl_offs = 0x310, 191*e2ad626fSUlf Hansson .pwr_sta_offs = 0x174, 192*e2ad626fSUlf Hansson .pwr_sta2nd_offs = 0x178, 193*e2ad626fSUlf Hansson .sram_pdn_bits = GENMASK(8, 8), 194*e2ad626fSUlf Hansson .sram_pdn_ack_bits = GENMASK(12, 12), 195*e2ad626fSUlf Hansson .caps = MTK_SCPD_KEEP_DEFAULT_OFF, 196*e2ad626fSUlf Hansson }, 197*e2ad626fSUlf Hansson [MT8195_POWER_DOMAIN_MFG5] = { 198*e2ad626fSUlf Hansson .name = "mfg5", 199*e2ad626fSUlf Hansson .sta_mask = BIT(6), 200*e2ad626fSUlf Hansson .ctl_offs = 0x314, 201*e2ad626fSUlf Hansson .pwr_sta_offs = 0x174, 202*e2ad626fSUlf Hansson .pwr_sta2nd_offs = 0x178, 203*e2ad626fSUlf Hansson .sram_pdn_bits = GENMASK(8, 8), 204*e2ad626fSUlf Hansson .sram_pdn_ack_bits = GENMASK(12, 12), 205*e2ad626fSUlf Hansson .caps = MTK_SCPD_KEEP_DEFAULT_OFF, 206*e2ad626fSUlf Hansson }, 207*e2ad626fSUlf Hansson [MT8195_POWER_DOMAIN_MFG6] = { 208*e2ad626fSUlf Hansson .name = "mfg6", 209*e2ad626fSUlf Hansson .sta_mask = BIT(7), 210*e2ad626fSUlf Hansson .ctl_offs = 0x318, 211*e2ad626fSUlf Hansson .pwr_sta_offs = 0x174, 212*e2ad626fSUlf Hansson .pwr_sta2nd_offs = 0x178, 213*e2ad626fSUlf Hansson .sram_pdn_bits = GENMASK(8, 8), 214*e2ad626fSUlf Hansson .sram_pdn_ack_bits = GENMASK(12, 12), 215*e2ad626fSUlf Hansson .caps = MTK_SCPD_KEEP_DEFAULT_OFF, 216*e2ad626fSUlf Hansson }, 217*e2ad626fSUlf Hansson [MT8195_POWER_DOMAIN_VPPSYS0] = { 218*e2ad626fSUlf Hansson .name = "vppsys0", 219*e2ad626fSUlf Hansson .sta_mask = BIT(11), 220*e2ad626fSUlf Hansson .ctl_offs = 0x364, 221*e2ad626fSUlf Hansson .pwr_sta_offs = 0x16c, 222*e2ad626fSUlf Hansson .pwr_sta2nd_offs = 0x170, 223*e2ad626fSUlf Hansson .sram_pdn_bits = GENMASK(8, 8), 224*e2ad626fSUlf Hansson .sram_pdn_ack_bits = GENMASK(12, 12), 225*e2ad626fSUlf Hansson .bp_infracfg = { 226*e2ad626fSUlf Hansson BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_VPPSYS0, 227*e2ad626fSUlf Hansson MT8195_TOP_AXI_PROT_EN_SET, 228*e2ad626fSUlf Hansson MT8195_TOP_AXI_PROT_EN_CLR, 229*e2ad626fSUlf Hansson MT8195_TOP_AXI_PROT_EN_STA1), 230*e2ad626fSUlf Hansson BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_MM_2_VPPSYS0, 231*e2ad626fSUlf Hansson MT8195_TOP_AXI_PROT_EN_MM_2_SET, 232*e2ad626fSUlf Hansson MT8195_TOP_AXI_PROT_EN_MM_2_CLR, 233*e2ad626fSUlf Hansson MT8195_TOP_AXI_PROT_EN_MM_2_STA1), 234*e2ad626fSUlf Hansson BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_VPPSYS0_2ND, 235*e2ad626fSUlf Hansson MT8195_TOP_AXI_PROT_EN_SET, 236*e2ad626fSUlf Hansson MT8195_TOP_AXI_PROT_EN_CLR, 237*e2ad626fSUlf Hansson MT8195_TOP_AXI_PROT_EN_STA1), 238*e2ad626fSUlf Hansson BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_MM_2_VPPSYS0_2ND, 239*e2ad626fSUlf Hansson MT8195_TOP_AXI_PROT_EN_MM_2_SET, 240*e2ad626fSUlf Hansson MT8195_TOP_AXI_PROT_EN_MM_2_CLR, 241*e2ad626fSUlf Hansson MT8195_TOP_AXI_PROT_EN_MM_2_STA1), 242*e2ad626fSUlf Hansson BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_SUB_INFRA_VDNR_VPPSYS0, 243*e2ad626fSUlf Hansson MT8195_TOP_AXI_PROT_EN_SUB_INFRA_VDNR_SET, 244*e2ad626fSUlf Hansson MT8195_TOP_AXI_PROT_EN_SUB_INFRA_VDNR_CLR, 245*e2ad626fSUlf Hansson MT8195_TOP_AXI_PROT_EN_SUB_INFRA_VDNR_STA1), 246*e2ad626fSUlf Hansson }, 247*e2ad626fSUlf Hansson }, 248*e2ad626fSUlf Hansson [MT8195_POWER_DOMAIN_VDOSYS0] = { 249*e2ad626fSUlf Hansson .name = "vdosys0", 250*e2ad626fSUlf Hansson .sta_mask = BIT(13), 251*e2ad626fSUlf Hansson .ctl_offs = 0x36C, 252*e2ad626fSUlf Hansson .pwr_sta_offs = 0x16c, 253*e2ad626fSUlf Hansson .pwr_sta2nd_offs = 0x170, 254*e2ad626fSUlf Hansson .sram_pdn_bits = GENMASK(8, 8), 255*e2ad626fSUlf Hansson .sram_pdn_ack_bits = GENMASK(12, 12), 256*e2ad626fSUlf Hansson .bp_infracfg = { 257*e2ad626fSUlf Hansson BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_MM_VDOSYS0, 258*e2ad626fSUlf Hansson MT8195_TOP_AXI_PROT_EN_MM_SET, 259*e2ad626fSUlf Hansson MT8195_TOP_AXI_PROT_EN_MM_CLR, 260*e2ad626fSUlf Hansson MT8195_TOP_AXI_PROT_EN_MM_STA1), 261*e2ad626fSUlf Hansson BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_VDOSYS0, 262*e2ad626fSUlf Hansson MT8195_TOP_AXI_PROT_EN_SET, 263*e2ad626fSUlf Hansson MT8195_TOP_AXI_PROT_EN_CLR, 264*e2ad626fSUlf Hansson MT8195_TOP_AXI_PROT_EN_STA1), 265*e2ad626fSUlf Hansson BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_SUB_INFRA_VDNR_VDOSYS0, 266*e2ad626fSUlf Hansson MT8195_TOP_AXI_PROT_EN_SUB_INFRA_VDNR_SET, 267*e2ad626fSUlf Hansson MT8195_TOP_AXI_PROT_EN_SUB_INFRA_VDNR_CLR, 268*e2ad626fSUlf Hansson MT8195_TOP_AXI_PROT_EN_SUB_INFRA_VDNR_STA1), 269*e2ad626fSUlf Hansson }, 270*e2ad626fSUlf Hansson }, 271*e2ad626fSUlf Hansson [MT8195_POWER_DOMAIN_VPPSYS1] = { 272*e2ad626fSUlf Hansson .name = "vppsys1", 273*e2ad626fSUlf Hansson .sta_mask = BIT(12), 274*e2ad626fSUlf Hansson .ctl_offs = 0x368, 275*e2ad626fSUlf Hansson .pwr_sta_offs = 0x16c, 276*e2ad626fSUlf Hansson .pwr_sta2nd_offs = 0x170, 277*e2ad626fSUlf Hansson .sram_pdn_bits = GENMASK(8, 8), 278*e2ad626fSUlf Hansson .sram_pdn_ack_bits = GENMASK(12, 12), 279*e2ad626fSUlf Hansson .bp_infracfg = { 280*e2ad626fSUlf Hansson BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_MM_VPPSYS1, 281*e2ad626fSUlf Hansson MT8195_TOP_AXI_PROT_EN_MM_SET, 282*e2ad626fSUlf Hansson MT8195_TOP_AXI_PROT_EN_MM_CLR, 283*e2ad626fSUlf Hansson MT8195_TOP_AXI_PROT_EN_MM_STA1), 284*e2ad626fSUlf Hansson BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_MM_VPPSYS1_2ND, 285*e2ad626fSUlf Hansson MT8195_TOP_AXI_PROT_EN_MM_SET, 286*e2ad626fSUlf Hansson MT8195_TOP_AXI_PROT_EN_MM_CLR, 287*e2ad626fSUlf Hansson MT8195_TOP_AXI_PROT_EN_MM_STA1), 288*e2ad626fSUlf Hansson BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_MM_2_VPPSYS1, 289*e2ad626fSUlf Hansson MT8195_TOP_AXI_PROT_EN_MM_2_SET, 290*e2ad626fSUlf Hansson MT8195_TOP_AXI_PROT_EN_MM_2_CLR, 291*e2ad626fSUlf Hansson MT8195_TOP_AXI_PROT_EN_MM_2_STA1), 292*e2ad626fSUlf Hansson }, 293*e2ad626fSUlf Hansson }, 294*e2ad626fSUlf Hansson [MT8195_POWER_DOMAIN_VDOSYS1] = { 295*e2ad626fSUlf Hansson .name = "vdosys1", 296*e2ad626fSUlf Hansson .sta_mask = BIT(14), 297*e2ad626fSUlf Hansson .ctl_offs = 0x370, 298*e2ad626fSUlf Hansson .pwr_sta_offs = 0x16c, 299*e2ad626fSUlf Hansson .pwr_sta2nd_offs = 0x170, 300*e2ad626fSUlf Hansson .sram_pdn_bits = GENMASK(8, 8), 301*e2ad626fSUlf Hansson .sram_pdn_ack_bits = GENMASK(12, 12), 302*e2ad626fSUlf Hansson .bp_infracfg = { 303*e2ad626fSUlf Hansson BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_MM_VDOSYS1, 304*e2ad626fSUlf Hansson MT8195_TOP_AXI_PROT_EN_MM_SET, 305*e2ad626fSUlf Hansson MT8195_TOP_AXI_PROT_EN_MM_CLR, 306*e2ad626fSUlf Hansson MT8195_TOP_AXI_PROT_EN_MM_STA1), 307*e2ad626fSUlf Hansson BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_MM_VDOSYS1_2ND, 308*e2ad626fSUlf Hansson MT8195_TOP_AXI_PROT_EN_MM_SET, 309*e2ad626fSUlf Hansson MT8195_TOP_AXI_PROT_EN_MM_CLR, 310*e2ad626fSUlf Hansson MT8195_TOP_AXI_PROT_EN_MM_STA1), 311*e2ad626fSUlf Hansson BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_MM_2_VDOSYS1, 312*e2ad626fSUlf Hansson MT8195_TOP_AXI_PROT_EN_MM_2_SET, 313*e2ad626fSUlf Hansson MT8195_TOP_AXI_PROT_EN_MM_2_CLR, 314*e2ad626fSUlf Hansson MT8195_TOP_AXI_PROT_EN_MM_2_STA1), 315*e2ad626fSUlf Hansson }, 316*e2ad626fSUlf Hansson }, 317*e2ad626fSUlf Hansson [MT8195_POWER_DOMAIN_DP_TX] = { 318*e2ad626fSUlf Hansson .name = "dp_tx", 319*e2ad626fSUlf Hansson .sta_mask = BIT(16), 320*e2ad626fSUlf Hansson .ctl_offs = 0x378, 321*e2ad626fSUlf Hansson .pwr_sta_offs = 0x16c, 322*e2ad626fSUlf Hansson .pwr_sta2nd_offs = 0x170, 323*e2ad626fSUlf Hansson .sram_pdn_bits = GENMASK(8, 8), 324*e2ad626fSUlf Hansson .sram_pdn_ack_bits = GENMASK(12, 12), 325*e2ad626fSUlf Hansson .bp_infracfg = { 326*e2ad626fSUlf Hansson BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_VDNR_1_DP_TX, 327*e2ad626fSUlf Hansson MT8195_TOP_AXI_PROT_EN_VDNR_1_SET, 328*e2ad626fSUlf Hansson MT8195_TOP_AXI_PROT_EN_VDNR_1_CLR, 329*e2ad626fSUlf Hansson MT8195_TOP_AXI_PROT_EN_VDNR_1_STA1), 330*e2ad626fSUlf Hansson }, 331*e2ad626fSUlf Hansson .caps = MTK_SCPD_KEEP_DEFAULT_OFF, 332*e2ad626fSUlf Hansson }, 333*e2ad626fSUlf Hansson [MT8195_POWER_DOMAIN_EPD_TX] = { 334*e2ad626fSUlf Hansson .name = "epd_tx", 335*e2ad626fSUlf Hansson .sta_mask = BIT(17), 336*e2ad626fSUlf Hansson .ctl_offs = 0x37C, 337*e2ad626fSUlf Hansson .pwr_sta_offs = 0x16c, 338*e2ad626fSUlf Hansson .pwr_sta2nd_offs = 0x170, 339*e2ad626fSUlf Hansson .sram_pdn_bits = GENMASK(8, 8), 340*e2ad626fSUlf Hansson .sram_pdn_ack_bits = GENMASK(12, 12), 341*e2ad626fSUlf Hansson .bp_infracfg = { 342*e2ad626fSUlf Hansson BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_VDNR_1_EPD_TX, 343*e2ad626fSUlf Hansson MT8195_TOP_AXI_PROT_EN_VDNR_1_SET, 344*e2ad626fSUlf Hansson MT8195_TOP_AXI_PROT_EN_VDNR_1_CLR, 345*e2ad626fSUlf Hansson MT8195_TOP_AXI_PROT_EN_VDNR_1_STA1), 346*e2ad626fSUlf Hansson }, 347*e2ad626fSUlf Hansson .caps = MTK_SCPD_KEEP_DEFAULT_OFF, 348*e2ad626fSUlf Hansson }, 349*e2ad626fSUlf Hansson [MT8195_POWER_DOMAIN_HDMI_TX] = { 350*e2ad626fSUlf Hansson .name = "hdmi_tx", 351*e2ad626fSUlf Hansson .sta_mask = BIT(18), 352*e2ad626fSUlf Hansson .ctl_offs = 0x380, 353*e2ad626fSUlf Hansson .pwr_sta_offs = 0x16c, 354*e2ad626fSUlf Hansson .pwr_sta2nd_offs = 0x170, 355*e2ad626fSUlf Hansson .sram_pdn_bits = GENMASK(8, 8), 356*e2ad626fSUlf Hansson .sram_pdn_ack_bits = GENMASK(12, 12), 357*e2ad626fSUlf Hansson .caps = MTK_SCPD_KEEP_DEFAULT_OFF | MTK_SCPD_ACTIVE_WAKEUP, 358*e2ad626fSUlf Hansson }, 359*e2ad626fSUlf Hansson [MT8195_POWER_DOMAIN_WPESYS] = { 360*e2ad626fSUlf Hansson .name = "wpesys", 361*e2ad626fSUlf Hansson .sta_mask = BIT(15), 362*e2ad626fSUlf Hansson .ctl_offs = 0x374, 363*e2ad626fSUlf Hansson .pwr_sta_offs = 0x16c, 364*e2ad626fSUlf Hansson .pwr_sta2nd_offs = 0x170, 365*e2ad626fSUlf Hansson .sram_pdn_bits = GENMASK(8, 8), 366*e2ad626fSUlf Hansson .sram_pdn_ack_bits = GENMASK(12, 12), 367*e2ad626fSUlf Hansson .bp_infracfg = { 368*e2ad626fSUlf Hansson BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_MM_2_WPESYS, 369*e2ad626fSUlf Hansson MT8195_TOP_AXI_PROT_EN_MM_2_SET, 370*e2ad626fSUlf Hansson MT8195_TOP_AXI_PROT_EN_MM_2_CLR, 371*e2ad626fSUlf Hansson MT8195_TOP_AXI_PROT_EN_MM_2_STA1), 372*e2ad626fSUlf Hansson BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_MM_WPESYS, 373*e2ad626fSUlf Hansson MT8195_TOP_AXI_PROT_EN_MM_SET, 374*e2ad626fSUlf Hansson MT8195_TOP_AXI_PROT_EN_MM_CLR, 375*e2ad626fSUlf Hansson MT8195_TOP_AXI_PROT_EN_MM_STA1), 376*e2ad626fSUlf Hansson BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_MM_2_WPESYS_2ND, 377*e2ad626fSUlf Hansson MT8195_TOP_AXI_PROT_EN_MM_2_SET, 378*e2ad626fSUlf Hansson MT8195_TOP_AXI_PROT_EN_MM_2_CLR, 379*e2ad626fSUlf Hansson MT8195_TOP_AXI_PROT_EN_MM_2_STA1), 380*e2ad626fSUlf Hansson }, 381*e2ad626fSUlf Hansson }, 382*e2ad626fSUlf Hansson [MT8195_POWER_DOMAIN_VDEC0] = { 383*e2ad626fSUlf Hansson .name = "vdec0", 384*e2ad626fSUlf Hansson .sta_mask = BIT(20), 385*e2ad626fSUlf Hansson .ctl_offs = 0x388, 386*e2ad626fSUlf Hansson .pwr_sta_offs = 0x16c, 387*e2ad626fSUlf Hansson .pwr_sta2nd_offs = 0x170, 388*e2ad626fSUlf Hansson .sram_pdn_bits = GENMASK(8, 8), 389*e2ad626fSUlf Hansson .sram_pdn_ack_bits = GENMASK(12, 12), 390*e2ad626fSUlf Hansson .bp_infracfg = { 391*e2ad626fSUlf Hansson BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_MM_VDEC0, 392*e2ad626fSUlf Hansson MT8195_TOP_AXI_PROT_EN_MM_SET, 393*e2ad626fSUlf Hansson MT8195_TOP_AXI_PROT_EN_MM_CLR, 394*e2ad626fSUlf Hansson MT8195_TOP_AXI_PROT_EN_MM_STA1), 395*e2ad626fSUlf Hansson BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_MM_2_VDEC0, 396*e2ad626fSUlf Hansson MT8195_TOP_AXI_PROT_EN_MM_2_SET, 397*e2ad626fSUlf Hansson MT8195_TOP_AXI_PROT_EN_MM_2_CLR, 398*e2ad626fSUlf Hansson MT8195_TOP_AXI_PROT_EN_MM_2_STA1), 399*e2ad626fSUlf Hansson BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_MM_VDEC0_2ND, 400*e2ad626fSUlf Hansson MT8195_TOP_AXI_PROT_EN_MM_SET, 401*e2ad626fSUlf Hansson MT8195_TOP_AXI_PROT_EN_MM_CLR, 402*e2ad626fSUlf Hansson MT8195_TOP_AXI_PROT_EN_MM_STA1), 403*e2ad626fSUlf Hansson BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_MM_2_VDEC0_2ND, 404*e2ad626fSUlf Hansson MT8195_TOP_AXI_PROT_EN_MM_2_SET, 405*e2ad626fSUlf Hansson MT8195_TOP_AXI_PROT_EN_MM_2_CLR, 406*e2ad626fSUlf Hansson MT8195_TOP_AXI_PROT_EN_MM_2_STA1), 407*e2ad626fSUlf Hansson }, 408*e2ad626fSUlf Hansson .caps = MTK_SCPD_KEEP_DEFAULT_OFF, 409*e2ad626fSUlf Hansson }, 410*e2ad626fSUlf Hansson [MT8195_POWER_DOMAIN_VDEC1] = { 411*e2ad626fSUlf Hansson .name = "vdec1", 412*e2ad626fSUlf Hansson .sta_mask = BIT(21), 413*e2ad626fSUlf Hansson .ctl_offs = 0x38C, 414*e2ad626fSUlf Hansson .pwr_sta_offs = 0x16c, 415*e2ad626fSUlf Hansson .pwr_sta2nd_offs = 0x170, 416*e2ad626fSUlf Hansson .sram_pdn_bits = GENMASK(8, 8), 417*e2ad626fSUlf Hansson .sram_pdn_ack_bits = GENMASK(12, 12), 418*e2ad626fSUlf Hansson .bp_infracfg = { 419*e2ad626fSUlf Hansson BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_MM_VDEC1, 420*e2ad626fSUlf Hansson MT8195_TOP_AXI_PROT_EN_MM_SET, 421*e2ad626fSUlf Hansson MT8195_TOP_AXI_PROT_EN_MM_CLR, 422*e2ad626fSUlf Hansson MT8195_TOP_AXI_PROT_EN_MM_STA1), 423*e2ad626fSUlf Hansson BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_MM_VDEC1_2ND, 424*e2ad626fSUlf Hansson MT8195_TOP_AXI_PROT_EN_MM_SET, 425*e2ad626fSUlf Hansson MT8195_TOP_AXI_PROT_EN_MM_CLR, 426*e2ad626fSUlf Hansson MT8195_TOP_AXI_PROT_EN_MM_STA1), 427*e2ad626fSUlf Hansson }, 428*e2ad626fSUlf Hansson .caps = MTK_SCPD_KEEP_DEFAULT_OFF, 429*e2ad626fSUlf Hansson }, 430*e2ad626fSUlf Hansson [MT8195_POWER_DOMAIN_VDEC2] = { 431*e2ad626fSUlf Hansson .name = "vdec2", 432*e2ad626fSUlf Hansson .sta_mask = BIT(22), 433*e2ad626fSUlf Hansson .ctl_offs = 0x390, 434*e2ad626fSUlf Hansson .pwr_sta_offs = 0x16c, 435*e2ad626fSUlf Hansson .pwr_sta2nd_offs = 0x170, 436*e2ad626fSUlf Hansson .sram_pdn_bits = GENMASK(8, 8), 437*e2ad626fSUlf Hansson .sram_pdn_ack_bits = GENMASK(12, 12), 438*e2ad626fSUlf Hansson .bp_infracfg = { 439*e2ad626fSUlf Hansson BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_MM_2_VDEC2, 440*e2ad626fSUlf Hansson MT8195_TOP_AXI_PROT_EN_MM_2_SET, 441*e2ad626fSUlf Hansson MT8195_TOP_AXI_PROT_EN_MM_2_CLR, 442*e2ad626fSUlf Hansson MT8195_TOP_AXI_PROT_EN_MM_2_STA1), 443*e2ad626fSUlf Hansson BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_MM_2_VDEC2_2ND, 444*e2ad626fSUlf Hansson MT8195_TOP_AXI_PROT_EN_MM_2_SET, 445*e2ad626fSUlf Hansson MT8195_TOP_AXI_PROT_EN_MM_2_CLR, 446*e2ad626fSUlf Hansson MT8195_TOP_AXI_PROT_EN_MM_2_STA1), 447*e2ad626fSUlf Hansson }, 448*e2ad626fSUlf Hansson .caps = MTK_SCPD_KEEP_DEFAULT_OFF, 449*e2ad626fSUlf Hansson }, 450*e2ad626fSUlf Hansson [MT8195_POWER_DOMAIN_VENC] = { 451*e2ad626fSUlf Hansson .name = "venc", 452*e2ad626fSUlf Hansson .sta_mask = BIT(23), 453*e2ad626fSUlf Hansson .ctl_offs = 0x394, 454*e2ad626fSUlf Hansson .pwr_sta_offs = 0x16c, 455*e2ad626fSUlf Hansson .pwr_sta2nd_offs = 0x170, 456*e2ad626fSUlf Hansson .sram_pdn_bits = GENMASK(8, 8), 457*e2ad626fSUlf Hansson .sram_pdn_ack_bits = GENMASK(12, 12), 458*e2ad626fSUlf Hansson .bp_infracfg = { 459*e2ad626fSUlf Hansson BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_MM_VENC, 460*e2ad626fSUlf Hansson MT8195_TOP_AXI_PROT_EN_MM_SET, 461*e2ad626fSUlf Hansson MT8195_TOP_AXI_PROT_EN_MM_CLR, 462*e2ad626fSUlf Hansson MT8195_TOP_AXI_PROT_EN_MM_STA1), 463*e2ad626fSUlf Hansson BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_MM_VENC_2ND, 464*e2ad626fSUlf Hansson MT8195_TOP_AXI_PROT_EN_MM_SET, 465*e2ad626fSUlf Hansson MT8195_TOP_AXI_PROT_EN_MM_CLR, 466*e2ad626fSUlf Hansson MT8195_TOP_AXI_PROT_EN_MM_STA1), 467*e2ad626fSUlf Hansson BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_MM_2_VENC, 468*e2ad626fSUlf Hansson MT8195_TOP_AXI_PROT_EN_MM_2_SET, 469*e2ad626fSUlf Hansson MT8195_TOP_AXI_PROT_EN_MM_2_CLR, 470*e2ad626fSUlf Hansson MT8195_TOP_AXI_PROT_EN_MM_2_STA1), 471*e2ad626fSUlf Hansson }, 472*e2ad626fSUlf Hansson .caps = MTK_SCPD_KEEP_DEFAULT_OFF, 473*e2ad626fSUlf Hansson }, 474*e2ad626fSUlf Hansson [MT8195_POWER_DOMAIN_VENC_CORE1] = { 475*e2ad626fSUlf Hansson .name = "venc_core1", 476*e2ad626fSUlf Hansson .sta_mask = BIT(24), 477*e2ad626fSUlf Hansson .ctl_offs = 0x398, 478*e2ad626fSUlf Hansson .pwr_sta_offs = 0x16c, 479*e2ad626fSUlf Hansson .pwr_sta2nd_offs = 0x170, 480*e2ad626fSUlf Hansson .sram_pdn_bits = GENMASK(8, 8), 481*e2ad626fSUlf Hansson .sram_pdn_ack_bits = GENMASK(12, 12), 482*e2ad626fSUlf Hansson .bp_infracfg = { 483*e2ad626fSUlf Hansson BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_MM_VENC_CORE1, 484*e2ad626fSUlf Hansson MT8195_TOP_AXI_PROT_EN_MM_SET, 485*e2ad626fSUlf Hansson MT8195_TOP_AXI_PROT_EN_MM_CLR, 486*e2ad626fSUlf Hansson MT8195_TOP_AXI_PROT_EN_MM_STA1), 487*e2ad626fSUlf Hansson BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_MM_2_VENC_CORE1, 488*e2ad626fSUlf Hansson MT8195_TOP_AXI_PROT_EN_MM_2_SET, 489*e2ad626fSUlf Hansson MT8195_TOP_AXI_PROT_EN_MM_2_CLR, 490*e2ad626fSUlf Hansson MT8195_TOP_AXI_PROT_EN_MM_2_STA1), 491*e2ad626fSUlf Hansson }, 492*e2ad626fSUlf Hansson .caps = MTK_SCPD_KEEP_DEFAULT_OFF, 493*e2ad626fSUlf Hansson }, 494*e2ad626fSUlf Hansson [MT8195_POWER_DOMAIN_IMG] = { 495*e2ad626fSUlf Hansson .name = "img", 496*e2ad626fSUlf Hansson .sta_mask = BIT(29), 497*e2ad626fSUlf Hansson .ctl_offs = 0x3AC, 498*e2ad626fSUlf Hansson .pwr_sta_offs = 0x16c, 499*e2ad626fSUlf Hansson .pwr_sta2nd_offs = 0x170, 500*e2ad626fSUlf Hansson .sram_pdn_bits = GENMASK(8, 8), 501*e2ad626fSUlf Hansson .sram_pdn_ack_bits = GENMASK(12, 12), 502*e2ad626fSUlf Hansson .bp_infracfg = { 503*e2ad626fSUlf Hansson BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_MM_IMG, 504*e2ad626fSUlf Hansson MT8195_TOP_AXI_PROT_EN_MM_SET, 505*e2ad626fSUlf Hansson MT8195_TOP_AXI_PROT_EN_MM_CLR, 506*e2ad626fSUlf Hansson MT8195_TOP_AXI_PROT_EN_MM_STA1), 507*e2ad626fSUlf Hansson BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_MM_IMG_2ND, 508*e2ad626fSUlf Hansson MT8195_TOP_AXI_PROT_EN_MM_SET, 509*e2ad626fSUlf Hansson MT8195_TOP_AXI_PROT_EN_MM_CLR, 510*e2ad626fSUlf Hansson MT8195_TOP_AXI_PROT_EN_MM_STA1), 511*e2ad626fSUlf Hansson }, 512*e2ad626fSUlf Hansson .caps = MTK_SCPD_KEEP_DEFAULT_OFF, 513*e2ad626fSUlf Hansson }, 514*e2ad626fSUlf Hansson [MT8195_POWER_DOMAIN_DIP] = { 515*e2ad626fSUlf Hansson .name = "dip", 516*e2ad626fSUlf Hansson .sta_mask = BIT(30), 517*e2ad626fSUlf Hansson .ctl_offs = 0x3B0, 518*e2ad626fSUlf Hansson .pwr_sta_offs = 0x16c, 519*e2ad626fSUlf Hansson .pwr_sta2nd_offs = 0x170, 520*e2ad626fSUlf Hansson .sram_pdn_bits = GENMASK(8, 8), 521*e2ad626fSUlf Hansson .sram_pdn_ack_bits = GENMASK(12, 12), 522*e2ad626fSUlf Hansson .caps = MTK_SCPD_KEEP_DEFAULT_OFF, 523*e2ad626fSUlf Hansson }, 524*e2ad626fSUlf Hansson [MT8195_POWER_DOMAIN_IPE] = { 525*e2ad626fSUlf Hansson .name = "ipe", 526*e2ad626fSUlf Hansson .sta_mask = BIT(31), 527*e2ad626fSUlf Hansson .ctl_offs = 0x3B4, 528*e2ad626fSUlf Hansson .pwr_sta_offs = 0x16c, 529*e2ad626fSUlf Hansson .pwr_sta2nd_offs = 0x170, 530*e2ad626fSUlf Hansson .sram_pdn_bits = GENMASK(8, 8), 531*e2ad626fSUlf Hansson .sram_pdn_ack_bits = GENMASK(12, 12), 532*e2ad626fSUlf Hansson .bp_infracfg = { 533*e2ad626fSUlf Hansson BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_MM_IPE, 534*e2ad626fSUlf Hansson MT8195_TOP_AXI_PROT_EN_MM_SET, 535*e2ad626fSUlf Hansson MT8195_TOP_AXI_PROT_EN_MM_CLR, 536*e2ad626fSUlf Hansson MT8195_TOP_AXI_PROT_EN_MM_STA1), 537*e2ad626fSUlf Hansson BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_MM_2_IPE, 538*e2ad626fSUlf Hansson MT8195_TOP_AXI_PROT_EN_MM_2_SET, 539*e2ad626fSUlf Hansson MT8195_TOP_AXI_PROT_EN_MM_2_CLR, 540*e2ad626fSUlf Hansson MT8195_TOP_AXI_PROT_EN_MM_2_STA1), 541*e2ad626fSUlf Hansson }, 542*e2ad626fSUlf Hansson .caps = MTK_SCPD_KEEP_DEFAULT_OFF, 543*e2ad626fSUlf Hansson }, 544*e2ad626fSUlf Hansson [MT8195_POWER_DOMAIN_CAM] = { 545*e2ad626fSUlf Hansson .name = "cam", 546*e2ad626fSUlf Hansson .sta_mask = BIT(25), 547*e2ad626fSUlf Hansson .ctl_offs = 0x39C, 548*e2ad626fSUlf Hansson .pwr_sta_offs = 0x16c, 549*e2ad626fSUlf Hansson .pwr_sta2nd_offs = 0x170, 550*e2ad626fSUlf Hansson .sram_pdn_bits = GENMASK(8, 8), 551*e2ad626fSUlf Hansson .sram_pdn_ack_bits = GENMASK(12, 12), 552*e2ad626fSUlf Hansson .bp_infracfg = { 553*e2ad626fSUlf Hansson BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_2_CAM, 554*e2ad626fSUlf Hansson MT8195_TOP_AXI_PROT_EN_2_SET, 555*e2ad626fSUlf Hansson MT8195_TOP_AXI_PROT_EN_2_CLR, 556*e2ad626fSUlf Hansson MT8195_TOP_AXI_PROT_EN_2_STA1), 557*e2ad626fSUlf Hansson BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_MM_CAM, 558*e2ad626fSUlf Hansson MT8195_TOP_AXI_PROT_EN_MM_SET, 559*e2ad626fSUlf Hansson MT8195_TOP_AXI_PROT_EN_MM_CLR, 560*e2ad626fSUlf Hansson MT8195_TOP_AXI_PROT_EN_MM_STA1), 561*e2ad626fSUlf Hansson BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_1_CAM, 562*e2ad626fSUlf Hansson MT8195_TOP_AXI_PROT_EN_1_SET, 563*e2ad626fSUlf Hansson MT8195_TOP_AXI_PROT_EN_1_CLR, 564*e2ad626fSUlf Hansson MT8195_TOP_AXI_PROT_EN_1_STA1), 565*e2ad626fSUlf Hansson BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_MM_CAM_2ND, 566*e2ad626fSUlf Hansson MT8195_TOP_AXI_PROT_EN_MM_SET, 567*e2ad626fSUlf Hansson MT8195_TOP_AXI_PROT_EN_MM_CLR, 568*e2ad626fSUlf Hansson MT8195_TOP_AXI_PROT_EN_MM_STA1), 569*e2ad626fSUlf Hansson BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_MM_2_CAM, 570*e2ad626fSUlf Hansson MT8195_TOP_AXI_PROT_EN_MM_2_SET, 571*e2ad626fSUlf Hansson MT8195_TOP_AXI_PROT_EN_MM_2_CLR, 572*e2ad626fSUlf Hansson MT8195_TOP_AXI_PROT_EN_MM_2_STA1), 573*e2ad626fSUlf Hansson }, 574*e2ad626fSUlf Hansson .caps = MTK_SCPD_KEEP_DEFAULT_OFF, 575*e2ad626fSUlf Hansson }, 576*e2ad626fSUlf Hansson [MT8195_POWER_DOMAIN_CAM_RAWA] = { 577*e2ad626fSUlf Hansson .name = "cam_rawa", 578*e2ad626fSUlf Hansson .sta_mask = BIT(26), 579*e2ad626fSUlf Hansson .ctl_offs = 0x3A0, 580*e2ad626fSUlf Hansson .pwr_sta_offs = 0x16c, 581*e2ad626fSUlf Hansson .pwr_sta2nd_offs = 0x170, 582*e2ad626fSUlf Hansson .sram_pdn_bits = GENMASK(8, 8), 583*e2ad626fSUlf Hansson .sram_pdn_ack_bits = GENMASK(12, 12), 584*e2ad626fSUlf Hansson .caps = MTK_SCPD_KEEP_DEFAULT_OFF, 585*e2ad626fSUlf Hansson }, 586*e2ad626fSUlf Hansson [MT8195_POWER_DOMAIN_CAM_RAWB] = { 587*e2ad626fSUlf Hansson .name = "cam_rawb", 588*e2ad626fSUlf Hansson .sta_mask = BIT(27), 589*e2ad626fSUlf Hansson .ctl_offs = 0x3A4, 590*e2ad626fSUlf Hansson .pwr_sta_offs = 0x16c, 591*e2ad626fSUlf Hansson .pwr_sta2nd_offs = 0x170, 592*e2ad626fSUlf Hansson .sram_pdn_bits = GENMASK(8, 8), 593*e2ad626fSUlf Hansson .sram_pdn_ack_bits = GENMASK(12, 12), 594*e2ad626fSUlf Hansson .caps = MTK_SCPD_KEEP_DEFAULT_OFF, 595*e2ad626fSUlf Hansson }, 596*e2ad626fSUlf Hansson [MT8195_POWER_DOMAIN_CAM_MRAW] = { 597*e2ad626fSUlf Hansson .name = "cam_mraw", 598*e2ad626fSUlf Hansson .sta_mask = BIT(28), 599*e2ad626fSUlf Hansson .ctl_offs = 0x3A8, 600*e2ad626fSUlf Hansson .pwr_sta_offs = 0x16c, 601*e2ad626fSUlf Hansson .pwr_sta2nd_offs = 0x170, 602*e2ad626fSUlf Hansson .sram_pdn_bits = GENMASK(8, 8), 603*e2ad626fSUlf Hansson .sram_pdn_ack_bits = GENMASK(12, 12), 604*e2ad626fSUlf Hansson .caps = MTK_SCPD_KEEP_DEFAULT_OFF, 605*e2ad626fSUlf Hansson }, 606*e2ad626fSUlf Hansson }; 607*e2ad626fSUlf Hansson 608*e2ad626fSUlf Hansson static const struct scpsys_soc_data mt8195_scpsys_data = { 609*e2ad626fSUlf Hansson .domains_data = scpsys_domain_data_mt8195, 610*e2ad626fSUlf Hansson .num_domains = ARRAY_SIZE(scpsys_domain_data_mt8195), 611*e2ad626fSUlf Hansson }; 612*e2ad626fSUlf Hansson 613*e2ad626fSUlf Hansson #endif /* __SOC_MEDIATEK_MT8195_PM_DOMAINS_H */ 614