162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0-only */ 262306a36Sopenharmony_ci/* 362306a36Sopenharmony_ci * Copyright (c) 2022 MediaTek Inc. 462306a36Sopenharmony_ci * Author: Garmin Chang <garmin.chang@mediatek.com> 562306a36Sopenharmony_ci */ 662306a36Sopenharmony_ci 762306a36Sopenharmony_ci#ifndef __SOC_MEDIATEK_MT8188_PM_DOMAINS_H 862306a36Sopenharmony_ci#define __SOC_MEDIATEK_MT8188_PM_DOMAINS_H 962306a36Sopenharmony_ci 1062306a36Sopenharmony_ci#include "mtk-pm-domains.h" 1162306a36Sopenharmony_ci#include <dt-bindings/power/mediatek,mt8188-power.h> 1262306a36Sopenharmony_ci 1362306a36Sopenharmony_ci/* 1462306a36Sopenharmony_ci * MT8188 power domain support 1562306a36Sopenharmony_ci */ 1662306a36Sopenharmony_ci 1762306a36Sopenharmony_cistatic const struct scpsys_domain_data scpsys_domain_data_mt8188[] = { 1862306a36Sopenharmony_ci [MT8188_POWER_DOMAIN_MFG0] = { 1962306a36Sopenharmony_ci .name = "mfg0", 2062306a36Sopenharmony_ci .sta_mask = BIT(1), 2162306a36Sopenharmony_ci .ctl_offs = 0x300, 2262306a36Sopenharmony_ci .pwr_sta_offs = 0x174, 2362306a36Sopenharmony_ci .pwr_sta2nd_offs = 0x178, 2462306a36Sopenharmony_ci .sram_pdn_bits = BIT(8), 2562306a36Sopenharmony_ci .sram_pdn_ack_bits = BIT(12), 2662306a36Sopenharmony_ci .caps = MTK_SCPD_KEEP_DEFAULT_OFF | MTK_SCPD_DOMAIN_SUPPLY, 2762306a36Sopenharmony_ci }, 2862306a36Sopenharmony_ci [MT8188_POWER_DOMAIN_MFG1] = { 2962306a36Sopenharmony_ci .name = "mfg1", 3062306a36Sopenharmony_ci .sta_mask = BIT(2), 3162306a36Sopenharmony_ci .ctl_offs = 0x304, 3262306a36Sopenharmony_ci .pwr_sta_offs = 0x174, 3362306a36Sopenharmony_ci .pwr_sta2nd_offs = 0x178, 3462306a36Sopenharmony_ci .sram_pdn_bits = BIT(8), 3562306a36Sopenharmony_ci .sram_pdn_ack_bits = BIT(12), 3662306a36Sopenharmony_ci .bp_infracfg = { 3762306a36Sopenharmony_ci BUS_PROT_WR(MT8188_TOP_AXI_PROT_EN_MFG1_STEP1, 3862306a36Sopenharmony_ci MT8188_TOP_AXI_PROT_EN_SET, 3962306a36Sopenharmony_ci MT8188_TOP_AXI_PROT_EN_CLR, 4062306a36Sopenharmony_ci MT8188_TOP_AXI_PROT_EN_STA), 4162306a36Sopenharmony_ci BUS_PROT_WR(MT8188_TOP_AXI_PROT_EN_2_MFG1_STEP2, 4262306a36Sopenharmony_ci MT8188_TOP_AXI_PROT_EN_2_SET, 4362306a36Sopenharmony_ci MT8188_TOP_AXI_PROT_EN_2_CLR, 4462306a36Sopenharmony_ci MT8188_TOP_AXI_PROT_EN_2_STA), 4562306a36Sopenharmony_ci BUS_PROT_WR(MT8188_TOP_AXI_PROT_EN_1_MFG1_STEP3, 4662306a36Sopenharmony_ci MT8188_TOP_AXI_PROT_EN_1_SET, 4762306a36Sopenharmony_ci MT8188_TOP_AXI_PROT_EN_1_CLR, 4862306a36Sopenharmony_ci MT8188_TOP_AXI_PROT_EN_1_STA), 4962306a36Sopenharmony_ci BUS_PROT_WR(MT8188_TOP_AXI_PROT_EN_2_MFG1_STEP4, 5062306a36Sopenharmony_ci MT8188_TOP_AXI_PROT_EN_2_SET, 5162306a36Sopenharmony_ci MT8188_TOP_AXI_PROT_EN_2_CLR, 5262306a36Sopenharmony_ci MT8188_TOP_AXI_PROT_EN_2_STA), 5362306a36Sopenharmony_ci BUS_PROT_WR(MT8188_TOP_AXI_PROT_EN_MFG1_STEP5, 5462306a36Sopenharmony_ci MT8188_TOP_AXI_PROT_EN_SET, 5562306a36Sopenharmony_ci MT8188_TOP_AXI_PROT_EN_CLR, 5662306a36Sopenharmony_ci MT8188_TOP_AXI_PROT_EN_STA), 5762306a36Sopenharmony_ci BUS_PROT_WR(MT8188_TOP_AXI_PROT_EN_SUB_INFRA_VDNR_MFG1_STEP6, 5862306a36Sopenharmony_ci MT8188_TOP_AXI_PROT_EN_SUB_INFRA_VDNR_SET, 5962306a36Sopenharmony_ci MT8188_TOP_AXI_PROT_EN_SUB_INFRA_VDNR_CLR, 6062306a36Sopenharmony_ci MT8188_TOP_AXI_PROT_EN_SUB_INFRA_VDNR_STA), 6162306a36Sopenharmony_ci }, 6262306a36Sopenharmony_ci .caps = MTK_SCPD_KEEP_DEFAULT_OFF | MTK_SCPD_DOMAIN_SUPPLY, 6362306a36Sopenharmony_ci }, 6462306a36Sopenharmony_ci [MT8188_POWER_DOMAIN_MFG2] = { 6562306a36Sopenharmony_ci .name = "mfg2", 6662306a36Sopenharmony_ci .sta_mask = BIT(3), 6762306a36Sopenharmony_ci .ctl_offs = 0x308, 6862306a36Sopenharmony_ci .pwr_sta_offs = 0x174, 6962306a36Sopenharmony_ci .pwr_sta2nd_offs = 0x178, 7062306a36Sopenharmony_ci .sram_pdn_bits = BIT(8), 7162306a36Sopenharmony_ci .sram_pdn_ack_bits = BIT(12), 7262306a36Sopenharmony_ci .caps = MTK_SCPD_KEEP_DEFAULT_OFF, 7362306a36Sopenharmony_ci }, 7462306a36Sopenharmony_ci [MT8188_POWER_DOMAIN_MFG3] = { 7562306a36Sopenharmony_ci .name = "mfg3", 7662306a36Sopenharmony_ci .sta_mask = BIT(4), 7762306a36Sopenharmony_ci .ctl_offs = 0x30C, 7862306a36Sopenharmony_ci .pwr_sta_offs = 0x174, 7962306a36Sopenharmony_ci .pwr_sta2nd_offs = 0x178, 8062306a36Sopenharmony_ci .sram_pdn_bits = BIT(8), 8162306a36Sopenharmony_ci .sram_pdn_ack_bits = BIT(12), 8262306a36Sopenharmony_ci .caps = MTK_SCPD_KEEP_DEFAULT_OFF, 8362306a36Sopenharmony_ci }, 8462306a36Sopenharmony_ci [MT8188_POWER_DOMAIN_MFG4] = { 8562306a36Sopenharmony_ci .name = "mfg4", 8662306a36Sopenharmony_ci .sta_mask = BIT(5), 8762306a36Sopenharmony_ci .ctl_offs = 0x310, 8862306a36Sopenharmony_ci .pwr_sta_offs = 0x174, 8962306a36Sopenharmony_ci .pwr_sta2nd_offs = 0x178, 9062306a36Sopenharmony_ci .sram_pdn_bits = BIT(8), 9162306a36Sopenharmony_ci .sram_pdn_ack_bits = BIT(12), 9262306a36Sopenharmony_ci .caps = MTK_SCPD_KEEP_DEFAULT_OFF, 9362306a36Sopenharmony_ci }, 9462306a36Sopenharmony_ci [MT8188_POWER_DOMAIN_PEXTP_MAC_P0] = { 9562306a36Sopenharmony_ci .name = "pextp_mac_p0", 9662306a36Sopenharmony_ci .sta_mask = BIT(10), 9762306a36Sopenharmony_ci .ctl_offs = 0x324, 9862306a36Sopenharmony_ci .pwr_sta_offs = 0x174, 9962306a36Sopenharmony_ci .pwr_sta2nd_offs = 0x178, 10062306a36Sopenharmony_ci .sram_pdn_bits = BIT(8), 10162306a36Sopenharmony_ci .sram_pdn_ack_bits = BIT(12), 10262306a36Sopenharmony_ci .bp_infracfg = { 10362306a36Sopenharmony_ci BUS_PROT_WR(MT8188_TOP_AXI_PROT_EN_PEXTP_MAC_P0_STEP1, 10462306a36Sopenharmony_ci MT8188_TOP_AXI_PROT_EN_SET, 10562306a36Sopenharmony_ci MT8188_TOP_AXI_PROT_EN_CLR, 10662306a36Sopenharmony_ci MT8188_TOP_AXI_PROT_EN_STA), 10762306a36Sopenharmony_ci BUS_PROT_WR(MT8188_TOP_AXI_PROT_EN_INFRA_VDNR_PEXTP_MAC_P0_STEP2, 10862306a36Sopenharmony_ci MT8188_TOP_AXI_PROT_EN_INFRA_VDNR_SET, 10962306a36Sopenharmony_ci MT8188_TOP_AXI_PROT_EN_INFRA_VDNR_CLR, 11062306a36Sopenharmony_ci MT8188_TOP_AXI_PROT_EN_INFRA_VDNR_STA), 11162306a36Sopenharmony_ci }, 11262306a36Sopenharmony_ci .caps = MTK_SCPD_KEEP_DEFAULT_OFF, 11362306a36Sopenharmony_ci }, 11462306a36Sopenharmony_ci [MT8188_POWER_DOMAIN_PEXTP_PHY_TOP] = { 11562306a36Sopenharmony_ci .name = "pextp_phy_top", 11662306a36Sopenharmony_ci .sta_mask = BIT(12), 11762306a36Sopenharmony_ci .ctl_offs = 0x328, 11862306a36Sopenharmony_ci .pwr_sta_offs = 0x174, 11962306a36Sopenharmony_ci .pwr_sta2nd_offs = 0x178, 12062306a36Sopenharmony_ci .caps = MTK_SCPD_KEEP_DEFAULT_OFF, 12162306a36Sopenharmony_ci }, 12262306a36Sopenharmony_ci [MT8188_POWER_DOMAIN_CSIRX_TOP] = { 12362306a36Sopenharmony_ci .name = "pextp_csirx_top", 12462306a36Sopenharmony_ci .sta_mask = BIT(17), 12562306a36Sopenharmony_ci .ctl_offs = 0x3C4, 12662306a36Sopenharmony_ci .pwr_sta_offs = 0x174, 12762306a36Sopenharmony_ci .pwr_sta2nd_offs = 0x178, 12862306a36Sopenharmony_ci .caps = MTK_SCPD_KEEP_DEFAULT_OFF, 12962306a36Sopenharmony_ci }, 13062306a36Sopenharmony_ci [MT8188_POWER_DOMAIN_ETHER] = { 13162306a36Sopenharmony_ci .name = "ether", 13262306a36Sopenharmony_ci .sta_mask = BIT(1), 13362306a36Sopenharmony_ci .ctl_offs = 0x338, 13462306a36Sopenharmony_ci .pwr_sta_offs = 0x16C, 13562306a36Sopenharmony_ci .pwr_sta2nd_offs = 0x170, 13662306a36Sopenharmony_ci .sram_pdn_bits = BIT(8), 13762306a36Sopenharmony_ci .sram_pdn_ack_bits = BIT(12), 13862306a36Sopenharmony_ci .bp_infracfg = { 13962306a36Sopenharmony_ci BUS_PROT_WR(MT8188_TOP_AXI_PROT_EN_INFRA_VDNR_ETHER_STEP1, 14062306a36Sopenharmony_ci MT8188_TOP_AXI_PROT_EN_INFRA_VDNR_SET, 14162306a36Sopenharmony_ci MT8188_TOP_AXI_PROT_EN_INFRA_VDNR_CLR, 14262306a36Sopenharmony_ci MT8188_TOP_AXI_PROT_EN_INFRA_VDNR_STA), 14362306a36Sopenharmony_ci }, 14462306a36Sopenharmony_ci .caps = MTK_SCPD_KEEP_DEFAULT_OFF | MTK_SCPD_ACTIVE_WAKEUP, 14562306a36Sopenharmony_ci }, 14662306a36Sopenharmony_ci [MT8188_POWER_DOMAIN_HDMI_TX] = { 14762306a36Sopenharmony_ci .name = "hdmi_tx", 14862306a36Sopenharmony_ci .sta_mask = BIT(18), 14962306a36Sopenharmony_ci .ctl_offs = 0x37C, 15062306a36Sopenharmony_ci .pwr_sta_offs = 0x16C, 15162306a36Sopenharmony_ci .pwr_sta2nd_offs = 0x170, 15262306a36Sopenharmony_ci .sram_pdn_bits = BIT(8), 15362306a36Sopenharmony_ci .sram_pdn_ack_bits = BIT(12), 15462306a36Sopenharmony_ci .bp_infracfg = { 15562306a36Sopenharmony_ci BUS_PROT_WR(MT8188_TOP_AXI_PROT_EN_INFRA_VDNR_HDMI_TX_STEP1, 15662306a36Sopenharmony_ci MT8188_TOP_AXI_PROT_EN_INFRA_VDNR_SET, 15762306a36Sopenharmony_ci MT8188_TOP_AXI_PROT_EN_INFRA_VDNR_CLR, 15862306a36Sopenharmony_ci MT8188_TOP_AXI_PROT_EN_INFRA_VDNR_STA), 15962306a36Sopenharmony_ci }, 16062306a36Sopenharmony_ci .caps = MTK_SCPD_KEEP_DEFAULT_OFF | MTK_SCPD_ACTIVE_WAKEUP, 16162306a36Sopenharmony_ci }, 16262306a36Sopenharmony_ci [MT8188_POWER_DOMAIN_ADSP_AO] = { 16362306a36Sopenharmony_ci .name = "adsp_ao", 16462306a36Sopenharmony_ci .sta_mask = BIT(10), 16562306a36Sopenharmony_ci .ctl_offs = 0x35C, 16662306a36Sopenharmony_ci .pwr_sta_offs = 0x16C, 16762306a36Sopenharmony_ci .pwr_sta2nd_offs = 0x170, 16862306a36Sopenharmony_ci .bp_infracfg = { 16962306a36Sopenharmony_ci BUS_PROT_WR(MT8188_TOP_AXI_PROT_EN_2_ADSP_AO_STEP1, 17062306a36Sopenharmony_ci MT8188_TOP_AXI_PROT_EN_2_SET, 17162306a36Sopenharmony_ci MT8188_TOP_AXI_PROT_EN_2_CLR, 17262306a36Sopenharmony_ci MT8188_TOP_AXI_PROT_EN_2_STA), 17362306a36Sopenharmony_ci BUS_PROT_WR(MT8188_TOP_AXI_PROT_EN_2_ADSP_AO_STEP2, 17462306a36Sopenharmony_ci MT8188_TOP_AXI_PROT_EN_2_SET, 17562306a36Sopenharmony_ci MT8188_TOP_AXI_PROT_EN_2_CLR, 17662306a36Sopenharmony_ci MT8188_TOP_AXI_PROT_EN_2_STA), 17762306a36Sopenharmony_ci }, 17862306a36Sopenharmony_ci .caps = MTK_SCPD_ALWAYS_ON, 17962306a36Sopenharmony_ci }, 18062306a36Sopenharmony_ci [MT8188_POWER_DOMAIN_ADSP_INFRA] = { 18162306a36Sopenharmony_ci .name = "adsp_infra", 18262306a36Sopenharmony_ci .sta_mask = BIT(9), 18362306a36Sopenharmony_ci .ctl_offs = 0x358, 18462306a36Sopenharmony_ci .pwr_sta_offs = 0x16C, 18562306a36Sopenharmony_ci .pwr_sta2nd_offs = 0x170, 18662306a36Sopenharmony_ci .sram_pdn_bits = BIT(8), 18762306a36Sopenharmony_ci .sram_pdn_ack_bits = BIT(12), 18862306a36Sopenharmony_ci .bp_infracfg = { 18962306a36Sopenharmony_ci BUS_PROT_WR(MT8188_TOP_AXI_PROT_EN_2_ADSP_INFRA_STEP1, 19062306a36Sopenharmony_ci MT8188_TOP_AXI_PROT_EN_2_SET, 19162306a36Sopenharmony_ci MT8188_TOP_AXI_PROT_EN_2_CLR, 19262306a36Sopenharmony_ci MT8188_TOP_AXI_PROT_EN_2_STA), 19362306a36Sopenharmony_ci BUS_PROT_WR(MT8188_TOP_AXI_PROT_EN_2_ADSP_INFRA_STEP2, 19462306a36Sopenharmony_ci MT8188_TOP_AXI_PROT_EN_2_SET, 19562306a36Sopenharmony_ci MT8188_TOP_AXI_PROT_EN_2_CLR, 19662306a36Sopenharmony_ci MT8188_TOP_AXI_PROT_EN_2_STA), 19762306a36Sopenharmony_ci }, 19862306a36Sopenharmony_ci .caps = MTK_SCPD_SRAM_ISO | MTK_SCPD_ALWAYS_ON, 19962306a36Sopenharmony_ci }, 20062306a36Sopenharmony_ci [MT8188_POWER_DOMAIN_ADSP] = { 20162306a36Sopenharmony_ci .name = "adsp", 20262306a36Sopenharmony_ci .sta_mask = BIT(8), 20362306a36Sopenharmony_ci .ctl_offs = 0x354, 20462306a36Sopenharmony_ci .pwr_sta_offs = 0x16C, 20562306a36Sopenharmony_ci .pwr_sta2nd_offs = 0x170, 20662306a36Sopenharmony_ci .sram_pdn_bits = BIT(8), 20762306a36Sopenharmony_ci .sram_pdn_ack_bits = BIT(12), 20862306a36Sopenharmony_ci .bp_infracfg = { 20962306a36Sopenharmony_ci BUS_PROT_WR(MT8188_TOP_AXI_PROT_EN_2_ADSP_STEP1, 21062306a36Sopenharmony_ci MT8188_TOP_AXI_PROT_EN_2_SET, 21162306a36Sopenharmony_ci MT8188_TOP_AXI_PROT_EN_2_CLR, 21262306a36Sopenharmony_ci MT8188_TOP_AXI_PROT_EN_2_STA), 21362306a36Sopenharmony_ci BUS_PROT_WR(MT8188_TOP_AXI_PROT_EN_2_ADSP_STEP2, 21462306a36Sopenharmony_ci MT8188_TOP_AXI_PROT_EN_2_SET, 21562306a36Sopenharmony_ci MT8188_TOP_AXI_PROT_EN_2_CLR, 21662306a36Sopenharmony_ci MT8188_TOP_AXI_PROT_EN_2_STA), 21762306a36Sopenharmony_ci }, 21862306a36Sopenharmony_ci .caps = MTK_SCPD_KEEP_DEFAULT_OFF | MTK_SCPD_SRAM_ISO | MTK_SCPD_ACTIVE_WAKEUP, 21962306a36Sopenharmony_ci }, 22062306a36Sopenharmony_ci [MT8188_POWER_DOMAIN_AUDIO] = { 22162306a36Sopenharmony_ci .name = "audio", 22262306a36Sopenharmony_ci .sta_mask = BIT(6), 22362306a36Sopenharmony_ci .ctl_offs = 0x34C, 22462306a36Sopenharmony_ci .pwr_sta_offs = 0x16C, 22562306a36Sopenharmony_ci .pwr_sta2nd_offs = 0x170, 22662306a36Sopenharmony_ci .sram_pdn_bits = BIT(8), 22762306a36Sopenharmony_ci .sram_pdn_ack_bits = BIT(12), 22862306a36Sopenharmony_ci .bp_infracfg = { 22962306a36Sopenharmony_ci BUS_PROT_WR(MT8188_TOP_AXI_PROT_EN_2_AUDIO_STEP1, 23062306a36Sopenharmony_ci MT8188_TOP_AXI_PROT_EN_2_SET, 23162306a36Sopenharmony_ci MT8188_TOP_AXI_PROT_EN_2_CLR, 23262306a36Sopenharmony_ci MT8188_TOP_AXI_PROT_EN_2_STA), 23362306a36Sopenharmony_ci BUS_PROT_WR(MT8188_TOP_AXI_PROT_EN_2_AUDIO_STEP2, 23462306a36Sopenharmony_ci MT8188_TOP_AXI_PROT_EN_2_SET, 23562306a36Sopenharmony_ci MT8188_TOP_AXI_PROT_EN_2_CLR, 23662306a36Sopenharmony_ci MT8188_TOP_AXI_PROT_EN_2_STA), 23762306a36Sopenharmony_ci }, 23862306a36Sopenharmony_ci .caps = MTK_SCPD_KEEP_DEFAULT_OFF | MTK_SCPD_ACTIVE_WAKEUP, 23962306a36Sopenharmony_ci }, 24062306a36Sopenharmony_ci [MT8188_POWER_DOMAIN_AUDIO_ASRC] = { 24162306a36Sopenharmony_ci .name = "audio_asrc", 24262306a36Sopenharmony_ci .sta_mask = BIT(7), 24362306a36Sopenharmony_ci .ctl_offs = 0x350, 24462306a36Sopenharmony_ci .pwr_sta_offs = 0x16C, 24562306a36Sopenharmony_ci .pwr_sta2nd_offs = 0x170, 24662306a36Sopenharmony_ci .sram_pdn_bits = BIT(8), 24762306a36Sopenharmony_ci .sram_pdn_ack_bits = BIT(12), 24862306a36Sopenharmony_ci .bp_infracfg = { 24962306a36Sopenharmony_ci BUS_PROT_WR(MT8188_TOP_AXI_PROT_EN_2_AUDIO_ASRC_STEP1, 25062306a36Sopenharmony_ci MT8188_TOP_AXI_PROT_EN_2_SET, 25162306a36Sopenharmony_ci MT8188_TOP_AXI_PROT_EN_2_CLR, 25262306a36Sopenharmony_ci MT8188_TOP_AXI_PROT_EN_2_STA), 25362306a36Sopenharmony_ci BUS_PROT_WR(MT8188_TOP_AXI_PROT_EN_2_AUDIO_ASRC_STEP2, 25462306a36Sopenharmony_ci MT8188_TOP_AXI_PROT_EN_2_SET, 25562306a36Sopenharmony_ci MT8188_TOP_AXI_PROT_EN_2_CLR, 25662306a36Sopenharmony_ci MT8188_TOP_AXI_PROT_EN_2_STA), 25762306a36Sopenharmony_ci }, 25862306a36Sopenharmony_ci .caps = MTK_SCPD_KEEP_DEFAULT_OFF, 25962306a36Sopenharmony_ci }, 26062306a36Sopenharmony_ci [MT8188_POWER_DOMAIN_VPPSYS0] = { 26162306a36Sopenharmony_ci .name = "vppsys0", 26262306a36Sopenharmony_ci .sta_mask = BIT(11), 26362306a36Sopenharmony_ci .ctl_offs = 0x360, 26462306a36Sopenharmony_ci .pwr_sta_offs = 0x16C, 26562306a36Sopenharmony_ci .pwr_sta2nd_offs = 0x170, 26662306a36Sopenharmony_ci .sram_pdn_bits = BIT(8), 26762306a36Sopenharmony_ci .sram_pdn_ack_bits = BIT(12), 26862306a36Sopenharmony_ci .bp_infracfg = { 26962306a36Sopenharmony_ci BUS_PROT_WR(MT8188_TOP_AXI_PROT_EN_VPPSYS0_STEP1, 27062306a36Sopenharmony_ci MT8188_TOP_AXI_PROT_EN_SET, 27162306a36Sopenharmony_ci MT8188_TOP_AXI_PROT_EN_CLR, 27262306a36Sopenharmony_ci MT8188_TOP_AXI_PROT_EN_STA), 27362306a36Sopenharmony_ci BUS_PROT_WR(MT8188_TOP_AXI_PROT_EN_MM_2_VPPSYS0_STEP2, 27462306a36Sopenharmony_ci MT8188_TOP_AXI_PROT_EN_MM_2_SET, 27562306a36Sopenharmony_ci MT8188_TOP_AXI_PROT_EN_MM_2_CLR, 27662306a36Sopenharmony_ci MT8188_TOP_AXI_PROT_EN_MM_2_STA), 27762306a36Sopenharmony_ci BUS_PROT_WR(MT8188_TOP_AXI_PROT_EN_VPPSYS0_STEP3, 27862306a36Sopenharmony_ci MT8188_TOP_AXI_PROT_EN_SET, 27962306a36Sopenharmony_ci MT8188_TOP_AXI_PROT_EN_CLR, 28062306a36Sopenharmony_ci MT8188_TOP_AXI_PROT_EN_STA), 28162306a36Sopenharmony_ci BUS_PROT_WR(MT8188_TOP_AXI_PROT_EN_MM_2_VPPSYS0_STEP4, 28262306a36Sopenharmony_ci MT8188_TOP_AXI_PROT_EN_MM_2_SET, 28362306a36Sopenharmony_ci MT8188_TOP_AXI_PROT_EN_MM_2_CLR, 28462306a36Sopenharmony_ci MT8188_TOP_AXI_PROT_EN_MM_2_STA), 28562306a36Sopenharmony_ci BUS_PROT_WR(MT8188_TOP_AXI_PROT_EN_SUB_INFRA_VDNR_VPPSYS0_STEP5, 28662306a36Sopenharmony_ci MT8188_TOP_AXI_PROT_EN_SUB_INFRA_VDNR_SET, 28762306a36Sopenharmony_ci MT8188_TOP_AXI_PROT_EN_SUB_INFRA_VDNR_CLR, 28862306a36Sopenharmony_ci MT8188_TOP_AXI_PROT_EN_SUB_INFRA_VDNR_STA), 28962306a36Sopenharmony_ci }, 29062306a36Sopenharmony_ci }, 29162306a36Sopenharmony_ci [MT8188_POWER_DOMAIN_VDOSYS0] = { 29262306a36Sopenharmony_ci .name = "vdosys0", 29362306a36Sopenharmony_ci .sta_mask = BIT(13), 29462306a36Sopenharmony_ci .ctl_offs = 0x368, 29562306a36Sopenharmony_ci .pwr_sta_offs = 0x16C, 29662306a36Sopenharmony_ci .pwr_sta2nd_offs = 0x170, 29762306a36Sopenharmony_ci .sram_pdn_bits = BIT(8), 29862306a36Sopenharmony_ci .sram_pdn_ack_bits = BIT(12), 29962306a36Sopenharmony_ci .bp_infracfg = { 30062306a36Sopenharmony_ci BUS_PROT_WR(MT8188_TOP_AXI_PROT_EN_MM_VDOSYS0_STEP1, 30162306a36Sopenharmony_ci MT8188_TOP_AXI_PROT_EN_MM_SET, 30262306a36Sopenharmony_ci MT8188_TOP_AXI_PROT_EN_MM_CLR, 30362306a36Sopenharmony_ci MT8188_TOP_AXI_PROT_EN_MM_STA), 30462306a36Sopenharmony_ci BUS_PROT_WR(MT8188_TOP_AXI_PROT_EN_VDOSYS0_STEP2, 30562306a36Sopenharmony_ci MT8188_TOP_AXI_PROT_EN_SET, 30662306a36Sopenharmony_ci MT8188_TOP_AXI_PROT_EN_CLR, 30762306a36Sopenharmony_ci MT8188_TOP_AXI_PROT_EN_STA), 30862306a36Sopenharmony_ci BUS_PROT_WR(MT8188_TOP_AXI_PROT_EN_SUB_INFRA_VDNR_VDOSYS0_STEP3, 30962306a36Sopenharmony_ci MT8188_TOP_AXI_PROT_EN_SUB_INFRA_VDNR_SET, 31062306a36Sopenharmony_ci MT8188_TOP_AXI_PROT_EN_SUB_INFRA_VDNR_CLR, 31162306a36Sopenharmony_ci MT8188_TOP_AXI_PROT_EN_SUB_INFRA_VDNR_STA), 31262306a36Sopenharmony_ci }, 31362306a36Sopenharmony_ci }, 31462306a36Sopenharmony_ci [MT8188_POWER_DOMAIN_VDOSYS1] = { 31562306a36Sopenharmony_ci .name = "vdosys1", 31662306a36Sopenharmony_ci .sta_mask = BIT(14), 31762306a36Sopenharmony_ci .ctl_offs = 0x36C, 31862306a36Sopenharmony_ci .pwr_sta_offs = 0x16C, 31962306a36Sopenharmony_ci .pwr_sta2nd_offs = 0x170, 32062306a36Sopenharmony_ci .sram_pdn_bits = BIT(8), 32162306a36Sopenharmony_ci .sram_pdn_ack_bits = BIT(12), 32262306a36Sopenharmony_ci .bp_infracfg = { 32362306a36Sopenharmony_ci BUS_PROT_WR(MT8188_TOP_AXI_PROT_EN_MM_VDOSYS1_STEP1, 32462306a36Sopenharmony_ci MT8188_TOP_AXI_PROT_EN_MM_SET, 32562306a36Sopenharmony_ci MT8188_TOP_AXI_PROT_EN_MM_CLR, 32662306a36Sopenharmony_ci MT8188_TOP_AXI_PROT_EN_MM_STA), 32762306a36Sopenharmony_ci BUS_PROT_WR(MT8188_TOP_AXI_PROT_EN_MM_VDOSYS1_STEP2, 32862306a36Sopenharmony_ci MT8188_TOP_AXI_PROT_EN_MM_SET, 32962306a36Sopenharmony_ci MT8188_TOP_AXI_PROT_EN_MM_CLR, 33062306a36Sopenharmony_ci MT8188_TOP_AXI_PROT_EN_MM_STA), 33162306a36Sopenharmony_ci BUS_PROT_WR(MT8188_TOP_AXI_PROT_EN_MM_2_VDOSYS1_STEP3, 33262306a36Sopenharmony_ci MT8188_TOP_AXI_PROT_EN_MM_2_SET, 33362306a36Sopenharmony_ci MT8188_TOP_AXI_PROT_EN_MM_2_CLR, 33462306a36Sopenharmony_ci MT8188_TOP_AXI_PROT_EN_MM_2_STA), 33562306a36Sopenharmony_ci }, 33662306a36Sopenharmony_ci }, 33762306a36Sopenharmony_ci [MT8188_POWER_DOMAIN_DP_TX] = { 33862306a36Sopenharmony_ci .name = "dp_tx", 33962306a36Sopenharmony_ci .sta_mask = BIT(16), 34062306a36Sopenharmony_ci .ctl_offs = 0x374, 34162306a36Sopenharmony_ci .pwr_sta_offs = 0x16C, 34262306a36Sopenharmony_ci .pwr_sta2nd_offs = 0x170, 34362306a36Sopenharmony_ci .sram_pdn_bits = BIT(8), 34462306a36Sopenharmony_ci .sram_pdn_ack_bits = BIT(12), 34562306a36Sopenharmony_ci .bp_infracfg = { 34662306a36Sopenharmony_ci BUS_PROT_WR(MT8188_TOP_AXI_PROT_EN_INFRA_VDNR_DP_TX_STEP1, 34762306a36Sopenharmony_ci MT8188_TOP_AXI_PROT_EN_INFRA_VDNR_SET, 34862306a36Sopenharmony_ci MT8188_TOP_AXI_PROT_EN_INFRA_VDNR_CLR, 34962306a36Sopenharmony_ci MT8188_TOP_AXI_PROT_EN_INFRA_VDNR_STA), 35062306a36Sopenharmony_ci }, 35162306a36Sopenharmony_ci .caps = MTK_SCPD_KEEP_DEFAULT_OFF, 35262306a36Sopenharmony_ci }, 35362306a36Sopenharmony_ci [MT8188_POWER_DOMAIN_EDP_TX] = { 35462306a36Sopenharmony_ci .name = "edp_tx", 35562306a36Sopenharmony_ci .sta_mask = BIT(17), 35662306a36Sopenharmony_ci .ctl_offs = 0x378, 35762306a36Sopenharmony_ci .pwr_sta_offs = 0x16C, 35862306a36Sopenharmony_ci .pwr_sta2nd_offs = 0x170, 35962306a36Sopenharmony_ci .sram_pdn_bits = BIT(8), 36062306a36Sopenharmony_ci .sram_pdn_ack_bits = BIT(12), 36162306a36Sopenharmony_ci .bp_infracfg = { 36262306a36Sopenharmony_ci BUS_PROT_WR(MT8188_TOP_AXI_PROT_EN_INFRA_VDNR_EDP_TX_STEP1, 36362306a36Sopenharmony_ci MT8188_TOP_AXI_PROT_EN_INFRA_VDNR_SET, 36462306a36Sopenharmony_ci MT8188_TOP_AXI_PROT_EN_INFRA_VDNR_CLR, 36562306a36Sopenharmony_ci MT8188_TOP_AXI_PROT_EN_INFRA_VDNR_STA), 36662306a36Sopenharmony_ci }, 36762306a36Sopenharmony_ci .caps = MTK_SCPD_KEEP_DEFAULT_OFF, 36862306a36Sopenharmony_ci }, 36962306a36Sopenharmony_ci [MT8188_POWER_DOMAIN_VPPSYS1] = { 37062306a36Sopenharmony_ci .name = "vppsys1", 37162306a36Sopenharmony_ci .sta_mask = BIT(12), 37262306a36Sopenharmony_ci .ctl_offs = 0x364, 37362306a36Sopenharmony_ci .pwr_sta_offs = 0x16C, 37462306a36Sopenharmony_ci .pwr_sta2nd_offs = 0x170, 37562306a36Sopenharmony_ci .sram_pdn_bits = BIT(8), 37662306a36Sopenharmony_ci .sram_pdn_ack_bits = BIT(12), 37762306a36Sopenharmony_ci .bp_infracfg = { 37862306a36Sopenharmony_ci BUS_PROT_WR(MT8188_TOP_AXI_PROT_EN_MM_VPPSYS1_STEP1, 37962306a36Sopenharmony_ci MT8188_TOP_AXI_PROT_EN_MM_SET, 38062306a36Sopenharmony_ci MT8188_TOP_AXI_PROT_EN_MM_CLR, 38162306a36Sopenharmony_ci MT8188_TOP_AXI_PROT_EN_MM_STA), 38262306a36Sopenharmony_ci BUS_PROT_WR(MT8188_TOP_AXI_PROT_EN_MM_VPPSYS1_STEP2, 38362306a36Sopenharmony_ci MT8188_TOP_AXI_PROT_EN_MM_SET, 38462306a36Sopenharmony_ci MT8188_TOP_AXI_PROT_EN_MM_CLR, 38562306a36Sopenharmony_ci MT8188_TOP_AXI_PROT_EN_MM_STA), 38662306a36Sopenharmony_ci BUS_PROT_WR(MT8188_TOP_AXI_PROT_EN_MM_2_VPPSYS1_STEP3, 38762306a36Sopenharmony_ci MT8188_TOP_AXI_PROT_EN_MM_2_SET, 38862306a36Sopenharmony_ci MT8188_TOP_AXI_PROT_EN_MM_2_CLR, 38962306a36Sopenharmony_ci MT8188_TOP_AXI_PROT_EN_MM_2_STA), 39062306a36Sopenharmony_ci }, 39162306a36Sopenharmony_ci }, 39262306a36Sopenharmony_ci [MT8188_POWER_DOMAIN_WPE] = { 39362306a36Sopenharmony_ci .name = "wpe", 39462306a36Sopenharmony_ci .sta_mask = BIT(15), 39562306a36Sopenharmony_ci .ctl_offs = 0x370, 39662306a36Sopenharmony_ci .pwr_sta_offs = 0x16C, 39762306a36Sopenharmony_ci .pwr_sta2nd_offs = 0x170, 39862306a36Sopenharmony_ci .sram_pdn_bits = BIT(8), 39962306a36Sopenharmony_ci .sram_pdn_ack_bits = BIT(12), 40062306a36Sopenharmony_ci .bp_infracfg = { 40162306a36Sopenharmony_ci BUS_PROT_WR(MT8188_TOP_AXI_PROT_EN_MM_2_WPE_STEP1, 40262306a36Sopenharmony_ci MT8188_TOP_AXI_PROT_EN_MM_2_SET, 40362306a36Sopenharmony_ci MT8188_TOP_AXI_PROT_EN_MM_2_CLR, 40462306a36Sopenharmony_ci MT8188_TOP_AXI_PROT_EN_MM_2_STA), 40562306a36Sopenharmony_ci BUS_PROT_WR(MT8188_TOP_AXI_PROT_EN_MM_2_WPE_STEP2, 40662306a36Sopenharmony_ci MT8188_TOP_AXI_PROT_EN_MM_2_SET, 40762306a36Sopenharmony_ci MT8188_TOP_AXI_PROT_EN_MM_2_CLR, 40862306a36Sopenharmony_ci MT8188_TOP_AXI_PROT_EN_MM_2_STA), 40962306a36Sopenharmony_ci }, 41062306a36Sopenharmony_ci .caps = MTK_SCPD_KEEP_DEFAULT_OFF, 41162306a36Sopenharmony_ci }, 41262306a36Sopenharmony_ci [MT8188_POWER_DOMAIN_VDEC0] = { 41362306a36Sopenharmony_ci .name = "vdec0", 41462306a36Sopenharmony_ci .sta_mask = BIT(19), 41562306a36Sopenharmony_ci .ctl_offs = 0x380, 41662306a36Sopenharmony_ci .pwr_sta_offs = 0x16C, 41762306a36Sopenharmony_ci .pwr_sta2nd_offs = 0x170, 41862306a36Sopenharmony_ci .sram_pdn_bits = BIT(8), 41962306a36Sopenharmony_ci .sram_pdn_ack_bits = BIT(12), 42062306a36Sopenharmony_ci .bp_infracfg = { 42162306a36Sopenharmony_ci BUS_PROT_WR(MT8188_TOP_AXI_PROT_EN_MM_VDEC0_STEP1, 42262306a36Sopenharmony_ci MT8188_TOP_AXI_PROT_EN_MM_SET, 42362306a36Sopenharmony_ci MT8188_TOP_AXI_PROT_EN_MM_CLR, 42462306a36Sopenharmony_ci MT8188_TOP_AXI_PROT_EN_MM_STA), 42562306a36Sopenharmony_ci BUS_PROT_WR(MT8188_TOP_AXI_PROT_EN_MM_2_VDEC0_STEP2, 42662306a36Sopenharmony_ci MT8188_TOP_AXI_PROT_EN_MM_2_SET, 42762306a36Sopenharmony_ci MT8188_TOP_AXI_PROT_EN_MM_2_CLR, 42862306a36Sopenharmony_ci MT8188_TOP_AXI_PROT_EN_MM_2_STA), 42962306a36Sopenharmony_ci }, 43062306a36Sopenharmony_ci .caps = MTK_SCPD_KEEP_DEFAULT_OFF, 43162306a36Sopenharmony_ci }, 43262306a36Sopenharmony_ci [MT8188_POWER_DOMAIN_VDEC1] = { 43362306a36Sopenharmony_ci .name = "vdec1", 43462306a36Sopenharmony_ci .sta_mask = BIT(20), 43562306a36Sopenharmony_ci .ctl_offs = 0x384, 43662306a36Sopenharmony_ci .pwr_sta_offs = 0x16C, 43762306a36Sopenharmony_ci .pwr_sta2nd_offs = 0x170, 43862306a36Sopenharmony_ci .sram_pdn_bits = BIT(8), 43962306a36Sopenharmony_ci .sram_pdn_ack_bits = BIT(12), 44062306a36Sopenharmony_ci .bp_infracfg = { 44162306a36Sopenharmony_ci BUS_PROT_WR(MT8188_TOP_AXI_PROT_EN_MM_VDEC1_STEP1, 44262306a36Sopenharmony_ci MT8188_TOP_AXI_PROT_EN_MM_SET, 44362306a36Sopenharmony_ci MT8188_TOP_AXI_PROT_EN_MM_CLR, 44462306a36Sopenharmony_ci MT8188_TOP_AXI_PROT_EN_MM_STA), 44562306a36Sopenharmony_ci BUS_PROT_WR(MT8188_TOP_AXI_PROT_EN_MM_VDEC1_STEP2, 44662306a36Sopenharmony_ci MT8188_TOP_AXI_PROT_EN_MM_SET, 44762306a36Sopenharmony_ci MT8188_TOP_AXI_PROT_EN_MM_CLR, 44862306a36Sopenharmony_ci MT8188_TOP_AXI_PROT_EN_MM_STA), 44962306a36Sopenharmony_ci }, 45062306a36Sopenharmony_ci .caps = MTK_SCPD_KEEP_DEFAULT_OFF, 45162306a36Sopenharmony_ci }, 45262306a36Sopenharmony_ci [MT8188_POWER_DOMAIN_VENC] = { 45362306a36Sopenharmony_ci .name = "venc", 45462306a36Sopenharmony_ci .sta_mask = BIT(22), 45562306a36Sopenharmony_ci .ctl_offs = 0x38C, 45662306a36Sopenharmony_ci .pwr_sta_offs = 0x16C, 45762306a36Sopenharmony_ci .pwr_sta2nd_offs = 0x170, 45862306a36Sopenharmony_ci .sram_pdn_bits = BIT(8), 45962306a36Sopenharmony_ci .sram_pdn_ack_bits = BIT(12), 46062306a36Sopenharmony_ci .bp_infracfg = { 46162306a36Sopenharmony_ci BUS_PROT_WR(MT8188_TOP_AXI_PROT_EN_MM_VENC_STEP1, 46262306a36Sopenharmony_ci MT8188_TOP_AXI_PROT_EN_MM_SET, 46362306a36Sopenharmony_ci MT8188_TOP_AXI_PROT_EN_MM_CLR, 46462306a36Sopenharmony_ci MT8188_TOP_AXI_PROT_EN_MM_STA), 46562306a36Sopenharmony_ci BUS_PROT_WR(MT8188_TOP_AXI_PROT_EN_MM_VENC_STEP2, 46662306a36Sopenharmony_ci MT8188_TOP_AXI_PROT_EN_MM_SET, 46762306a36Sopenharmony_ci MT8188_TOP_AXI_PROT_EN_MM_CLR, 46862306a36Sopenharmony_ci MT8188_TOP_AXI_PROT_EN_MM_STA), 46962306a36Sopenharmony_ci BUS_PROT_WR(MT8188_TOP_AXI_PROT_EN_MM_2_VENC_STEP3, 47062306a36Sopenharmony_ci MT8188_TOP_AXI_PROT_EN_MM_2_SET, 47162306a36Sopenharmony_ci MT8188_TOP_AXI_PROT_EN_MM_2_CLR, 47262306a36Sopenharmony_ci MT8188_TOP_AXI_PROT_EN_MM_2_STA), 47362306a36Sopenharmony_ci }, 47462306a36Sopenharmony_ci .caps = MTK_SCPD_KEEP_DEFAULT_OFF, 47562306a36Sopenharmony_ci }, 47662306a36Sopenharmony_ci [MT8188_POWER_DOMAIN_IMG_VCORE] = { 47762306a36Sopenharmony_ci .name = "vcore", 47862306a36Sopenharmony_ci .sta_mask = BIT(28), 47962306a36Sopenharmony_ci .ctl_offs = 0x3A4, 48062306a36Sopenharmony_ci .pwr_sta_offs = 0x16C, 48162306a36Sopenharmony_ci .pwr_sta2nd_offs = 0x170, 48262306a36Sopenharmony_ci .bp_infracfg = { 48362306a36Sopenharmony_ci BUS_PROT_WR(MT8188_TOP_AXI_PROT_EN_MM_IMG_VCORE_STEP1, 48462306a36Sopenharmony_ci MT8188_TOP_AXI_PROT_EN_MM_SET, 48562306a36Sopenharmony_ci MT8188_TOP_AXI_PROT_EN_MM_CLR, 48662306a36Sopenharmony_ci MT8188_TOP_AXI_PROT_EN_MM_STA), 48762306a36Sopenharmony_ci BUS_PROT_WR(MT8188_TOP_AXI_PROT_EN_MM_IMG_VCORE_STEP2, 48862306a36Sopenharmony_ci MT8188_TOP_AXI_PROT_EN_MM_SET, 48962306a36Sopenharmony_ci MT8188_TOP_AXI_PROT_EN_MM_CLR, 49062306a36Sopenharmony_ci MT8188_TOP_AXI_PROT_EN_MM_STA), 49162306a36Sopenharmony_ci BUS_PROT_WR(MT8188_TOP_AXI_PROT_EN_MM_2_IMG_VCORE_STEP3, 49262306a36Sopenharmony_ci MT8188_TOP_AXI_PROT_EN_MM_2_SET, 49362306a36Sopenharmony_ci MT8188_TOP_AXI_PROT_EN_MM_2_CLR, 49462306a36Sopenharmony_ci MT8188_TOP_AXI_PROT_EN_MM_2_STA), 49562306a36Sopenharmony_ci }, 49662306a36Sopenharmony_ci .caps = MTK_SCPD_KEEP_DEFAULT_OFF | MTK_SCPD_DOMAIN_SUPPLY, 49762306a36Sopenharmony_ci }, 49862306a36Sopenharmony_ci [MT8188_POWER_DOMAIN_IMG_MAIN] = { 49962306a36Sopenharmony_ci .name = "img_main", 50062306a36Sopenharmony_ci .sta_mask = BIT(29), 50162306a36Sopenharmony_ci .ctl_offs = 0x3A8, 50262306a36Sopenharmony_ci .pwr_sta_offs = 0x16C, 50362306a36Sopenharmony_ci .pwr_sta2nd_offs = 0x170, 50462306a36Sopenharmony_ci .sram_pdn_bits = BIT(8), 50562306a36Sopenharmony_ci .sram_pdn_ack_bits = BIT(12), 50662306a36Sopenharmony_ci .bp_infracfg = { 50762306a36Sopenharmony_ci BUS_PROT_WR(MT8188_TOP_AXI_PROT_EN_MM_2_IMG_MAIN_STEP1, 50862306a36Sopenharmony_ci MT8188_TOP_AXI_PROT_EN_MM_2_SET, 50962306a36Sopenharmony_ci MT8188_TOP_AXI_PROT_EN_MM_2_CLR, 51062306a36Sopenharmony_ci MT8188_TOP_AXI_PROT_EN_MM_2_STA), 51162306a36Sopenharmony_ci BUS_PROT_WR(MT8188_TOP_AXI_PROT_EN_MM_2_IMG_MAIN_STEP2, 51262306a36Sopenharmony_ci MT8188_TOP_AXI_PROT_EN_MM_2_SET, 51362306a36Sopenharmony_ci MT8188_TOP_AXI_PROT_EN_MM_2_CLR, 51462306a36Sopenharmony_ci MT8188_TOP_AXI_PROT_EN_MM_2_STA), 51562306a36Sopenharmony_ci }, 51662306a36Sopenharmony_ci .caps = MTK_SCPD_KEEP_DEFAULT_OFF, 51762306a36Sopenharmony_ci }, 51862306a36Sopenharmony_ci [MT8188_POWER_DOMAIN_DIP] = { 51962306a36Sopenharmony_ci .name = "dip", 52062306a36Sopenharmony_ci .sta_mask = BIT(30), 52162306a36Sopenharmony_ci .ctl_offs = 0x3AC, 52262306a36Sopenharmony_ci .pwr_sta_offs = 0x16C, 52362306a36Sopenharmony_ci .pwr_sta2nd_offs = 0x170, 52462306a36Sopenharmony_ci .sram_pdn_bits = BIT(8), 52562306a36Sopenharmony_ci .sram_pdn_ack_bits = BIT(12), 52662306a36Sopenharmony_ci .caps = MTK_SCPD_KEEP_DEFAULT_OFF, 52762306a36Sopenharmony_ci }, 52862306a36Sopenharmony_ci [MT8188_POWER_DOMAIN_IPE] = { 52962306a36Sopenharmony_ci .name = "ipe", 53062306a36Sopenharmony_ci .sta_mask = BIT(31), 53162306a36Sopenharmony_ci .ctl_offs = 0x3B0, 53262306a36Sopenharmony_ci .pwr_sta_offs = 0x16C, 53362306a36Sopenharmony_ci .pwr_sta2nd_offs = 0x170, 53462306a36Sopenharmony_ci .sram_pdn_bits = BIT(8), 53562306a36Sopenharmony_ci .sram_pdn_ack_bits = BIT(12), 53662306a36Sopenharmony_ci .caps = MTK_SCPD_KEEP_DEFAULT_OFF, 53762306a36Sopenharmony_ci }, 53862306a36Sopenharmony_ci [MT8188_POWER_DOMAIN_CAM_VCORE] = { 53962306a36Sopenharmony_ci .name = "cam_vcore", 54062306a36Sopenharmony_ci .sta_mask = BIT(27), 54162306a36Sopenharmony_ci .ctl_offs = 0x3A0, 54262306a36Sopenharmony_ci .pwr_sta_offs = 0x16C, 54362306a36Sopenharmony_ci .pwr_sta2nd_offs = 0x170, 54462306a36Sopenharmony_ci .bp_infracfg = { 54562306a36Sopenharmony_ci BUS_PROT_WR(MT8188_TOP_AXI_PROT_EN_MM_CAM_VCORE_STEP1, 54662306a36Sopenharmony_ci MT8188_TOP_AXI_PROT_EN_MM_SET, 54762306a36Sopenharmony_ci MT8188_TOP_AXI_PROT_EN_MM_CLR, 54862306a36Sopenharmony_ci MT8188_TOP_AXI_PROT_EN_MM_STA), 54962306a36Sopenharmony_ci BUS_PROT_WR(MT8188_TOP_AXI_PROT_EN_2_CAM_VCORE_STEP2, 55062306a36Sopenharmony_ci MT8188_TOP_AXI_PROT_EN_2_SET, 55162306a36Sopenharmony_ci MT8188_TOP_AXI_PROT_EN_2_CLR, 55262306a36Sopenharmony_ci MT8188_TOP_AXI_PROT_EN_2_STA), 55362306a36Sopenharmony_ci BUS_PROT_WR(MT8188_TOP_AXI_PROT_EN_1_CAM_VCORE_STEP3, 55462306a36Sopenharmony_ci MT8188_TOP_AXI_PROT_EN_1_SET, 55562306a36Sopenharmony_ci MT8188_TOP_AXI_PROT_EN_1_CLR, 55662306a36Sopenharmony_ci MT8188_TOP_AXI_PROT_EN_1_STA), 55762306a36Sopenharmony_ci BUS_PROT_WR(MT8188_TOP_AXI_PROT_EN_MM_CAM_VCORE_STEP4, 55862306a36Sopenharmony_ci MT8188_TOP_AXI_PROT_EN_MM_SET, 55962306a36Sopenharmony_ci MT8188_TOP_AXI_PROT_EN_MM_CLR, 56062306a36Sopenharmony_ci MT8188_TOP_AXI_PROT_EN_MM_STA), 56162306a36Sopenharmony_ci BUS_PROT_WR(MT8188_TOP_AXI_PROT_EN_MM_2_CAM_VCORE_STEP5, 56262306a36Sopenharmony_ci MT8188_TOP_AXI_PROT_EN_MM_2_SET, 56362306a36Sopenharmony_ci MT8188_TOP_AXI_PROT_EN_MM_2_CLR, 56462306a36Sopenharmony_ci MT8188_TOP_AXI_PROT_EN_MM_2_STA), 56562306a36Sopenharmony_ci }, 56662306a36Sopenharmony_ci .caps = MTK_SCPD_KEEP_DEFAULT_OFF | MTK_SCPD_DOMAIN_SUPPLY, 56762306a36Sopenharmony_ci }, 56862306a36Sopenharmony_ci [MT8188_POWER_DOMAIN_CAM_MAIN] = { 56962306a36Sopenharmony_ci .name = "cam_main", 57062306a36Sopenharmony_ci .sta_mask = BIT(24), 57162306a36Sopenharmony_ci .ctl_offs = 0x394, 57262306a36Sopenharmony_ci .pwr_sta_offs = 0x16C, 57362306a36Sopenharmony_ci .pwr_sta2nd_offs = 0x170, 57462306a36Sopenharmony_ci .sram_pdn_bits = BIT(8), 57562306a36Sopenharmony_ci .sram_pdn_ack_bits = BIT(12), 57662306a36Sopenharmony_ci .bp_infracfg = { 57762306a36Sopenharmony_ci BUS_PROT_WR(MT8188_TOP_AXI_PROT_EN_MM_2_CAM_MAIN_STEP1, 57862306a36Sopenharmony_ci MT8188_TOP_AXI_PROT_EN_MM_2_SET, 57962306a36Sopenharmony_ci MT8188_TOP_AXI_PROT_EN_MM_2_CLR, 58062306a36Sopenharmony_ci MT8188_TOP_AXI_PROT_EN_MM_2_STA), 58162306a36Sopenharmony_ci BUS_PROT_WR(MT8188_TOP_AXI_PROT_EN_2_CAM_MAIN_STEP2, 58262306a36Sopenharmony_ci MT8188_TOP_AXI_PROT_EN_2_SET, 58362306a36Sopenharmony_ci MT8188_TOP_AXI_PROT_EN_2_CLR, 58462306a36Sopenharmony_ci MT8188_TOP_AXI_PROT_EN_2_STA), 58562306a36Sopenharmony_ci BUS_PROT_WR(MT8188_TOP_AXI_PROT_EN_MM_2_CAM_MAIN_STEP3, 58662306a36Sopenharmony_ci MT8188_TOP_AXI_PROT_EN_MM_2_SET, 58762306a36Sopenharmony_ci MT8188_TOP_AXI_PROT_EN_MM_2_CLR, 58862306a36Sopenharmony_ci MT8188_TOP_AXI_PROT_EN_MM_2_STA), 58962306a36Sopenharmony_ci BUS_PROT_WR(MT8188_TOP_AXI_PROT_EN_2_CAM_MAIN_STEP4, 59062306a36Sopenharmony_ci MT8188_TOP_AXI_PROT_EN_2_SET, 59162306a36Sopenharmony_ci MT8188_TOP_AXI_PROT_EN_2_CLR, 59262306a36Sopenharmony_ci MT8188_TOP_AXI_PROT_EN_2_STA), 59362306a36Sopenharmony_ci }, 59462306a36Sopenharmony_ci .caps = MTK_SCPD_KEEP_DEFAULT_OFF, 59562306a36Sopenharmony_ci }, 59662306a36Sopenharmony_ci [MT8188_POWER_DOMAIN_CAM_SUBA] = { 59762306a36Sopenharmony_ci .name = "cam_suba", 59862306a36Sopenharmony_ci .sta_mask = BIT(25), 59962306a36Sopenharmony_ci .ctl_offs = 0x398, 60062306a36Sopenharmony_ci .pwr_sta_offs = 0x16C, 60162306a36Sopenharmony_ci .pwr_sta2nd_offs = 0x170, 60262306a36Sopenharmony_ci .sram_pdn_bits = BIT(8), 60362306a36Sopenharmony_ci .sram_pdn_ack_bits = BIT(12), 60462306a36Sopenharmony_ci .caps = MTK_SCPD_KEEP_DEFAULT_OFF, 60562306a36Sopenharmony_ci }, 60662306a36Sopenharmony_ci [MT8188_POWER_DOMAIN_CAM_SUBB] = { 60762306a36Sopenharmony_ci .name = "cam_subb", 60862306a36Sopenharmony_ci .sta_mask = BIT(26), 60962306a36Sopenharmony_ci .ctl_offs = 0x39C, 61062306a36Sopenharmony_ci .pwr_sta_offs = 0x16C, 61162306a36Sopenharmony_ci .pwr_sta2nd_offs = 0x170, 61262306a36Sopenharmony_ci .sram_pdn_bits = BIT(8), 61362306a36Sopenharmony_ci .sram_pdn_ack_bits = BIT(12), 61462306a36Sopenharmony_ci .caps = MTK_SCPD_KEEP_DEFAULT_OFF, 61562306a36Sopenharmony_ci }, 61662306a36Sopenharmony_ci}; 61762306a36Sopenharmony_ci 61862306a36Sopenharmony_cistatic const struct scpsys_soc_data mt8188_scpsys_data = { 61962306a36Sopenharmony_ci .domains_data = scpsys_domain_data_mt8188, 62062306a36Sopenharmony_ci .num_domains = ARRAY_SIZE(scpsys_domain_data_mt8188), 62162306a36Sopenharmony_ci}; 62262306a36Sopenharmony_ci 62362306a36Sopenharmony_ci#endif /* __SOC_MEDIATEK_MT8188_PM_DOMAINS_H */ 624