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