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