162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0-only */ 262306a36Sopenharmony_ci/* 362306a36Sopenharmony_ci * Copyright (c) 2021 MediaTek Inc. 462306a36Sopenharmony_ci * Author: Chun-Jie Chen <chun-jie.chen@mediatek.com> 562306a36Sopenharmony_ci */ 662306a36Sopenharmony_ci 762306a36Sopenharmony_ci#ifndef __SOC_MEDIATEK_MT8195_PM_DOMAINS_H 862306a36Sopenharmony_ci#define __SOC_MEDIATEK_MT8195_PM_DOMAINS_H 962306a36Sopenharmony_ci 1062306a36Sopenharmony_ci#include "mtk-pm-domains.h" 1162306a36Sopenharmony_ci#include <dt-bindings/power/mt8195-power.h> 1262306a36Sopenharmony_ci 1362306a36Sopenharmony_ci/* 1462306a36Sopenharmony_ci * MT8195 power domain support 1562306a36Sopenharmony_ci */ 1662306a36Sopenharmony_ci 1762306a36Sopenharmony_cistatic const struct scpsys_domain_data scpsys_domain_data_mt8195[] = { 1862306a36Sopenharmony_ci [MT8195_POWER_DOMAIN_PCIE_MAC_P0] = { 1962306a36Sopenharmony_ci .name = "pcie_mac_p0", 2062306a36Sopenharmony_ci .sta_mask = BIT(11), 2162306a36Sopenharmony_ci .ctl_offs = 0x328, 2262306a36Sopenharmony_ci .pwr_sta_offs = 0x174, 2362306a36Sopenharmony_ci .pwr_sta2nd_offs = 0x178, 2462306a36Sopenharmony_ci .sram_pdn_bits = GENMASK(8, 8), 2562306a36Sopenharmony_ci .sram_pdn_ack_bits = GENMASK(12, 12), 2662306a36Sopenharmony_ci .bp_infracfg = { 2762306a36Sopenharmony_ci BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_VDNR_PCIE_MAC_P0, 2862306a36Sopenharmony_ci MT8195_TOP_AXI_PROT_EN_VDNR_SET, 2962306a36Sopenharmony_ci MT8195_TOP_AXI_PROT_EN_VDNR_CLR, 3062306a36Sopenharmony_ci MT8195_TOP_AXI_PROT_EN_VDNR_STA1), 3162306a36Sopenharmony_ci BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_VDNR_1_PCIE_MAC_P0, 3262306a36Sopenharmony_ci MT8195_TOP_AXI_PROT_EN_VDNR_1_SET, 3362306a36Sopenharmony_ci MT8195_TOP_AXI_PROT_EN_VDNR_1_CLR, 3462306a36Sopenharmony_ci MT8195_TOP_AXI_PROT_EN_VDNR_1_STA1), 3562306a36Sopenharmony_ci }, 3662306a36Sopenharmony_ci }, 3762306a36Sopenharmony_ci [MT8195_POWER_DOMAIN_PCIE_MAC_P1] = { 3862306a36Sopenharmony_ci .name = "pcie_mac_p1", 3962306a36Sopenharmony_ci .sta_mask = BIT(12), 4062306a36Sopenharmony_ci .ctl_offs = 0x32C, 4162306a36Sopenharmony_ci .pwr_sta_offs = 0x174, 4262306a36Sopenharmony_ci .pwr_sta2nd_offs = 0x178, 4362306a36Sopenharmony_ci .sram_pdn_bits = GENMASK(8, 8), 4462306a36Sopenharmony_ci .sram_pdn_ack_bits = GENMASK(12, 12), 4562306a36Sopenharmony_ci .bp_infracfg = { 4662306a36Sopenharmony_ci BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_VDNR_PCIE_MAC_P1, 4762306a36Sopenharmony_ci MT8195_TOP_AXI_PROT_EN_VDNR_SET, 4862306a36Sopenharmony_ci MT8195_TOP_AXI_PROT_EN_VDNR_CLR, 4962306a36Sopenharmony_ci MT8195_TOP_AXI_PROT_EN_VDNR_STA1), 5062306a36Sopenharmony_ci BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_VDNR_1_PCIE_MAC_P1, 5162306a36Sopenharmony_ci MT8195_TOP_AXI_PROT_EN_VDNR_1_SET, 5262306a36Sopenharmony_ci MT8195_TOP_AXI_PROT_EN_VDNR_1_CLR, 5362306a36Sopenharmony_ci MT8195_TOP_AXI_PROT_EN_VDNR_1_STA1), 5462306a36Sopenharmony_ci }, 5562306a36Sopenharmony_ci }, 5662306a36Sopenharmony_ci [MT8195_POWER_DOMAIN_PCIE_PHY] = { 5762306a36Sopenharmony_ci .name = "pcie_phy", 5862306a36Sopenharmony_ci .sta_mask = BIT(13), 5962306a36Sopenharmony_ci .ctl_offs = 0x330, 6062306a36Sopenharmony_ci .pwr_sta_offs = 0x174, 6162306a36Sopenharmony_ci .pwr_sta2nd_offs = 0x178, 6262306a36Sopenharmony_ci .caps = MTK_SCPD_ACTIVE_WAKEUP, 6362306a36Sopenharmony_ci }, 6462306a36Sopenharmony_ci [MT8195_POWER_DOMAIN_SSUSB_PCIE_PHY] = { 6562306a36Sopenharmony_ci .name = "ssusb_pcie_phy", 6662306a36Sopenharmony_ci .sta_mask = BIT(14), 6762306a36Sopenharmony_ci .ctl_offs = 0x334, 6862306a36Sopenharmony_ci .pwr_sta_offs = 0x174, 6962306a36Sopenharmony_ci .pwr_sta2nd_offs = 0x178, 7062306a36Sopenharmony_ci .caps = MTK_SCPD_ACTIVE_WAKEUP | MTK_SCPD_ALWAYS_ON, 7162306a36Sopenharmony_ci }, 7262306a36Sopenharmony_ci [MT8195_POWER_DOMAIN_CSI_RX_TOP] = { 7362306a36Sopenharmony_ci .name = "csi_rx_top", 7462306a36Sopenharmony_ci .sta_mask = BIT(18), 7562306a36Sopenharmony_ci .ctl_offs = 0x3C4, 7662306a36Sopenharmony_ci .pwr_sta_offs = 0x174, 7762306a36Sopenharmony_ci .pwr_sta2nd_offs = 0x178, 7862306a36Sopenharmony_ci .caps = MTK_SCPD_KEEP_DEFAULT_OFF, 7962306a36Sopenharmony_ci }, 8062306a36Sopenharmony_ci [MT8195_POWER_DOMAIN_ETHER] = { 8162306a36Sopenharmony_ci .name = "ether", 8262306a36Sopenharmony_ci .sta_mask = BIT(3), 8362306a36Sopenharmony_ci .ctl_offs = 0x344, 8462306a36Sopenharmony_ci .pwr_sta_offs = 0x16c, 8562306a36Sopenharmony_ci .pwr_sta2nd_offs = 0x170, 8662306a36Sopenharmony_ci .sram_pdn_bits = GENMASK(8, 8), 8762306a36Sopenharmony_ci .sram_pdn_ack_bits = GENMASK(12, 12), 8862306a36Sopenharmony_ci .caps = MTK_SCPD_ACTIVE_WAKEUP, 8962306a36Sopenharmony_ci }, 9062306a36Sopenharmony_ci [MT8195_POWER_DOMAIN_ADSP] = { 9162306a36Sopenharmony_ci .name = "adsp", 9262306a36Sopenharmony_ci .sta_mask = BIT(10), 9362306a36Sopenharmony_ci .ctl_offs = 0x360, 9462306a36Sopenharmony_ci .pwr_sta_offs = 0x16c, 9562306a36Sopenharmony_ci .pwr_sta2nd_offs = 0x170, 9662306a36Sopenharmony_ci .sram_pdn_bits = GENMASK(8, 8), 9762306a36Sopenharmony_ci .sram_pdn_ack_bits = GENMASK(12, 12), 9862306a36Sopenharmony_ci .bp_infracfg = { 9962306a36Sopenharmony_ci BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_2_ADSP, 10062306a36Sopenharmony_ci MT8195_TOP_AXI_PROT_EN_2_SET, 10162306a36Sopenharmony_ci MT8195_TOP_AXI_PROT_EN_2_CLR, 10262306a36Sopenharmony_ci MT8195_TOP_AXI_PROT_EN_2_STA1), 10362306a36Sopenharmony_ci }, 10462306a36Sopenharmony_ci .caps = MTK_SCPD_SRAM_ISO | MTK_SCPD_ACTIVE_WAKEUP, 10562306a36Sopenharmony_ci }, 10662306a36Sopenharmony_ci [MT8195_POWER_DOMAIN_AUDIO] = { 10762306a36Sopenharmony_ci .name = "audio", 10862306a36Sopenharmony_ci .sta_mask = BIT(8), 10962306a36Sopenharmony_ci .ctl_offs = 0x358, 11062306a36Sopenharmony_ci .pwr_sta_offs = 0x16c, 11162306a36Sopenharmony_ci .pwr_sta2nd_offs = 0x170, 11262306a36Sopenharmony_ci .sram_pdn_bits = GENMASK(8, 8), 11362306a36Sopenharmony_ci .sram_pdn_ack_bits = GENMASK(12, 12), 11462306a36Sopenharmony_ci .bp_infracfg = { 11562306a36Sopenharmony_ci BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_2_AUDIO, 11662306a36Sopenharmony_ci MT8195_TOP_AXI_PROT_EN_2_SET, 11762306a36Sopenharmony_ci MT8195_TOP_AXI_PROT_EN_2_CLR, 11862306a36Sopenharmony_ci MT8195_TOP_AXI_PROT_EN_2_STA1), 11962306a36Sopenharmony_ci }, 12062306a36Sopenharmony_ci }, 12162306a36Sopenharmony_ci [MT8195_POWER_DOMAIN_MFG0] = { 12262306a36Sopenharmony_ci .name = "mfg0", 12362306a36Sopenharmony_ci .sta_mask = BIT(1), 12462306a36Sopenharmony_ci .ctl_offs = 0x300, 12562306a36Sopenharmony_ci .pwr_sta_offs = 0x174, 12662306a36Sopenharmony_ci .pwr_sta2nd_offs = 0x178, 12762306a36Sopenharmony_ci .sram_pdn_bits = GENMASK(8, 8), 12862306a36Sopenharmony_ci .sram_pdn_ack_bits = GENMASK(12, 12), 12962306a36Sopenharmony_ci .caps = MTK_SCPD_KEEP_DEFAULT_OFF | MTK_SCPD_DOMAIN_SUPPLY, 13062306a36Sopenharmony_ci }, 13162306a36Sopenharmony_ci [MT8195_POWER_DOMAIN_MFG1] = { 13262306a36Sopenharmony_ci .name = "mfg1", 13362306a36Sopenharmony_ci .sta_mask = BIT(2), 13462306a36Sopenharmony_ci .ctl_offs = 0x304, 13562306a36Sopenharmony_ci .pwr_sta_offs = 0x174, 13662306a36Sopenharmony_ci .pwr_sta2nd_offs = 0x178, 13762306a36Sopenharmony_ci .sram_pdn_bits = GENMASK(8, 8), 13862306a36Sopenharmony_ci .sram_pdn_ack_bits = GENMASK(12, 12), 13962306a36Sopenharmony_ci .bp_infracfg = { 14062306a36Sopenharmony_ci BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_MFG1, 14162306a36Sopenharmony_ci MT8195_TOP_AXI_PROT_EN_SET, 14262306a36Sopenharmony_ci MT8195_TOP_AXI_PROT_EN_CLR, 14362306a36Sopenharmony_ci MT8195_TOP_AXI_PROT_EN_STA1), 14462306a36Sopenharmony_ci BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_2_MFG1, 14562306a36Sopenharmony_ci MT8195_TOP_AXI_PROT_EN_2_SET, 14662306a36Sopenharmony_ci MT8195_TOP_AXI_PROT_EN_2_CLR, 14762306a36Sopenharmony_ci MT8195_TOP_AXI_PROT_EN_2_STA1), 14862306a36Sopenharmony_ci BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_1_MFG1, 14962306a36Sopenharmony_ci MT8195_TOP_AXI_PROT_EN_1_SET, 15062306a36Sopenharmony_ci MT8195_TOP_AXI_PROT_EN_1_CLR, 15162306a36Sopenharmony_ci MT8195_TOP_AXI_PROT_EN_1_STA1), 15262306a36Sopenharmony_ci BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_2_MFG1_2ND, 15362306a36Sopenharmony_ci MT8195_TOP_AXI_PROT_EN_2_SET, 15462306a36Sopenharmony_ci MT8195_TOP_AXI_PROT_EN_2_CLR, 15562306a36Sopenharmony_ci MT8195_TOP_AXI_PROT_EN_2_STA1), 15662306a36Sopenharmony_ci BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_MFG1_2ND, 15762306a36Sopenharmony_ci MT8195_TOP_AXI_PROT_EN_SET, 15862306a36Sopenharmony_ci MT8195_TOP_AXI_PROT_EN_CLR, 15962306a36Sopenharmony_ci MT8195_TOP_AXI_PROT_EN_STA1), 16062306a36Sopenharmony_ci BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_SUB_INFRA_VDNR_MFG1, 16162306a36Sopenharmony_ci MT8195_TOP_AXI_PROT_EN_SUB_INFRA_VDNR_SET, 16262306a36Sopenharmony_ci MT8195_TOP_AXI_PROT_EN_SUB_INFRA_VDNR_CLR, 16362306a36Sopenharmony_ci MT8195_TOP_AXI_PROT_EN_SUB_INFRA_VDNR_STA1), 16462306a36Sopenharmony_ci }, 16562306a36Sopenharmony_ci .caps = MTK_SCPD_KEEP_DEFAULT_OFF | MTK_SCPD_DOMAIN_SUPPLY, 16662306a36Sopenharmony_ci }, 16762306a36Sopenharmony_ci [MT8195_POWER_DOMAIN_MFG2] = { 16862306a36Sopenharmony_ci .name = "mfg2", 16962306a36Sopenharmony_ci .sta_mask = BIT(3), 17062306a36Sopenharmony_ci .ctl_offs = 0x308, 17162306a36Sopenharmony_ci .pwr_sta_offs = 0x174, 17262306a36Sopenharmony_ci .pwr_sta2nd_offs = 0x178, 17362306a36Sopenharmony_ci .sram_pdn_bits = GENMASK(8, 8), 17462306a36Sopenharmony_ci .sram_pdn_ack_bits = GENMASK(12, 12), 17562306a36Sopenharmony_ci .caps = MTK_SCPD_KEEP_DEFAULT_OFF, 17662306a36Sopenharmony_ci }, 17762306a36Sopenharmony_ci [MT8195_POWER_DOMAIN_MFG3] = { 17862306a36Sopenharmony_ci .name = "mfg3", 17962306a36Sopenharmony_ci .sta_mask = BIT(4), 18062306a36Sopenharmony_ci .ctl_offs = 0x30C, 18162306a36Sopenharmony_ci .pwr_sta_offs = 0x174, 18262306a36Sopenharmony_ci .pwr_sta2nd_offs = 0x178, 18362306a36Sopenharmony_ci .sram_pdn_bits = GENMASK(8, 8), 18462306a36Sopenharmony_ci .sram_pdn_ack_bits = GENMASK(12, 12), 18562306a36Sopenharmony_ci .caps = MTK_SCPD_KEEP_DEFAULT_OFF, 18662306a36Sopenharmony_ci }, 18762306a36Sopenharmony_ci [MT8195_POWER_DOMAIN_MFG4] = { 18862306a36Sopenharmony_ci .name = "mfg4", 18962306a36Sopenharmony_ci .sta_mask = BIT(5), 19062306a36Sopenharmony_ci .ctl_offs = 0x310, 19162306a36Sopenharmony_ci .pwr_sta_offs = 0x174, 19262306a36Sopenharmony_ci .pwr_sta2nd_offs = 0x178, 19362306a36Sopenharmony_ci .sram_pdn_bits = GENMASK(8, 8), 19462306a36Sopenharmony_ci .sram_pdn_ack_bits = GENMASK(12, 12), 19562306a36Sopenharmony_ci .caps = MTK_SCPD_KEEP_DEFAULT_OFF, 19662306a36Sopenharmony_ci }, 19762306a36Sopenharmony_ci [MT8195_POWER_DOMAIN_MFG5] = { 19862306a36Sopenharmony_ci .name = "mfg5", 19962306a36Sopenharmony_ci .sta_mask = BIT(6), 20062306a36Sopenharmony_ci .ctl_offs = 0x314, 20162306a36Sopenharmony_ci .pwr_sta_offs = 0x174, 20262306a36Sopenharmony_ci .pwr_sta2nd_offs = 0x178, 20362306a36Sopenharmony_ci .sram_pdn_bits = GENMASK(8, 8), 20462306a36Sopenharmony_ci .sram_pdn_ack_bits = GENMASK(12, 12), 20562306a36Sopenharmony_ci .caps = MTK_SCPD_KEEP_DEFAULT_OFF, 20662306a36Sopenharmony_ci }, 20762306a36Sopenharmony_ci [MT8195_POWER_DOMAIN_MFG6] = { 20862306a36Sopenharmony_ci .name = "mfg6", 20962306a36Sopenharmony_ci .sta_mask = BIT(7), 21062306a36Sopenharmony_ci .ctl_offs = 0x318, 21162306a36Sopenharmony_ci .pwr_sta_offs = 0x174, 21262306a36Sopenharmony_ci .pwr_sta2nd_offs = 0x178, 21362306a36Sopenharmony_ci .sram_pdn_bits = GENMASK(8, 8), 21462306a36Sopenharmony_ci .sram_pdn_ack_bits = GENMASK(12, 12), 21562306a36Sopenharmony_ci .caps = MTK_SCPD_KEEP_DEFAULT_OFF, 21662306a36Sopenharmony_ci }, 21762306a36Sopenharmony_ci [MT8195_POWER_DOMAIN_VPPSYS0] = { 21862306a36Sopenharmony_ci .name = "vppsys0", 21962306a36Sopenharmony_ci .sta_mask = BIT(11), 22062306a36Sopenharmony_ci .ctl_offs = 0x364, 22162306a36Sopenharmony_ci .pwr_sta_offs = 0x16c, 22262306a36Sopenharmony_ci .pwr_sta2nd_offs = 0x170, 22362306a36Sopenharmony_ci .sram_pdn_bits = GENMASK(8, 8), 22462306a36Sopenharmony_ci .sram_pdn_ack_bits = GENMASK(12, 12), 22562306a36Sopenharmony_ci .bp_infracfg = { 22662306a36Sopenharmony_ci BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_VPPSYS0, 22762306a36Sopenharmony_ci MT8195_TOP_AXI_PROT_EN_SET, 22862306a36Sopenharmony_ci MT8195_TOP_AXI_PROT_EN_CLR, 22962306a36Sopenharmony_ci MT8195_TOP_AXI_PROT_EN_STA1), 23062306a36Sopenharmony_ci BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_MM_2_VPPSYS0, 23162306a36Sopenharmony_ci MT8195_TOP_AXI_PROT_EN_MM_2_SET, 23262306a36Sopenharmony_ci MT8195_TOP_AXI_PROT_EN_MM_2_CLR, 23362306a36Sopenharmony_ci MT8195_TOP_AXI_PROT_EN_MM_2_STA1), 23462306a36Sopenharmony_ci BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_VPPSYS0_2ND, 23562306a36Sopenharmony_ci MT8195_TOP_AXI_PROT_EN_SET, 23662306a36Sopenharmony_ci MT8195_TOP_AXI_PROT_EN_CLR, 23762306a36Sopenharmony_ci MT8195_TOP_AXI_PROT_EN_STA1), 23862306a36Sopenharmony_ci BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_MM_2_VPPSYS0_2ND, 23962306a36Sopenharmony_ci MT8195_TOP_AXI_PROT_EN_MM_2_SET, 24062306a36Sopenharmony_ci MT8195_TOP_AXI_PROT_EN_MM_2_CLR, 24162306a36Sopenharmony_ci MT8195_TOP_AXI_PROT_EN_MM_2_STA1), 24262306a36Sopenharmony_ci BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_SUB_INFRA_VDNR_VPPSYS0, 24362306a36Sopenharmony_ci MT8195_TOP_AXI_PROT_EN_SUB_INFRA_VDNR_SET, 24462306a36Sopenharmony_ci MT8195_TOP_AXI_PROT_EN_SUB_INFRA_VDNR_CLR, 24562306a36Sopenharmony_ci MT8195_TOP_AXI_PROT_EN_SUB_INFRA_VDNR_STA1), 24662306a36Sopenharmony_ci }, 24762306a36Sopenharmony_ci }, 24862306a36Sopenharmony_ci [MT8195_POWER_DOMAIN_VDOSYS0] = { 24962306a36Sopenharmony_ci .name = "vdosys0", 25062306a36Sopenharmony_ci .sta_mask = BIT(13), 25162306a36Sopenharmony_ci .ctl_offs = 0x36C, 25262306a36Sopenharmony_ci .pwr_sta_offs = 0x16c, 25362306a36Sopenharmony_ci .pwr_sta2nd_offs = 0x170, 25462306a36Sopenharmony_ci .sram_pdn_bits = GENMASK(8, 8), 25562306a36Sopenharmony_ci .sram_pdn_ack_bits = GENMASK(12, 12), 25662306a36Sopenharmony_ci .bp_infracfg = { 25762306a36Sopenharmony_ci BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_MM_VDOSYS0, 25862306a36Sopenharmony_ci MT8195_TOP_AXI_PROT_EN_MM_SET, 25962306a36Sopenharmony_ci MT8195_TOP_AXI_PROT_EN_MM_CLR, 26062306a36Sopenharmony_ci MT8195_TOP_AXI_PROT_EN_MM_STA1), 26162306a36Sopenharmony_ci BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_VDOSYS0, 26262306a36Sopenharmony_ci MT8195_TOP_AXI_PROT_EN_SET, 26362306a36Sopenharmony_ci MT8195_TOP_AXI_PROT_EN_CLR, 26462306a36Sopenharmony_ci MT8195_TOP_AXI_PROT_EN_STA1), 26562306a36Sopenharmony_ci BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_SUB_INFRA_VDNR_VDOSYS0, 26662306a36Sopenharmony_ci MT8195_TOP_AXI_PROT_EN_SUB_INFRA_VDNR_SET, 26762306a36Sopenharmony_ci MT8195_TOP_AXI_PROT_EN_SUB_INFRA_VDNR_CLR, 26862306a36Sopenharmony_ci MT8195_TOP_AXI_PROT_EN_SUB_INFRA_VDNR_STA1), 26962306a36Sopenharmony_ci }, 27062306a36Sopenharmony_ci }, 27162306a36Sopenharmony_ci [MT8195_POWER_DOMAIN_VPPSYS1] = { 27262306a36Sopenharmony_ci .name = "vppsys1", 27362306a36Sopenharmony_ci .sta_mask = BIT(12), 27462306a36Sopenharmony_ci .ctl_offs = 0x368, 27562306a36Sopenharmony_ci .pwr_sta_offs = 0x16c, 27662306a36Sopenharmony_ci .pwr_sta2nd_offs = 0x170, 27762306a36Sopenharmony_ci .sram_pdn_bits = GENMASK(8, 8), 27862306a36Sopenharmony_ci .sram_pdn_ack_bits = GENMASK(12, 12), 27962306a36Sopenharmony_ci .bp_infracfg = { 28062306a36Sopenharmony_ci BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_MM_VPPSYS1, 28162306a36Sopenharmony_ci MT8195_TOP_AXI_PROT_EN_MM_SET, 28262306a36Sopenharmony_ci MT8195_TOP_AXI_PROT_EN_MM_CLR, 28362306a36Sopenharmony_ci MT8195_TOP_AXI_PROT_EN_MM_STA1), 28462306a36Sopenharmony_ci BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_MM_VPPSYS1_2ND, 28562306a36Sopenharmony_ci MT8195_TOP_AXI_PROT_EN_MM_SET, 28662306a36Sopenharmony_ci MT8195_TOP_AXI_PROT_EN_MM_CLR, 28762306a36Sopenharmony_ci MT8195_TOP_AXI_PROT_EN_MM_STA1), 28862306a36Sopenharmony_ci BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_MM_2_VPPSYS1, 28962306a36Sopenharmony_ci MT8195_TOP_AXI_PROT_EN_MM_2_SET, 29062306a36Sopenharmony_ci MT8195_TOP_AXI_PROT_EN_MM_2_CLR, 29162306a36Sopenharmony_ci MT8195_TOP_AXI_PROT_EN_MM_2_STA1), 29262306a36Sopenharmony_ci }, 29362306a36Sopenharmony_ci }, 29462306a36Sopenharmony_ci [MT8195_POWER_DOMAIN_VDOSYS1] = { 29562306a36Sopenharmony_ci .name = "vdosys1", 29662306a36Sopenharmony_ci .sta_mask = BIT(14), 29762306a36Sopenharmony_ci .ctl_offs = 0x370, 29862306a36Sopenharmony_ci .pwr_sta_offs = 0x16c, 29962306a36Sopenharmony_ci .pwr_sta2nd_offs = 0x170, 30062306a36Sopenharmony_ci .sram_pdn_bits = GENMASK(8, 8), 30162306a36Sopenharmony_ci .sram_pdn_ack_bits = GENMASK(12, 12), 30262306a36Sopenharmony_ci .bp_infracfg = { 30362306a36Sopenharmony_ci BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_MM_VDOSYS1, 30462306a36Sopenharmony_ci MT8195_TOP_AXI_PROT_EN_MM_SET, 30562306a36Sopenharmony_ci MT8195_TOP_AXI_PROT_EN_MM_CLR, 30662306a36Sopenharmony_ci MT8195_TOP_AXI_PROT_EN_MM_STA1), 30762306a36Sopenharmony_ci BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_MM_VDOSYS1_2ND, 30862306a36Sopenharmony_ci MT8195_TOP_AXI_PROT_EN_MM_SET, 30962306a36Sopenharmony_ci MT8195_TOP_AXI_PROT_EN_MM_CLR, 31062306a36Sopenharmony_ci MT8195_TOP_AXI_PROT_EN_MM_STA1), 31162306a36Sopenharmony_ci BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_MM_2_VDOSYS1, 31262306a36Sopenharmony_ci MT8195_TOP_AXI_PROT_EN_MM_2_SET, 31362306a36Sopenharmony_ci MT8195_TOP_AXI_PROT_EN_MM_2_CLR, 31462306a36Sopenharmony_ci MT8195_TOP_AXI_PROT_EN_MM_2_STA1), 31562306a36Sopenharmony_ci }, 31662306a36Sopenharmony_ci }, 31762306a36Sopenharmony_ci [MT8195_POWER_DOMAIN_DP_TX] = { 31862306a36Sopenharmony_ci .name = "dp_tx", 31962306a36Sopenharmony_ci .sta_mask = BIT(16), 32062306a36Sopenharmony_ci .ctl_offs = 0x378, 32162306a36Sopenharmony_ci .pwr_sta_offs = 0x16c, 32262306a36Sopenharmony_ci .pwr_sta2nd_offs = 0x170, 32362306a36Sopenharmony_ci .sram_pdn_bits = GENMASK(8, 8), 32462306a36Sopenharmony_ci .sram_pdn_ack_bits = GENMASK(12, 12), 32562306a36Sopenharmony_ci .bp_infracfg = { 32662306a36Sopenharmony_ci BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_VDNR_1_DP_TX, 32762306a36Sopenharmony_ci MT8195_TOP_AXI_PROT_EN_VDNR_1_SET, 32862306a36Sopenharmony_ci MT8195_TOP_AXI_PROT_EN_VDNR_1_CLR, 32962306a36Sopenharmony_ci MT8195_TOP_AXI_PROT_EN_VDNR_1_STA1), 33062306a36Sopenharmony_ci }, 33162306a36Sopenharmony_ci .caps = MTK_SCPD_KEEP_DEFAULT_OFF, 33262306a36Sopenharmony_ci }, 33362306a36Sopenharmony_ci [MT8195_POWER_DOMAIN_EPD_TX] = { 33462306a36Sopenharmony_ci .name = "epd_tx", 33562306a36Sopenharmony_ci .sta_mask = BIT(17), 33662306a36Sopenharmony_ci .ctl_offs = 0x37C, 33762306a36Sopenharmony_ci .pwr_sta_offs = 0x16c, 33862306a36Sopenharmony_ci .pwr_sta2nd_offs = 0x170, 33962306a36Sopenharmony_ci .sram_pdn_bits = GENMASK(8, 8), 34062306a36Sopenharmony_ci .sram_pdn_ack_bits = GENMASK(12, 12), 34162306a36Sopenharmony_ci .bp_infracfg = { 34262306a36Sopenharmony_ci BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_VDNR_1_EPD_TX, 34362306a36Sopenharmony_ci MT8195_TOP_AXI_PROT_EN_VDNR_1_SET, 34462306a36Sopenharmony_ci MT8195_TOP_AXI_PROT_EN_VDNR_1_CLR, 34562306a36Sopenharmony_ci MT8195_TOP_AXI_PROT_EN_VDNR_1_STA1), 34662306a36Sopenharmony_ci }, 34762306a36Sopenharmony_ci .caps = MTK_SCPD_KEEP_DEFAULT_OFF, 34862306a36Sopenharmony_ci }, 34962306a36Sopenharmony_ci [MT8195_POWER_DOMAIN_HDMI_TX] = { 35062306a36Sopenharmony_ci .name = "hdmi_tx", 35162306a36Sopenharmony_ci .sta_mask = BIT(18), 35262306a36Sopenharmony_ci .ctl_offs = 0x380, 35362306a36Sopenharmony_ci .pwr_sta_offs = 0x16c, 35462306a36Sopenharmony_ci .pwr_sta2nd_offs = 0x170, 35562306a36Sopenharmony_ci .sram_pdn_bits = GENMASK(8, 8), 35662306a36Sopenharmony_ci .sram_pdn_ack_bits = GENMASK(12, 12), 35762306a36Sopenharmony_ci .caps = MTK_SCPD_KEEP_DEFAULT_OFF | MTK_SCPD_ACTIVE_WAKEUP, 35862306a36Sopenharmony_ci }, 35962306a36Sopenharmony_ci [MT8195_POWER_DOMAIN_WPESYS] = { 36062306a36Sopenharmony_ci .name = "wpesys", 36162306a36Sopenharmony_ci .sta_mask = BIT(15), 36262306a36Sopenharmony_ci .ctl_offs = 0x374, 36362306a36Sopenharmony_ci .pwr_sta_offs = 0x16c, 36462306a36Sopenharmony_ci .pwr_sta2nd_offs = 0x170, 36562306a36Sopenharmony_ci .sram_pdn_bits = GENMASK(8, 8), 36662306a36Sopenharmony_ci .sram_pdn_ack_bits = GENMASK(12, 12), 36762306a36Sopenharmony_ci .bp_infracfg = { 36862306a36Sopenharmony_ci BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_MM_2_WPESYS, 36962306a36Sopenharmony_ci MT8195_TOP_AXI_PROT_EN_MM_2_SET, 37062306a36Sopenharmony_ci MT8195_TOP_AXI_PROT_EN_MM_2_CLR, 37162306a36Sopenharmony_ci MT8195_TOP_AXI_PROT_EN_MM_2_STA1), 37262306a36Sopenharmony_ci BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_MM_WPESYS, 37362306a36Sopenharmony_ci MT8195_TOP_AXI_PROT_EN_MM_SET, 37462306a36Sopenharmony_ci MT8195_TOP_AXI_PROT_EN_MM_CLR, 37562306a36Sopenharmony_ci MT8195_TOP_AXI_PROT_EN_MM_STA1), 37662306a36Sopenharmony_ci BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_MM_2_WPESYS_2ND, 37762306a36Sopenharmony_ci MT8195_TOP_AXI_PROT_EN_MM_2_SET, 37862306a36Sopenharmony_ci MT8195_TOP_AXI_PROT_EN_MM_2_CLR, 37962306a36Sopenharmony_ci MT8195_TOP_AXI_PROT_EN_MM_2_STA1), 38062306a36Sopenharmony_ci }, 38162306a36Sopenharmony_ci }, 38262306a36Sopenharmony_ci [MT8195_POWER_DOMAIN_VDEC0] = { 38362306a36Sopenharmony_ci .name = "vdec0", 38462306a36Sopenharmony_ci .sta_mask = BIT(20), 38562306a36Sopenharmony_ci .ctl_offs = 0x388, 38662306a36Sopenharmony_ci .pwr_sta_offs = 0x16c, 38762306a36Sopenharmony_ci .pwr_sta2nd_offs = 0x170, 38862306a36Sopenharmony_ci .sram_pdn_bits = GENMASK(8, 8), 38962306a36Sopenharmony_ci .sram_pdn_ack_bits = GENMASK(12, 12), 39062306a36Sopenharmony_ci .bp_infracfg = { 39162306a36Sopenharmony_ci BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_MM_VDEC0, 39262306a36Sopenharmony_ci MT8195_TOP_AXI_PROT_EN_MM_SET, 39362306a36Sopenharmony_ci MT8195_TOP_AXI_PROT_EN_MM_CLR, 39462306a36Sopenharmony_ci MT8195_TOP_AXI_PROT_EN_MM_STA1), 39562306a36Sopenharmony_ci BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_MM_2_VDEC0, 39662306a36Sopenharmony_ci MT8195_TOP_AXI_PROT_EN_MM_2_SET, 39762306a36Sopenharmony_ci MT8195_TOP_AXI_PROT_EN_MM_2_CLR, 39862306a36Sopenharmony_ci MT8195_TOP_AXI_PROT_EN_MM_2_STA1), 39962306a36Sopenharmony_ci BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_MM_VDEC0_2ND, 40062306a36Sopenharmony_ci MT8195_TOP_AXI_PROT_EN_MM_SET, 40162306a36Sopenharmony_ci MT8195_TOP_AXI_PROT_EN_MM_CLR, 40262306a36Sopenharmony_ci MT8195_TOP_AXI_PROT_EN_MM_STA1), 40362306a36Sopenharmony_ci BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_MM_2_VDEC0_2ND, 40462306a36Sopenharmony_ci MT8195_TOP_AXI_PROT_EN_MM_2_SET, 40562306a36Sopenharmony_ci MT8195_TOP_AXI_PROT_EN_MM_2_CLR, 40662306a36Sopenharmony_ci MT8195_TOP_AXI_PROT_EN_MM_2_STA1), 40762306a36Sopenharmony_ci }, 40862306a36Sopenharmony_ci .caps = MTK_SCPD_KEEP_DEFAULT_OFF, 40962306a36Sopenharmony_ci }, 41062306a36Sopenharmony_ci [MT8195_POWER_DOMAIN_VDEC1] = { 41162306a36Sopenharmony_ci .name = "vdec1", 41262306a36Sopenharmony_ci .sta_mask = BIT(21), 41362306a36Sopenharmony_ci .ctl_offs = 0x38C, 41462306a36Sopenharmony_ci .pwr_sta_offs = 0x16c, 41562306a36Sopenharmony_ci .pwr_sta2nd_offs = 0x170, 41662306a36Sopenharmony_ci .sram_pdn_bits = GENMASK(8, 8), 41762306a36Sopenharmony_ci .sram_pdn_ack_bits = GENMASK(12, 12), 41862306a36Sopenharmony_ci .bp_infracfg = { 41962306a36Sopenharmony_ci BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_MM_VDEC1, 42062306a36Sopenharmony_ci MT8195_TOP_AXI_PROT_EN_MM_SET, 42162306a36Sopenharmony_ci MT8195_TOP_AXI_PROT_EN_MM_CLR, 42262306a36Sopenharmony_ci MT8195_TOP_AXI_PROT_EN_MM_STA1), 42362306a36Sopenharmony_ci BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_MM_VDEC1_2ND, 42462306a36Sopenharmony_ci MT8195_TOP_AXI_PROT_EN_MM_SET, 42562306a36Sopenharmony_ci MT8195_TOP_AXI_PROT_EN_MM_CLR, 42662306a36Sopenharmony_ci MT8195_TOP_AXI_PROT_EN_MM_STA1), 42762306a36Sopenharmony_ci }, 42862306a36Sopenharmony_ci .caps = MTK_SCPD_KEEP_DEFAULT_OFF, 42962306a36Sopenharmony_ci }, 43062306a36Sopenharmony_ci [MT8195_POWER_DOMAIN_VDEC2] = { 43162306a36Sopenharmony_ci .name = "vdec2", 43262306a36Sopenharmony_ci .sta_mask = BIT(22), 43362306a36Sopenharmony_ci .ctl_offs = 0x390, 43462306a36Sopenharmony_ci .pwr_sta_offs = 0x16c, 43562306a36Sopenharmony_ci .pwr_sta2nd_offs = 0x170, 43662306a36Sopenharmony_ci .sram_pdn_bits = GENMASK(8, 8), 43762306a36Sopenharmony_ci .sram_pdn_ack_bits = GENMASK(12, 12), 43862306a36Sopenharmony_ci .bp_infracfg = { 43962306a36Sopenharmony_ci BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_MM_2_VDEC2, 44062306a36Sopenharmony_ci MT8195_TOP_AXI_PROT_EN_MM_2_SET, 44162306a36Sopenharmony_ci MT8195_TOP_AXI_PROT_EN_MM_2_CLR, 44262306a36Sopenharmony_ci MT8195_TOP_AXI_PROT_EN_MM_2_STA1), 44362306a36Sopenharmony_ci BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_MM_2_VDEC2_2ND, 44462306a36Sopenharmony_ci MT8195_TOP_AXI_PROT_EN_MM_2_SET, 44562306a36Sopenharmony_ci MT8195_TOP_AXI_PROT_EN_MM_2_CLR, 44662306a36Sopenharmony_ci MT8195_TOP_AXI_PROT_EN_MM_2_STA1), 44762306a36Sopenharmony_ci }, 44862306a36Sopenharmony_ci .caps = MTK_SCPD_KEEP_DEFAULT_OFF, 44962306a36Sopenharmony_ci }, 45062306a36Sopenharmony_ci [MT8195_POWER_DOMAIN_VENC] = { 45162306a36Sopenharmony_ci .name = "venc", 45262306a36Sopenharmony_ci .sta_mask = BIT(23), 45362306a36Sopenharmony_ci .ctl_offs = 0x394, 45462306a36Sopenharmony_ci .pwr_sta_offs = 0x16c, 45562306a36Sopenharmony_ci .pwr_sta2nd_offs = 0x170, 45662306a36Sopenharmony_ci .sram_pdn_bits = GENMASK(8, 8), 45762306a36Sopenharmony_ci .sram_pdn_ack_bits = GENMASK(12, 12), 45862306a36Sopenharmony_ci .bp_infracfg = { 45962306a36Sopenharmony_ci BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_MM_VENC, 46062306a36Sopenharmony_ci MT8195_TOP_AXI_PROT_EN_MM_SET, 46162306a36Sopenharmony_ci MT8195_TOP_AXI_PROT_EN_MM_CLR, 46262306a36Sopenharmony_ci MT8195_TOP_AXI_PROT_EN_MM_STA1), 46362306a36Sopenharmony_ci BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_MM_VENC_2ND, 46462306a36Sopenharmony_ci MT8195_TOP_AXI_PROT_EN_MM_SET, 46562306a36Sopenharmony_ci MT8195_TOP_AXI_PROT_EN_MM_CLR, 46662306a36Sopenharmony_ci MT8195_TOP_AXI_PROT_EN_MM_STA1), 46762306a36Sopenharmony_ci BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_MM_2_VENC, 46862306a36Sopenharmony_ci MT8195_TOP_AXI_PROT_EN_MM_2_SET, 46962306a36Sopenharmony_ci MT8195_TOP_AXI_PROT_EN_MM_2_CLR, 47062306a36Sopenharmony_ci MT8195_TOP_AXI_PROT_EN_MM_2_STA1), 47162306a36Sopenharmony_ci }, 47262306a36Sopenharmony_ci .caps = MTK_SCPD_KEEP_DEFAULT_OFF, 47362306a36Sopenharmony_ci }, 47462306a36Sopenharmony_ci [MT8195_POWER_DOMAIN_VENC_CORE1] = { 47562306a36Sopenharmony_ci .name = "venc_core1", 47662306a36Sopenharmony_ci .sta_mask = BIT(24), 47762306a36Sopenharmony_ci .ctl_offs = 0x398, 47862306a36Sopenharmony_ci .pwr_sta_offs = 0x16c, 47962306a36Sopenharmony_ci .pwr_sta2nd_offs = 0x170, 48062306a36Sopenharmony_ci .sram_pdn_bits = GENMASK(8, 8), 48162306a36Sopenharmony_ci .sram_pdn_ack_bits = GENMASK(12, 12), 48262306a36Sopenharmony_ci .bp_infracfg = { 48362306a36Sopenharmony_ci BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_MM_VENC_CORE1, 48462306a36Sopenharmony_ci MT8195_TOP_AXI_PROT_EN_MM_SET, 48562306a36Sopenharmony_ci MT8195_TOP_AXI_PROT_EN_MM_CLR, 48662306a36Sopenharmony_ci MT8195_TOP_AXI_PROT_EN_MM_STA1), 48762306a36Sopenharmony_ci BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_MM_2_VENC_CORE1, 48862306a36Sopenharmony_ci MT8195_TOP_AXI_PROT_EN_MM_2_SET, 48962306a36Sopenharmony_ci MT8195_TOP_AXI_PROT_EN_MM_2_CLR, 49062306a36Sopenharmony_ci MT8195_TOP_AXI_PROT_EN_MM_2_STA1), 49162306a36Sopenharmony_ci }, 49262306a36Sopenharmony_ci .caps = MTK_SCPD_KEEP_DEFAULT_OFF, 49362306a36Sopenharmony_ci }, 49462306a36Sopenharmony_ci [MT8195_POWER_DOMAIN_IMG] = { 49562306a36Sopenharmony_ci .name = "img", 49662306a36Sopenharmony_ci .sta_mask = BIT(29), 49762306a36Sopenharmony_ci .ctl_offs = 0x3AC, 49862306a36Sopenharmony_ci .pwr_sta_offs = 0x16c, 49962306a36Sopenharmony_ci .pwr_sta2nd_offs = 0x170, 50062306a36Sopenharmony_ci .sram_pdn_bits = GENMASK(8, 8), 50162306a36Sopenharmony_ci .sram_pdn_ack_bits = GENMASK(12, 12), 50262306a36Sopenharmony_ci .bp_infracfg = { 50362306a36Sopenharmony_ci BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_MM_IMG, 50462306a36Sopenharmony_ci MT8195_TOP_AXI_PROT_EN_MM_SET, 50562306a36Sopenharmony_ci MT8195_TOP_AXI_PROT_EN_MM_CLR, 50662306a36Sopenharmony_ci MT8195_TOP_AXI_PROT_EN_MM_STA1), 50762306a36Sopenharmony_ci BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_MM_IMG_2ND, 50862306a36Sopenharmony_ci MT8195_TOP_AXI_PROT_EN_MM_SET, 50962306a36Sopenharmony_ci MT8195_TOP_AXI_PROT_EN_MM_CLR, 51062306a36Sopenharmony_ci MT8195_TOP_AXI_PROT_EN_MM_STA1), 51162306a36Sopenharmony_ci }, 51262306a36Sopenharmony_ci .caps = MTK_SCPD_KEEP_DEFAULT_OFF, 51362306a36Sopenharmony_ci }, 51462306a36Sopenharmony_ci [MT8195_POWER_DOMAIN_DIP] = { 51562306a36Sopenharmony_ci .name = "dip", 51662306a36Sopenharmony_ci .sta_mask = BIT(30), 51762306a36Sopenharmony_ci .ctl_offs = 0x3B0, 51862306a36Sopenharmony_ci .pwr_sta_offs = 0x16c, 51962306a36Sopenharmony_ci .pwr_sta2nd_offs = 0x170, 52062306a36Sopenharmony_ci .sram_pdn_bits = GENMASK(8, 8), 52162306a36Sopenharmony_ci .sram_pdn_ack_bits = GENMASK(12, 12), 52262306a36Sopenharmony_ci .caps = MTK_SCPD_KEEP_DEFAULT_OFF, 52362306a36Sopenharmony_ci }, 52462306a36Sopenharmony_ci [MT8195_POWER_DOMAIN_IPE] = { 52562306a36Sopenharmony_ci .name = "ipe", 52662306a36Sopenharmony_ci .sta_mask = BIT(31), 52762306a36Sopenharmony_ci .ctl_offs = 0x3B4, 52862306a36Sopenharmony_ci .pwr_sta_offs = 0x16c, 52962306a36Sopenharmony_ci .pwr_sta2nd_offs = 0x170, 53062306a36Sopenharmony_ci .sram_pdn_bits = GENMASK(8, 8), 53162306a36Sopenharmony_ci .sram_pdn_ack_bits = GENMASK(12, 12), 53262306a36Sopenharmony_ci .bp_infracfg = { 53362306a36Sopenharmony_ci BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_MM_IPE, 53462306a36Sopenharmony_ci MT8195_TOP_AXI_PROT_EN_MM_SET, 53562306a36Sopenharmony_ci MT8195_TOP_AXI_PROT_EN_MM_CLR, 53662306a36Sopenharmony_ci MT8195_TOP_AXI_PROT_EN_MM_STA1), 53762306a36Sopenharmony_ci BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_MM_2_IPE, 53862306a36Sopenharmony_ci MT8195_TOP_AXI_PROT_EN_MM_2_SET, 53962306a36Sopenharmony_ci MT8195_TOP_AXI_PROT_EN_MM_2_CLR, 54062306a36Sopenharmony_ci MT8195_TOP_AXI_PROT_EN_MM_2_STA1), 54162306a36Sopenharmony_ci }, 54262306a36Sopenharmony_ci .caps = MTK_SCPD_KEEP_DEFAULT_OFF, 54362306a36Sopenharmony_ci }, 54462306a36Sopenharmony_ci [MT8195_POWER_DOMAIN_CAM] = { 54562306a36Sopenharmony_ci .name = "cam", 54662306a36Sopenharmony_ci .sta_mask = BIT(25), 54762306a36Sopenharmony_ci .ctl_offs = 0x39C, 54862306a36Sopenharmony_ci .pwr_sta_offs = 0x16c, 54962306a36Sopenharmony_ci .pwr_sta2nd_offs = 0x170, 55062306a36Sopenharmony_ci .sram_pdn_bits = GENMASK(8, 8), 55162306a36Sopenharmony_ci .sram_pdn_ack_bits = GENMASK(12, 12), 55262306a36Sopenharmony_ci .bp_infracfg = { 55362306a36Sopenharmony_ci BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_2_CAM, 55462306a36Sopenharmony_ci MT8195_TOP_AXI_PROT_EN_2_SET, 55562306a36Sopenharmony_ci MT8195_TOP_AXI_PROT_EN_2_CLR, 55662306a36Sopenharmony_ci MT8195_TOP_AXI_PROT_EN_2_STA1), 55762306a36Sopenharmony_ci BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_MM_CAM, 55862306a36Sopenharmony_ci MT8195_TOP_AXI_PROT_EN_MM_SET, 55962306a36Sopenharmony_ci MT8195_TOP_AXI_PROT_EN_MM_CLR, 56062306a36Sopenharmony_ci MT8195_TOP_AXI_PROT_EN_MM_STA1), 56162306a36Sopenharmony_ci BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_1_CAM, 56262306a36Sopenharmony_ci MT8195_TOP_AXI_PROT_EN_1_SET, 56362306a36Sopenharmony_ci MT8195_TOP_AXI_PROT_EN_1_CLR, 56462306a36Sopenharmony_ci MT8195_TOP_AXI_PROT_EN_1_STA1), 56562306a36Sopenharmony_ci BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_MM_CAM_2ND, 56662306a36Sopenharmony_ci MT8195_TOP_AXI_PROT_EN_MM_SET, 56762306a36Sopenharmony_ci MT8195_TOP_AXI_PROT_EN_MM_CLR, 56862306a36Sopenharmony_ci MT8195_TOP_AXI_PROT_EN_MM_STA1), 56962306a36Sopenharmony_ci BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_MM_2_CAM, 57062306a36Sopenharmony_ci MT8195_TOP_AXI_PROT_EN_MM_2_SET, 57162306a36Sopenharmony_ci MT8195_TOP_AXI_PROT_EN_MM_2_CLR, 57262306a36Sopenharmony_ci MT8195_TOP_AXI_PROT_EN_MM_2_STA1), 57362306a36Sopenharmony_ci }, 57462306a36Sopenharmony_ci .caps = MTK_SCPD_KEEP_DEFAULT_OFF, 57562306a36Sopenharmony_ci }, 57662306a36Sopenharmony_ci [MT8195_POWER_DOMAIN_CAM_RAWA] = { 57762306a36Sopenharmony_ci .name = "cam_rawa", 57862306a36Sopenharmony_ci .sta_mask = BIT(26), 57962306a36Sopenharmony_ci .ctl_offs = 0x3A0, 58062306a36Sopenharmony_ci .pwr_sta_offs = 0x16c, 58162306a36Sopenharmony_ci .pwr_sta2nd_offs = 0x170, 58262306a36Sopenharmony_ci .sram_pdn_bits = GENMASK(8, 8), 58362306a36Sopenharmony_ci .sram_pdn_ack_bits = GENMASK(12, 12), 58462306a36Sopenharmony_ci .caps = MTK_SCPD_KEEP_DEFAULT_OFF, 58562306a36Sopenharmony_ci }, 58662306a36Sopenharmony_ci [MT8195_POWER_DOMAIN_CAM_RAWB] = { 58762306a36Sopenharmony_ci .name = "cam_rawb", 58862306a36Sopenharmony_ci .sta_mask = BIT(27), 58962306a36Sopenharmony_ci .ctl_offs = 0x3A4, 59062306a36Sopenharmony_ci .pwr_sta_offs = 0x16c, 59162306a36Sopenharmony_ci .pwr_sta2nd_offs = 0x170, 59262306a36Sopenharmony_ci .sram_pdn_bits = GENMASK(8, 8), 59362306a36Sopenharmony_ci .sram_pdn_ack_bits = GENMASK(12, 12), 59462306a36Sopenharmony_ci .caps = MTK_SCPD_KEEP_DEFAULT_OFF, 59562306a36Sopenharmony_ci }, 59662306a36Sopenharmony_ci [MT8195_POWER_DOMAIN_CAM_MRAW] = { 59762306a36Sopenharmony_ci .name = "cam_mraw", 59862306a36Sopenharmony_ci .sta_mask = BIT(28), 59962306a36Sopenharmony_ci .ctl_offs = 0x3A8, 60062306a36Sopenharmony_ci .pwr_sta_offs = 0x16c, 60162306a36Sopenharmony_ci .pwr_sta2nd_offs = 0x170, 60262306a36Sopenharmony_ci .sram_pdn_bits = GENMASK(8, 8), 60362306a36Sopenharmony_ci .sram_pdn_ack_bits = GENMASK(12, 12), 60462306a36Sopenharmony_ci .caps = MTK_SCPD_KEEP_DEFAULT_OFF, 60562306a36Sopenharmony_ci }, 60662306a36Sopenharmony_ci}; 60762306a36Sopenharmony_ci 60862306a36Sopenharmony_cistatic const struct scpsys_soc_data mt8195_scpsys_data = { 60962306a36Sopenharmony_ci .domains_data = scpsys_domain_data_mt8195, 61062306a36Sopenharmony_ci .num_domains = ARRAY_SIZE(scpsys_domain_data_mt8195), 61162306a36Sopenharmony_ci}; 61262306a36Sopenharmony_ci 61362306a36Sopenharmony_ci#endif /* __SOC_MEDIATEK_MT8195_PM_DOMAINS_H */ 614