/* SPDX-License-Identifier: GPL-2.0-only */
/*
 * Copyright (c) 2022 MediaTek Inc.
 * Author: Chun-Jie Chen <chun-jie.chen@mediatek.com>
 */

#ifndef __SOC_MEDIATEK_MT8186_PM_DOMAINS_H
#define __SOC_MEDIATEK_MT8186_PM_DOMAINS_H

#include "mtk-pm-domains.h"
#include <dt-bindings/power/mt8186-power.h>

/*
 * MT8186 power domain support
 */

static const struct scpsys_domain_data scpsys_domain_data_mt8186[] = {
	[MT8186_POWER_DOMAIN_MFG0] = {
		.name = "mfg0",
		.sta_mask = BIT(2),
		.ctl_offs = 0x308,
		.pwr_sta_offs = 0x16C,
		.pwr_sta2nd_offs = 0x170,
		.sram_pdn_bits = BIT(8),
		.sram_pdn_ack_bits = BIT(12),
		.caps = MTK_SCPD_KEEP_DEFAULT_OFF | MTK_SCPD_DOMAIN_SUPPLY,
	},
	[MT8186_POWER_DOMAIN_MFG1] = {
		.name = "mfg1",
		.sta_mask = BIT(3),
		.ctl_offs = 0x30c,
		.pwr_sta_offs = 0x16C,
		.pwr_sta2nd_offs = 0x170,
		.sram_pdn_bits = BIT(8),
		.sram_pdn_ack_bits = BIT(12),
		.bp_infracfg = {
			BUS_PROT_WR_IGN(MT8186_TOP_AXI_PROT_EN_1_MFG1_STEP1,
				MT8186_TOP_AXI_PROT_EN_1_SET,
				MT8186_TOP_AXI_PROT_EN_1_CLR,
				MT8186_TOP_AXI_PROT_EN_1_STA),
			BUS_PROT_WR_IGN(MT8186_TOP_AXI_PROT_EN_MFG1_STEP2,
				MT8186_TOP_AXI_PROT_EN_SET,
				MT8186_TOP_AXI_PROT_EN_CLR,
				MT8186_TOP_AXI_PROT_EN_STA),
			BUS_PROT_WR_IGN(MT8186_TOP_AXI_PROT_EN_MFG1_STEP3,
				MT8186_TOP_AXI_PROT_EN_SET,
				MT8186_TOP_AXI_PROT_EN_CLR,
				MT8186_TOP_AXI_PROT_EN_STA),
			BUS_PROT_WR_IGN(MT8186_TOP_AXI_PROT_EN_1_MFG1_STEP4,
				MT8186_TOP_AXI_PROT_EN_1_SET,
				MT8186_TOP_AXI_PROT_EN_1_CLR,
				MT8186_TOP_AXI_PROT_EN_1_STA),
		},
		.caps = MTK_SCPD_KEEP_DEFAULT_OFF,
	},
	[MT8186_POWER_DOMAIN_MFG2] = {
		.name = "mfg2",
		.sta_mask = BIT(4),
		.ctl_offs = 0x310,
		.pwr_sta_offs = 0x16C,
		.pwr_sta2nd_offs = 0x170,
		.sram_pdn_bits = BIT(8),
		.sram_pdn_ack_bits = BIT(12),
		.caps = MTK_SCPD_KEEP_DEFAULT_OFF,
	},
	[MT8186_POWER_DOMAIN_MFG3] = {
		.name = "mfg3",
		.sta_mask = BIT(5),
		.ctl_offs = 0x314,
		.pwr_sta_offs = 0x16C,
		.pwr_sta2nd_offs = 0x170,
		.sram_pdn_bits = BIT(8),
		.sram_pdn_ack_bits = BIT(12),
		.caps = MTK_SCPD_KEEP_DEFAULT_OFF,
	},
	[MT8186_POWER_DOMAIN_SSUSB] = {
		.name = "ssusb",
		.sta_mask = BIT(20),
		.ctl_offs = 0x9F0,
		.pwr_sta_offs = 0x16C,
		.pwr_sta2nd_offs = 0x170,
		.sram_pdn_bits = BIT(8),
		.sram_pdn_ack_bits = BIT(12),
		.caps = MTK_SCPD_ACTIVE_WAKEUP,
	},
	[MT8186_POWER_DOMAIN_SSUSB_P1] = {
		.name = "ssusb_p1",
		.sta_mask = BIT(19),
		.ctl_offs = 0x9F4,
		.pwr_sta_offs = 0x16C,
		.pwr_sta2nd_offs = 0x170,
		.sram_pdn_bits = BIT(8),
		.sram_pdn_ack_bits = BIT(12),
		.caps = MTK_SCPD_ACTIVE_WAKEUP,
	},
	[MT8186_POWER_DOMAIN_DIS] = {
		.name = "dis",
		.sta_mask = BIT(21),
		.ctl_offs = 0x354,
		.pwr_sta_offs = 0x16C,
		.pwr_sta2nd_offs = 0x170,
		.sram_pdn_bits = BIT(8),
		.sram_pdn_ack_bits = BIT(12),
		.bp_infracfg = {
			BUS_PROT_WR_IGN(MT8186_TOP_AXI_PROT_EN_1_DIS_STEP1,
				MT8186_TOP_AXI_PROT_EN_1_SET,
				MT8186_TOP_AXI_PROT_EN_1_CLR,
				MT8186_TOP_AXI_PROT_EN_1_STA),
			BUS_PROT_WR_IGN(MT8186_TOP_AXI_PROT_EN_DIS_STEP2,
				MT8186_TOP_AXI_PROT_EN_SET,
				MT8186_TOP_AXI_PROT_EN_CLR,
				MT8186_TOP_AXI_PROT_EN_STA),
		},
	},
	[MT8186_POWER_DOMAIN_IMG] = {
		.name = "img",
		.sta_mask = BIT(13),
		.ctl_offs = 0x334,
		.pwr_sta_offs = 0x16C,
		.pwr_sta2nd_offs = 0x170,
		.sram_pdn_bits = BIT(8),
		.sram_pdn_ack_bits = BIT(12),
		.bp_infracfg = {
			BUS_PROT_WR_IGN(MT8186_TOP_AXI_PROT_EN_1_IMG_STEP1,
				MT8186_TOP_AXI_PROT_EN_1_SET,
				MT8186_TOP_AXI_PROT_EN_1_CLR,
				MT8186_TOP_AXI_PROT_EN_1_STA),
			BUS_PROT_WR_IGN(MT8186_TOP_AXI_PROT_EN_1_IMG_STEP2,
				MT8186_TOP_AXI_PROT_EN_1_SET,
				MT8186_TOP_AXI_PROT_EN_1_CLR,
				MT8186_TOP_AXI_PROT_EN_1_STA),
		},
		.caps = MTK_SCPD_KEEP_DEFAULT_OFF,
	},
	[MT8186_POWER_DOMAIN_IMG2] = {
		.name = "img2",
		.sta_mask = BIT(14),
		.ctl_offs = 0x338,
		.pwr_sta_offs = 0x16C,
		.pwr_sta2nd_offs = 0x170,
		.sram_pdn_bits = BIT(8),
		.sram_pdn_ack_bits = BIT(12),
		.caps = MTK_SCPD_KEEP_DEFAULT_OFF,
	},
	[MT8186_POWER_DOMAIN_IPE] = {
		.name = "ipe",
		.sta_mask = BIT(15),
		.ctl_offs = 0x33C,
		.pwr_sta_offs = 0x16C,
		.pwr_sta2nd_offs = 0x170,
		.sram_pdn_bits = BIT(8),
		.sram_pdn_ack_bits = BIT(12),
		.bp_infracfg = {
			BUS_PROT_WR_IGN(MT8186_TOP_AXI_PROT_EN_1_IPE_STEP1,
				MT8186_TOP_AXI_PROT_EN_1_SET,
				MT8186_TOP_AXI_PROT_EN_1_CLR,
				MT8186_TOP_AXI_PROT_EN_1_STA),
			BUS_PROT_WR_IGN(MT8186_TOP_AXI_PROT_EN_1_IPE_STEP2,
				MT8186_TOP_AXI_PROT_EN_1_SET,
				MT8186_TOP_AXI_PROT_EN_1_CLR,
				MT8186_TOP_AXI_PROT_EN_1_STA),
		},
		.caps = MTK_SCPD_KEEP_DEFAULT_OFF,
	},
	[MT8186_POWER_DOMAIN_CAM] = {
		.name = "cam",
		.sta_mask = BIT(23),
		.ctl_offs = 0x35C,
		.pwr_sta_offs = 0x16C,
		.pwr_sta2nd_offs = 0x170,
		.sram_pdn_bits = BIT(8),
		.sram_pdn_ack_bits = BIT(12),
		.bp_infracfg = {
			BUS_PROT_WR_IGN(MT8186_TOP_AXI_PROT_EN_1_CAM_STEP1,
				MT8186_TOP_AXI_PROT_EN_1_SET,
				MT8186_TOP_AXI_PROT_EN_1_CLR,
				MT8186_TOP_AXI_PROT_EN_1_STA),
			BUS_PROT_WR_IGN(MT8186_TOP_AXI_PROT_EN_1_CAM_STEP2,
				MT8186_TOP_AXI_PROT_EN_1_SET,
				MT8186_TOP_AXI_PROT_EN_1_CLR,
				MT8186_TOP_AXI_PROT_EN_1_STA),
		},
		.caps = MTK_SCPD_KEEP_DEFAULT_OFF,
	},
	[MT8186_POWER_DOMAIN_CAM_RAWA] = {
		.name = "cam_rawa",
		.sta_mask = BIT(24),
		.ctl_offs = 0x360,
		.pwr_sta_offs = 0x16C,
		.pwr_sta2nd_offs = 0x170,
		.sram_pdn_bits = BIT(8),
		.sram_pdn_ack_bits = BIT(12),
		.caps = MTK_SCPD_KEEP_DEFAULT_OFF,
	},
	[MT8186_POWER_DOMAIN_CAM_RAWB] = {
		.name = "cam_rawb",
		.sta_mask = BIT(25),
		.ctl_offs = 0x364,
		.pwr_sta_offs = 0x16C,
		.pwr_sta2nd_offs = 0x170,
		.sram_pdn_bits = BIT(8),
		.sram_pdn_ack_bits = BIT(12),
		.caps = MTK_SCPD_KEEP_DEFAULT_OFF,
	},
	[MT8186_POWER_DOMAIN_VENC] = {
		.name = "venc",
		.sta_mask = BIT(18),
		.ctl_offs = 0x348,
		.pwr_sta_offs = 0x16C,
		.pwr_sta2nd_offs = 0x170,
		.sram_pdn_bits = BIT(8),
		.sram_pdn_ack_bits = BIT(12),
		.bp_infracfg = {
			BUS_PROT_WR_IGN(MT8186_TOP_AXI_PROT_EN_1_VENC_STEP1,
				MT8186_TOP_AXI_PROT_EN_1_SET,
				MT8186_TOP_AXI_PROT_EN_1_CLR,
				MT8186_TOP_AXI_PROT_EN_1_STA),
			BUS_PROT_WR_IGN(MT8186_TOP_AXI_PROT_EN_1_VENC_STEP2,
				MT8186_TOP_AXI_PROT_EN_1_SET,
				MT8186_TOP_AXI_PROT_EN_1_CLR,
				MT8186_TOP_AXI_PROT_EN_1_STA),
		},
		.caps = MTK_SCPD_KEEP_DEFAULT_OFF,
	},
	[MT8186_POWER_DOMAIN_VDEC] = {
		.name = "vdec",
		.sta_mask = BIT(16),
		.ctl_offs = 0x340,
		.pwr_sta_offs = 0x16C,
		.pwr_sta2nd_offs = 0x170,
		.sram_pdn_bits = BIT(8),
		.sram_pdn_ack_bits = BIT(12),
		.bp_infracfg = {
			BUS_PROT_WR_IGN(MT8186_TOP_AXI_PROT_EN_1_VDEC_STEP1,
				MT8186_TOP_AXI_PROT_EN_1_SET,
				MT8186_TOP_AXI_PROT_EN_1_CLR,
				MT8186_TOP_AXI_PROT_EN_1_STA),
			BUS_PROT_WR_IGN(MT8186_TOP_AXI_PROT_EN_1_VDEC_STEP2,
				MT8186_TOP_AXI_PROT_EN_1_SET,
				MT8186_TOP_AXI_PROT_EN_1_CLR,
				MT8186_TOP_AXI_PROT_EN_1_STA),
		},
		.caps = MTK_SCPD_KEEP_DEFAULT_OFF,
	},
	[MT8186_POWER_DOMAIN_WPE] = {
		.name = "wpe",
		.sta_mask = BIT(0),
		.ctl_offs = 0x3F8,
		.pwr_sta_offs = 0x16C,
		.pwr_sta2nd_offs = 0x170,
		.sram_pdn_bits = BIT(8),
		.sram_pdn_ack_bits = BIT(12),
		.bp_infracfg = {
			BUS_PROT_WR_IGN(MT8186_TOP_AXI_PROT_EN_2_WPE_STEP1,
				MT8186_TOP_AXI_PROT_EN_2_SET,
				MT8186_TOP_AXI_PROT_EN_2_CLR,
				MT8186_TOP_AXI_PROT_EN_2_STA),
			BUS_PROT_WR_IGN(MT8186_TOP_AXI_PROT_EN_2_WPE_STEP2,
				MT8186_TOP_AXI_PROT_EN_2_SET,
				MT8186_TOP_AXI_PROT_EN_2_CLR,
				MT8186_TOP_AXI_PROT_EN_2_STA),
		},
		.caps = MTK_SCPD_KEEP_DEFAULT_OFF,
	},
	[MT8186_POWER_DOMAIN_CONN_ON] = {
		.name = "conn_on",
		.sta_mask = BIT(1),
		.ctl_offs = 0x304,
		.pwr_sta_offs = 0x16C,
		.pwr_sta2nd_offs = 0x170,
		.bp_infracfg = {
			BUS_PROT_WR_IGN(MT8186_TOP_AXI_PROT_EN_1_CONN_ON_STEP1,
				MT8186_TOP_AXI_PROT_EN_1_SET,
				MT8186_TOP_AXI_PROT_EN_1_CLR,
				MT8186_TOP_AXI_PROT_EN_1_STA),
			BUS_PROT_WR_IGN(MT8186_TOP_AXI_PROT_EN_CONN_ON_STEP2,
				MT8186_TOP_AXI_PROT_EN_SET,
				MT8186_TOP_AXI_PROT_EN_CLR,
				MT8186_TOP_AXI_PROT_EN_STA),
			BUS_PROT_WR_IGN(MT8186_TOP_AXI_PROT_EN_CONN_ON_STEP3,
				MT8186_TOP_AXI_PROT_EN_SET,
				MT8186_TOP_AXI_PROT_EN_CLR,
				MT8186_TOP_AXI_PROT_EN_STA),
			BUS_PROT_WR_IGN(MT8186_TOP_AXI_PROT_EN_CONN_ON_STEP4,
				MT8186_TOP_AXI_PROT_EN_SET,
				MT8186_TOP_AXI_PROT_EN_CLR,
				MT8186_TOP_AXI_PROT_EN_STA),
		},
		.caps = MTK_SCPD_KEEP_DEFAULT_OFF | MTK_SCPD_ACTIVE_WAKEUP,
	},
	[MT8186_POWER_DOMAIN_CSIRX_TOP] = {
		.name = "csirx_top",
		.sta_mask = BIT(6),
		.ctl_offs = 0x318,
		.pwr_sta_offs = 0x16C,
		.pwr_sta2nd_offs = 0x170,
		.sram_pdn_bits = BIT(8),
		.sram_pdn_ack_bits = BIT(12),
		.caps = MTK_SCPD_KEEP_DEFAULT_OFF,
	},
	[MT8186_POWER_DOMAIN_ADSP_AO] = {
		.name = "adsp_ao",
		.sta_mask = BIT(17),
		.ctl_offs = 0x9FC,
		.pwr_sta_offs = 0x16C,
		.pwr_sta2nd_offs = 0x170,
		.caps = MTK_SCPD_KEEP_DEFAULT_OFF,
	},
	[MT8186_POWER_DOMAIN_ADSP_INFRA] = {
		.name = "adsp_infra",
		.sta_mask = BIT(10),
		.ctl_offs = 0x9F8,
		.pwr_sta_offs = 0x16C,
		.pwr_sta2nd_offs = 0x170,
		.caps = MTK_SCPD_KEEP_DEFAULT_OFF,
	},
	[MT8186_POWER_DOMAIN_ADSP_TOP] = {
		.name = "adsp_top",
		.sta_mask = BIT(31),
		.ctl_offs = 0x3E4,
		.pwr_sta_offs = 0x16C,
		.pwr_sta2nd_offs = 0x170,
		.sram_pdn_bits = BIT(8),
		.sram_pdn_ack_bits = BIT(12),
		.bp_infracfg = {
			BUS_PROT_WR_IGN(MT8186_TOP_AXI_PROT_EN_3_ADSP_TOP_STEP1,
				MT8186_TOP_AXI_PROT_EN_3_SET,
				MT8186_TOP_AXI_PROT_EN_3_CLR,
				MT8186_TOP_AXI_PROT_EN_3_STA),
			BUS_PROT_WR_IGN(MT8186_TOP_AXI_PROT_EN_3_ADSP_TOP_STEP2,
				MT8186_TOP_AXI_PROT_EN_3_SET,
				MT8186_TOP_AXI_PROT_EN_3_CLR,
				MT8186_TOP_AXI_PROT_EN_3_STA),
		},
		.caps = MTK_SCPD_SRAM_ISO | MTK_SCPD_KEEP_DEFAULT_OFF | MTK_SCPD_ACTIVE_WAKEUP,
	},
};

static const struct scpsys_soc_data mt8186_scpsys_data = {
	.domains_data = scpsys_domain_data_mt8186,
	.num_domains = ARRAY_SIZE(scpsys_domain_data_mt8186),
};

#endif /* __SOC_MEDIATEK_MT8186_PM_DOMAINS_H */
