xref: /linux/drivers/pmdomain/mediatek/mt8196-pm-domains.h (revision 84318277d6334c6981ab326d4acc87c6a6ddc9b8)
15437b281SAngeloGioacchino Del Regno /* SPDX-License-Identifier: GPL-2.0-only */
25437b281SAngeloGioacchino Del Regno /*
35437b281SAngeloGioacchino Del Regno  * Copyright (c) 2025 Collabora Ltd
45437b281SAngeloGioacchino Del Regno  *                    AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
55437b281SAngeloGioacchino Del Regno  */
65437b281SAngeloGioacchino Del Regno 
75437b281SAngeloGioacchino Del Regno #ifndef __SOC_MEDIATEK_MT8196_PM_DOMAINS_H
85437b281SAngeloGioacchino Del Regno #define __SOC_MEDIATEK_MT8196_PM_DOMAINS_H
95437b281SAngeloGioacchino Del Regno 
105437b281SAngeloGioacchino Del Regno #include "mtk-pm-domains.h"
115437b281SAngeloGioacchino Del Regno #include <dt-bindings/power/mediatek,mt8196-power.h>
125437b281SAngeloGioacchino Del Regno 
135437b281SAngeloGioacchino Del Regno /*
145437b281SAngeloGioacchino Del Regno  * MT8196 and MT6991 power domain support
155437b281SAngeloGioacchino Del Regno  */
165437b281SAngeloGioacchino Del Regno 
175437b281SAngeloGioacchino Del Regno /* INFRA TOP_AXI registers */
185437b281SAngeloGioacchino Del Regno #define MT8196_TOP_AXI_PROT_EN_SET		0x4
195437b281SAngeloGioacchino Del Regno #define MT8196_TOP_AXI_PROT_EN_CLR		0x8
205437b281SAngeloGioacchino Del Regno #define MT8196_TOP_AXI_PROT_EN_STA		0xc
215437b281SAngeloGioacchino Del Regno  #define MT8196_TOP_AXI_PROT_EN_SLEEP0_MD	BIT(29)
225437b281SAngeloGioacchino Del Regno 
235437b281SAngeloGioacchino Del Regno #define MT8196_TOP_AXI_PROT_EN_1_SET		0x24
245437b281SAngeloGioacchino Del Regno #define MT8196_TOP_AXI_PROT_EN_1_CLR		0x28
255437b281SAngeloGioacchino Del Regno #define MT8196_TOP_AXI_PROT_EN_1_STA		0x2c
265437b281SAngeloGioacchino Del Regno  #define MT8196_TOP_AXI_PROT_EN_1_SLEEP1_MD	BIT(0)
275437b281SAngeloGioacchino Del Regno 
285437b281SAngeloGioacchino Del Regno /* SPM BUS_PROTECT registers */
295437b281SAngeloGioacchino Del Regno #define MT8196_SPM_BUS_PROTECT_CON_SET		0xdc
305437b281SAngeloGioacchino Del Regno #define MT8196_SPM_BUS_PROTECT_CON_CLR		0xe0
315437b281SAngeloGioacchino Del Regno #define MT8196_SPM_BUS_PROTECT_RDY		0x208
325437b281SAngeloGioacchino Del Regno  #define MT8196_SPM_PROT_EN_BUS_CONN		BIT(1)
335437b281SAngeloGioacchino Del Regno  #define MT8196_SPM_PROT_EN_BUS_SSUSB_DP_PHY_P0	BIT(6)
345437b281SAngeloGioacchino Del Regno  #define MT8196_SPM_PROT_EN_BUS_SSUSB_P0	BIT(7)
355437b281SAngeloGioacchino Del Regno  #define MT8196_SPM_PROT_EN_BUS_SSUSB_P1	BIT(8)
365437b281SAngeloGioacchino Del Regno  #define MT8196_SPM_PROT_EN_BUS_SSUSB_P23	BIT(9)
375437b281SAngeloGioacchino Del Regno  #define MT8196_SPM_PROT_EN_BUS_SSUSB_PHY_P2	BIT(10)
385437b281SAngeloGioacchino Del Regno  #define MT8196_SPM_PROT_EN_BUS_PEXTP_MAC0	BIT(13)
395437b281SAngeloGioacchino Del Regno  #define MT8196_SPM_PROT_EN_BUS_PEXTP_MAC1	BIT(14)
405437b281SAngeloGioacchino Del Regno  #define MT8196_SPM_PROT_EN_BUS_PEXTP_MAC2	BIT(15)
415437b281SAngeloGioacchino Del Regno  #define MT8196_SPM_PROT_EN_BUS_PEXTP_PHY0	BIT(16)
425437b281SAngeloGioacchino Del Regno  #define MT8196_SPM_PROT_EN_BUS_PEXTP_PHY1	BIT(17)
435437b281SAngeloGioacchino Del Regno  #define MT8196_SPM_PROT_EN_BUS_PEXTP_PHY2	BIT(18)
445437b281SAngeloGioacchino Del Regno  #define MT8196_SPM_PROT_EN_BUS_AUDIO		BIT(19)
455437b281SAngeloGioacchino Del Regno  #define MT8196_SPM_PROT_EN_BUS_ADSP_TOP	BIT(21)
465437b281SAngeloGioacchino Del Regno  #define MT8196_SPM_PROT_EN_BUS_ADSP_INFRA	BIT(22)
475437b281SAngeloGioacchino Del Regno  #define MT8196_SPM_PROT_EN_BUS_ADSP_AO		BIT(23)
485437b281SAngeloGioacchino Del Regno  #define MT8196_SPM_PROT_EN_BUS_MM_PROC		BIT(24)
495437b281SAngeloGioacchino Del Regno 
505437b281SAngeloGioacchino Del Regno /* PWR_CON registers */
515437b281SAngeloGioacchino Del Regno #define MT8196_PWR_ACK				BIT(30)
525437b281SAngeloGioacchino Del Regno #define MT8196_PWR_ACK_2ND			BIT(31)
535437b281SAngeloGioacchino Del Regno 
545437b281SAngeloGioacchino Del Regno static enum scpsys_bus_prot_block scpsys_bus_prot_blocks_mt8196[] = {
555437b281SAngeloGioacchino Del Regno 	BUS_PROT_BLOCK_INFRA, BUS_PROT_BLOCK_SPM
565437b281SAngeloGioacchino Del Regno };
575437b281SAngeloGioacchino Del Regno 
585437b281SAngeloGioacchino Del Regno static const struct scpsys_domain_data scpsys_domain_data_mt8196[] = {
595437b281SAngeloGioacchino Del Regno 	[MT8196_POWER_DOMAIN_MD] = {
605437b281SAngeloGioacchino Del Regno 		.name = "md",
615437b281SAngeloGioacchino Del Regno 		.sta_mask = MT8196_PWR_ACK,
625437b281SAngeloGioacchino Del Regno 		.sta2nd_mask = MT8196_PWR_ACK_2ND,
635437b281SAngeloGioacchino Del Regno 		.ctl_offs = 0xe00,
645437b281SAngeloGioacchino Del Regno 		.pwr_sta_offs = 0xe00,
655437b281SAngeloGioacchino Del Regno 		.pwr_sta2nd_offs = 0xe00,
665437b281SAngeloGioacchino Del Regno 		.ext_buck_iso_offs = 0xefc,
675437b281SAngeloGioacchino Del Regno 		.ext_buck_iso_mask = GENMASK(1, 0),
685437b281SAngeloGioacchino Del Regno 		.bp_cfg = {
695437b281SAngeloGioacchino Del Regno 			BUS_PROT_WR_IGN(INFRA, MT8196_TOP_AXI_PROT_EN_SLEEP0_MD,
705437b281SAngeloGioacchino Del Regno 					MT8196_TOP_AXI_PROT_EN_SET,
715437b281SAngeloGioacchino Del Regno 					MT8196_TOP_AXI_PROT_EN_CLR,
725437b281SAngeloGioacchino Del Regno 					MT8196_TOP_AXI_PROT_EN_STA),
735437b281SAngeloGioacchino Del Regno 			BUS_PROT_WR_IGN(INFRA, MT8196_TOP_AXI_PROT_EN_1_SLEEP1_MD,
745437b281SAngeloGioacchino Del Regno 					MT8196_TOP_AXI_PROT_EN_1_SET,
755437b281SAngeloGioacchino Del Regno 					MT8196_TOP_AXI_PROT_EN_1_CLR,
765437b281SAngeloGioacchino Del Regno 					MT8196_TOP_AXI_PROT_EN_1_STA),
775437b281SAngeloGioacchino Del Regno 		},
785437b281SAngeloGioacchino Del Regno 		.caps = MTK_SCPD_MODEM_PWRSEQ | MTK_SCPD_EXT_BUCK_ISO |
795437b281SAngeloGioacchino Del Regno 			MTK_SCPD_SKIP_RESET_B | MTK_SCPD_KEEP_DEFAULT_OFF,
805437b281SAngeloGioacchino Del Regno 	},
815437b281SAngeloGioacchino Del Regno 	[MT8196_POWER_DOMAIN_CONN] = {
825437b281SAngeloGioacchino Del Regno 		.name = "conn",
835437b281SAngeloGioacchino Del Regno 		.sta_mask = MT8196_PWR_ACK,
845437b281SAngeloGioacchino Del Regno 		.sta2nd_mask = MT8196_PWR_ACK_2ND,
855437b281SAngeloGioacchino Del Regno 		.ctl_offs = 0xe04,
865437b281SAngeloGioacchino Del Regno 		.pwr_sta_offs = 0xe04,
875437b281SAngeloGioacchino Del Regno 		.pwr_sta2nd_offs = 0xe04,
885437b281SAngeloGioacchino Del Regno 		.bp_cfg = {
895437b281SAngeloGioacchino Del Regno 			BUS_PROT_WR_IGN(SPM, MT8196_SPM_PROT_EN_BUS_CONN,
905437b281SAngeloGioacchino Del Regno 					MT8196_SPM_BUS_PROTECT_CON_SET,
915437b281SAngeloGioacchino Del Regno 					MT8196_SPM_BUS_PROTECT_CON_CLR,
925437b281SAngeloGioacchino Del Regno 					MT8196_SPM_BUS_PROTECT_RDY),
935437b281SAngeloGioacchino Del Regno 		},
945437b281SAngeloGioacchino Del Regno 		.caps = MTK_SCPD_KEEP_DEFAULT_OFF,
955437b281SAngeloGioacchino Del Regno 		.rtff_type = SCPSYS_RTFF_TYPE_GENERIC,
965437b281SAngeloGioacchino Del Regno 	},
975437b281SAngeloGioacchino Del Regno 	[MT8196_POWER_DOMAIN_SSUSB_DP_PHY_P0] = {
985437b281SAngeloGioacchino Del Regno 		.name = "ssusb-dp-phy-p0",
995437b281SAngeloGioacchino Del Regno 		.sta_mask = MT8196_PWR_ACK,
1005437b281SAngeloGioacchino Del Regno 		.sta2nd_mask = MT8196_PWR_ACK_2ND,
1015437b281SAngeloGioacchino Del Regno 		.ctl_offs = 0xe18,
1025437b281SAngeloGioacchino Del Regno 		.pwr_sta_offs = 0xe18,
1035437b281SAngeloGioacchino Del Regno 		.pwr_sta2nd_offs = 0xe18,
1045437b281SAngeloGioacchino Del Regno 		.bp_cfg = {
1055437b281SAngeloGioacchino Del Regno 			BUS_PROT_WR_IGN(SPM, MT8196_SPM_PROT_EN_BUS_SSUSB_DP_PHY_P0,
1065437b281SAngeloGioacchino Del Regno 					MT8196_SPM_BUS_PROTECT_CON_SET,
1075437b281SAngeloGioacchino Del Regno 					MT8196_SPM_BUS_PROTECT_CON_CLR,
1085437b281SAngeloGioacchino Del Regno 					MT8196_SPM_BUS_PROTECT_RDY),
1095437b281SAngeloGioacchino Del Regno 		},
1105437b281SAngeloGioacchino Del Regno 		.caps = MTK_SCPD_ALWAYS_ON,
1115437b281SAngeloGioacchino Del Regno 		.rtff_type = SCPSYS_RTFF_TYPE_GENERIC,
1125437b281SAngeloGioacchino Del Regno 	},
1135437b281SAngeloGioacchino Del Regno 	[MT8196_POWER_DOMAIN_SSUSB_P0] = {
1145437b281SAngeloGioacchino Del Regno 		.name = "ssusb-p0",
1155437b281SAngeloGioacchino Del Regno 		.sta_mask = MT8196_PWR_ACK,
1165437b281SAngeloGioacchino Del Regno 		.sta2nd_mask = MT8196_PWR_ACK_2ND,
1175437b281SAngeloGioacchino Del Regno 		.ctl_offs = 0xe1c,
1185437b281SAngeloGioacchino Del Regno 		.pwr_sta_offs = 0xe1c,
1195437b281SAngeloGioacchino Del Regno 		.pwr_sta2nd_offs = 0xe1c,
1205437b281SAngeloGioacchino Del Regno 		.sram_pdn_bits = BIT(8),
1215437b281SAngeloGioacchino Del Regno 		.sram_pdn_ack_bits = BIT(12),
1225437b281SAngeloGioacchino Del Regno 		.bp_cfg = {
1235437b281SAngeloGioacchino Del Regno 			BUS_PROT_WR_IGN(SPM, MT8196_SPM_PROT_EN_BUS_SSUSB_P0,
1245437b281SAngeloGioacchino Del Regno 					MT8196_SPM_BUS_PROTECT_CON_SET,
1255437b281SAngeloGioacchino Del Regno 					MT8196_SPM_BUS_PROTECT_CON_CLR,
1265437b281SAngeloGioacchino Del Regno 					MT8196_SPM_BUS_PROTECT_RDY),
1275437b281SAngeloGioacchino Del Regno 		},
1285437b281SAngeloGioacchino Del Regno 		.caps = MTK_SCPD_ALWAYS_ON,
1295437b281SAngeloGioacchino Del Regno 		.rtff_type = SCPSYS_RTFF_TYPE_GENERIC,
1305437b281SAngeloGioacchino Del Regno 	},
1315437b281SAngeloGioacchino Del Regno 	[MT8196_POWER_DOMAIN_SSUSB_P1] = {
1325437b281SAngeloGioacchino Del Regno 		.name = "ssusb-p1",
1335437b281SAngeloGioacchino Del Regno 		.sta_mask = MT8196_PWR_ACK,
1345437b281SAngeloGioacchino Del Regno 		.sta2nd_mask = MT8196_PWR_ACK_2ND,
1355437b281SAngeloGioacchino Del Regno 		.ctl_offs = 0xe20,
1365437b281SAngeloGioacchino Del Regno 		.pwr_sta_offs = 0xe20,
1375437b281SAngeloGioacchino Del Regno 		.pwr_sta2nd_offs = 0xe20,
1385437b281SAngeloGioacchino Del Regno 		.sram_pdn_bits = BIT(8),
1395437b281SAngeloGioacchino Del Regno 		.sram_pdn_ack_bits = BIT(12),
1405437b281SAngeloGioacchino Del Regno 		.bp_cfg = {
1415437b281SAngeloGioacchino Del Regno 			BUS_PROT_WR_IGN(SPM, MT8196_SPM_PROT_EN_BUS_SSUSB_P1,
1425437b281SAngeloGioacchino Del Regno 					MT8196_SPM_BUS_PROTECT_CON_SET,
1435437b281SAngeloGioacchino Del Regno 					MT8196_SPM_BUS_PROTECT_CON_CLR,
1445437b281SAngeloGioacchino Del Regno 					MT8196_SPM_BUS_PROTECT_RDY),
1455437b281SAngeloGioacchino Del Regno 		},
1465437b281SAngeloGioacchino Del Regno 		.caps = MTK_SCPD_ALWAYS_ON,
1475437b281SAngeloGioacchino Del Regno 		.rtff_type = SCPSYS_RTFF_TYPE_GENERIC,
1485437b281SAngeloGioacchino Del Regno 	},
1495437b281SAngeloGioacchino Del Regno 	[MT8196_POWER_DOMAIN_SSUSB_P23] = {
1505437b281SAngeloGioacchino Del Regno 		.name = "ssusb-p23",
1515437b281SAngeloGioacchino Del Regno 		.sta_mask = MT8196_PWR_ACK,
1525437b281SAngeloGioacchino Del Regno 		.sta2nd_mask = MT8196_PWR_ACK_2ND,
1535437b281SAngeloGioacchino Del Regno 		.ctl_offs = 0xe24,
1545437b281SAngeloGioacchino Del Regno 		.pwr_sta_offs = 0xe24,
1555437b281SAngeloGioacchino Del Regno 		.pwr_sta2nd_offs = 0xe24,
1565437b281SAngeloGioacchino Del Regno 		.bp_cfg = {
1575437b281SAngeloGioacchino Del Regno 			BUS_PROT_WR_IGN(SPM, MT8196_SPM_PROT_EN_BUS_SSUSB_P23,
1585437b281SAngeloGioacchino Del Regno 					MT8196_SPM_BUS_PROTECT_CON_SET,
1595437b281SAngeloGioacchino Del Regno 					MT8196_SPM_BUS_PROTECT_CON_CLR,
1605437b281SAngeloGioacchino Del Regno 					MT8196_SPM_BUS_PROTECT_RDY),
1615437b281SAngeloGioacchino Del Regno 		},
1625437b281SAngeloGioacchino Del Regno 		.caps = MTK_SCPD_KEEP_DEFAULT_OFF,
1635437b281SAngeloGioacchino Del Regno 		.rtff_type = SCPSYS_RTFF_TYPE_GENERIC,
1645437b281SAngeloGioacchino Del Regno 	},
1655437b281SAngeloGioacchino Del Regno 	[MT8196_POWER_DOMAIN_SSUSB_PHY_P2] = {
1665437b281SAngeloGioacchino Del Regno 		.name = "ssusb-phy-p2",
1675437b281SAngeloGioacchino Del Regno 		.sta_mask = MT8196_PWR_ACK,
1685437b281SAngeloGioacchino Del Regno 		.sta2nd_mask = MT8196_PWR_ACK_2ND,
1695437b281SAngeloGioacchino Del Regno 		.ctl_offs = 0xe28,
1705437b281SAngeloGioacchino Del Regno 		.pwr_sta_offs = 0xe28,
1715437b281SAngeloGioacchino Del Regno 		.pwr_sta2nd_offs = 0xe28,
1725437b281SAngeloGioacchino Del Regno 		.sram_pdn_bits = BIT(8),
1735437b281SAngeloGioacchino Del Regno 		.sram_pdn_ack_bits = BIT(12),
1745437b281SAngeloGioacchino Del Regno 		.bp_cfg = {
1755437b281SAngeloGioacchino Del Regno 			BUS_PROT_WR_IGN(SPM, MT8196_SPM_PROT_EN_BUS_SSUSB_PHY_P2,
1765437b281SAngeloGioacchino Del Regno 					MT8196_SPM_BUS_PROTECT_CON_SET,
1775437b281SAngeloGioacchino Del Regno 					MT8196_SPM_BUS_PROTECT_CON_CLR,
1785437b281SAngeloGioacchino Del Regno 					MT8196_SPM_BUS_PROTECT_RDY),
1795437b281SAngeloGioacchino Del Regno 		},
1805437b281SAngeloGioacchino Del Regno 		.caps = MTK_SCPD_KEEP_DEFAULT_OFF,
1815437b281SAngeloGioacchino Del Regno 		.rtff_type = SCPSYS_RTFF_TYPE_GENERIC,
1825437b281SAngeloGioacchino Del Regno 	},
1835437b281SAngeloGioacchino Del Regno 	[MT8196_POWER_DOMAIN_PEXTP_MAC0] = {
1845437b281SAngeloGioacchino Del Regno 		.name = "pextp-mac0",
1855437b281SAngeloGioacchino Del Regno 		.sta_mask = MT8196_PWR_ACK,
1865437b281SAngeloGioacchino Del Regno 		.sta2nd_mask = MT8196_PWR_ACK_2ND,
1875437b281SAngeloGioacchino Del Regno 		.ctl_offs = 0xe34,
1885437b281SAngeloGioacchino Del Regno 		.pwr_sta_offs = 0xe34,
1895437b281SAngeloGioacchino Del Regno 		.pwr_sta2nd_offs = 0xe34,
1905437b281SAngeloGioacchino Del Regno 		.sram_pdn_bits = BIT(8),
1915437b281SAngeloGioacchino Del Regno 		.sram_pdn_ack_bits = BIT(12),
1925437b281SAngeloGioacchino Del Regno 		.bp_cfg = {
1935437b281SAngeloGioacchino Del Regno 			BUS_PROT_WR_IGN(SPM, MT8196_SPM_PROT_EN_BUS_PEXTP_MAC0,
1945437b281SAngeloGioacchino Del Regno 					MT8196_SPM_BUS_PROTECT_CON_SET,
1955437b281SAngeloGioacchino Del Regno 					MT8196_SPM_BUS_PROTECT_CON_CLR,
1965437b281SAngeloGioacchino Del Regno 					MT8196_SPM_BUS_PROTECT_RDY),
1975437b281SAngeloGioacchino Del Regno 		},
1985437b281SAngeloGioacchino Del Regno 		.rtff_type = SCPSYS_RTFF_TYPE_PCIE_PHY,
1995437b281SAngeloGioacchino Del Regno 	},
2005437b281SAngeloGioacchino Del Regno 	[MT8196_POWER_DOMAIN_PEXTP_MAC1] = {
2015437b281SAngeloGioacchino Del Regno 		.name = "pextp-mac1",
2025437b281SAngeloGioacchino Del Regno 		.sta_mask = MT8196_PWR_ACK,
2035437b281SAngeloGioacchino Del Regno 		.sta2nd_mask = MT8196_PWR_ACK_2ND,
2045437b281SAngeloGioacchino Del Regno 		.ctl_offs = 0xe38,
2055437b281SAngeloGioacchino Del Regno 		.pwr_sta_offs = 0xe38,
2065437b281SAngeloGioacchino Del Regno 		.pwr_sta2nd_offs = 0xe38,
2075437b281SAngeloGioacchino Del Regno 		.sram_pdn_bits = BIT(8),
2085437b281SAngeloGioacchino Del Regno 		.sram_pdn_ack_bits = BIT(12),
2095437b281SAngeloGioacchino Del Regno 		.bp_cfg = {
2105437b281SAngeloGioacchino Del Regno 			BUS_PROT_WR_IGN(SPM, MT8196_SPM_PROT_EN_BUS_PEXTP_MAC1,
2115437b281SAngeloGioacchino Del Regno 					MT8196_SPM_BUS_PROTECT_CON_SET,
2125437b281SAngeloGioacchino Del Regno 					MT8196_SPM_BUS_PROTECT_CON_CLR,
2135437b281SAngeloGioacchino Del Regno 					MT8196_SPM_BUS_PROTECT_RDY),
2145437b281SAngeloGioacchino Del Regno 		},
2155437b281SAngeloGioacchino Del Regno 		.rtff_type = SCPSYS_RTFF_TYPE_PCIE_PHY,
2165437b281SAngeloGioacchino Del Regno 	},
2175437b281SAngeloGioacchino Del Regno 	[MT8196_POWER_DOMAIN_PEXTP_MAC2] = {
2185437b281SAngeloGioacchino Del Regno 		.name = "pextp-mac2",
2195437b281SAngeloGioacchino Del Regno 		.sta_mask = MT8196_PWR_ACK,
2205437b281SAngeloGioacchino Del Regno 		.sta2nd_mask = MT8196_PWR_ACK_2ND,
2215437b281SAngeloGioacchino Del Regno 		.ctl_offs = 0xe3c,
2225437b281SAngeloGioacchino Del Regno 		.pwr_sta_offs = 0xe3c,
2235437b281SAngeloGioacchino Del Regno 		.pwr_sta2nd_offs = 0xe3c,
2245437b281SAngeloGioacchino Del Regno 		.sram_pdn_bits = BIT(8),
2255437b281SAngeloGioacchino Del Regno 		.sram_pdn_ack_bits = BIT(12),
2265437b281SAngeloGioacchino Del Regno 		.bp_cfg = {
2275437b281SAngeloGioacchino Del Regno 			BUS_PROT_WR_IGN(SPM, MT8196_SPM_PROT_EN_BUS_PEXTP_MAC2,
2285437b281SAngeloGioacchino Del Regno 					MT8196_SPM_BUS_PROTECT_CON_SET,
2295437b281SAngeloGioacchino Del Regno 					MT8196_SPM_BUS_PROTECT_CON_CLR,
2305437b281SAngeloGioacchino Del Regno 					MT8196_SPM_BUS_PROTECT_RDY),
2315437b281SAngeloGioacchino Del Regno 		},
2325437b281SAngeloGioacchino Del Regno 		.rtff_type = SCPSYS_RTFF_TYPE_PCIE_PHY,
2335437b281SAngeloGioacchino Del Regno 	},
2345437b281SAngeloGioacchino Del Regno 	[MT8196_POWER_DOMAIN_PEXTP_PHY0] = {
2355437b281SAngeloGioacchino Del Regno 		.name = "pextp-phy0",
2365437b281SAngeloGioacchino Del Regno 		.sta_mask = MT8196_PWR_ACK,
2375437b281SAngeloGioacchino Del Regno 		.sta2nd_mask = MT8196_PWR_ACK_2ND,
2385437b281SAngeloGioacchino Del Regno 		.ctl_offs = 0xe40,
2395437b281SAngeloGioacchino Del Regno 		.pwr_sta_offs = 0xe40,
2405437b281SAngeloGioacchino Del Regno 		.pwr_sta2nd_offs = 0xe40,
2415437b281SAngeloGioacchino Del Regno 		.bp_cfg = {
2425437b281SAngeloGioacchino Del Regno 			BUS_PROT_WR_IGN(SPM, MT8196_SPM_PROT_EN_BUS_PEXTP_PHY0,
2435437b281SAngeloGioacchino Del Regno 					MT8196_SPM_BUS_PROTECT_CON_SET,
2445437b281SAngeloGioacchino Del Regno 					MT8196_SPM_BUS_PROTECT_CON_CLR,
2455437b281SAngeloGioacchino Del Regno 					MT8196_SPM_BUS_PROTECT_RDY),
2465437b281SAngeloGioacchino Del Regno 		},
2475437b281SAngeloGioacchino Del Regno 		.rtff_type = SCPSYS_RTFF_TYPE_PCIE_PHY,
2485437b281SAngeloGioacchino Del Regno 	},
2495437b281SAngeloGioacchino Del Regno 	[MT8196_POWER_DOMAIN_PEXTP_PHY1] = {
2505437b281SAngeloGioacchino Del Regno 		.name = "pextp-phy1",
2515437b281SAngeloGioacchino Del Regno 		.sta_mask = MT8196_PWR_ACK,
2525437b281SAngeloGioacchino Del Regno 		.sta2nd_mask = MT8196_PWR_ACK_2ND,
2535437b281SAngeloGioacchino Del Regno 		.ctl_offs = 0xe44,
2545437b281SAngeloGioacchino Del Regno 		.pwr_sta_offs = 0xe44,
2555437b281SAngeloGioacchino Del Regno 		.pwr_sta2nd_offs = 0xe44,
2565437b281SAngeloGioacchino Del Regno 		.bp_cfg = {
2575437b281SAngeloGioacchino Del Regno 			BUS_PROT_WR_IGN(SPM, MT8196_SPM_PROT_EN_BUS_PEXTP_PHY1,
2585437b281SAngeloGioacchino Del Regno 					MT8196_SPM_BUS_PROTECT_CON_SET,
2595437b281SAngeloGioacchino Del Regno 					MT8196_SPM_BUS_PROTECT_CON_CLR,
2605437b281SAngeloGioacchino Del Regno 					MT8196_SPM_BUS_PROTECT_RDY),
2615437b281SAngeloGioacchino Del Regno 		},
2625437b281SAngeloGioacchino Del Regno 		.rtff_type = SCPSYS_RTFF_TYPE_PCIE_PHY,
2635437b281SAngeloGioacchino Del Regno 	},
2645437b281SAngeloGioacchino Del Regno 	[MT8196_POWER_DOMAIN_PEXTP_PHY2] = {
2655437b281SAngeloGioacchino Del Regno 		.name = "pextp-phy2",
2665437b281SAngeloGioacchino Del Regno 		.sta_mask = MT8196_PWR_ACK,
2675437b281SAngeloGioacchino Del Regno 		.sta2nd_mask = MT8196_PWR_ACK_2ND,
2685437b281SAngeloGioacchino Del Regno 		.ctl_offs = 0xe48,
2695437b281SAngeloGioacchino Del Regno 		.pwr_sta_offs = 0xe48,
2705437b281SAngeloGioacchino Del Regno 		.pwr_sta2nd_offs = 0xe48,
2715437b281SAngeloGioacchino Del Regno 		.bp_cfg = {
2725437b281SAngeloGioacchino Del Regno 			BUS_PROT_WR_IGN(SPM, MT8196_SPM_PROT_EN_BUS_PEXTP_PHY2,
2735437b281SAngeloGioacchino Del Regno 					MT8196_SPM_BUS_PROTECT_CON_SET,
2745437b281SAngeloGioacchino Del Regno 					MT8196_SPM_BUS_PROTECT_CON_CLR,
2755437b281SAngeloGioacchino Del Regno 					MT8196_SPM_BUS_PROTECT_RDY),
2765437b281SAngeloGioacchino Del Regno 		},
2775437b281SAngeloGioacchino Del Regno 		.rtff_type = SCPSYS_RTFF_TYPE_PCIE_PHY,
2785437b281SAngeloGioacchino Del Regno 	},
2795437b281SAngeloGioacchino Del Regno 	[MT8196_POWER_DOMAIN_AUDIO] = {
2805437b281SAngeloGioacchino Del Regno 		.name = "audio",
2815437b281SAngeloGioacchino Del Regno 		.sta_mask = MT8196_PWR_ACK,
2825437b281SAngeloGioacchino Del Regno 		.sta2nd_mask = MT8196_PWR_ACK_2ND,
2835437b281SAngeloGioacchino Del Regno 		.ctl_offs = 0xe4c,
2845437b281SAngeloGioacchino Del Regno 		.pwr_sta_offs = 0xe4c,
2855437b281SAngeloGioacchino Del Regno 		.pwr_sta2nd_offs = 0xe4c,
2865437b281SAngeloGioacchino Del Regno 		.sram_pdn_bits = BIT(8),
2875437b281SAngeloGioacchino Del Regno 		.sram_pdn_ack_bits = BIT(12),
2885437b281SAngeloGioacchino Del Regno 		.bp_cfg = {
2895437b281SAngeloGioacchino Del Regno 			BUS_PROT_WR_IGN(SPM, MT8196_SPM_PROT_EN_BUS_AUDIO,
2905437b281SAngeloGioacchino Del Regno 					MT8196_SPM_BUS_PROTECT_CON_SET,
2915437b281SAngeloGioacchino Del Regno 					MT8196_SPM_BUS_PROTECT_CON_CLR,
2925437b281SAngeloGioacchino Del Regno 					MT8196_SPM_BUS_PROTECT_RDY),
2935437b281SAngeloGioacchino Del Regno 		},
2945437b281SAngeloGioacchino Del Regno 		.rtff_type = SCPSYS_RTFF_TYPE_GENERIC,
2955437b281SAngeloGioacchino Del Regno 	},
2965437b281SAngeloGioacchino Del Regno 	[MT8196_POWER_DOMAIN_ADSP_TOP_DORMANT] = {
2975437b281SAngeloGioacchino Del Regno 		.name = "adsp-top-dormant",
2985437b281SAngeloGioacchino Del Regno 		.sta_mask = MT8196_PWR_ACK,
2995437b281SAngeloGioacchino Del Regno 		.sta2nd_mask = MT8196_PWR_ACK_2ND,
3005437b281SAngeloGioacchino Del Regno 		.ctl_offs = 0xe54,
3015437b281SAngeloGioacchino Del Regno 		.pwr_sta_offs = 0xe54,
3025437b281SAngeloGioacchino Del Regno 		.pwr_sta2nd_offs = 0xe54,
3035437b281SAngeloGioacchino Del Regno 		/* Note: This is not managing powerdown (pdn), but sleep instead (slp) */
3045437b281SAngeloGioacchino Del Regno 		.sram_pdn_bits = BIT(9),
3055437b281SAngeloGioacchino Del Regno 		.sram_pdn_ack_bits = BIT(13),
3065437b281SAngeloGioacchino Del Regno 		.bp_cfg = {
3075437b281SAngeloGioacchino Del Regno 			BUS_PROT_WR_IGN(SPM, MT8196_SPM_PROT_EN_BUS_ADSP_TOP,
3085437b281SAngeloGioacchino Del Regno 					MT8196_SPM_BUS_PROTECT_CON_SET,
3095437b281SAngeloGioacchino Del Regno 					MT8196_SPM_BUS_PROTECT_CON_CLR,
3105437b281SAngeloGioacchino Del Regno 					MT8196_SPM_BUS_PROTECT_RDY),
3115437b281SAngeloGioacchino Del Regno 		},
3125437b281SAngeloGioacchino Del Regno 		.caps = MTK_SCPD_SRAM_ISO | MTK_SCPD_SRAM_PDN_INVERTED,
3135437b281SAngeloGioacchino Del Regno 	},
3145437b281SAngeloGioacchino Del Regno 	[MT8196_POWER_DOMAIN_ADSP_INFRA] = {
3155437b281SAngeloGioacchino Del Regno 		.name = "adsp-infra",
3165437b281SAngeloGioacchino Del Regno 		.sta_mask = MT8196_PWR_ACK,
3175437b281SAngeloGioacchino Del Regno 		.sta2nd_mask = MT8196_PWR_ACK_2ND,
3185437b281SAngeloGioacchino Del Regno 		.ctl_offs = 0xe58,
3195437b281SAngeloGioacchino Del Regno 		.pwr_sta_offs = 0xe58,
3205437b281SAngeloGioacchino Del Regno 		.pwr_sta2nd_offs = 0xe58,
3215437b281SAngeloGioacchino Del Regno 		.bp_cfg = {
3225437b281SAngeloGioacchino Del Regno 			BUS_PROT_WR_IGN(SPM, MT8196_SPM_PROT_EN_BUS_ADSP_INFRA,
3235437b281SAngeloGioacchino Del Regno 					MT8196_SPM_BUS_PROTECT_CON_SET,
3245437b281SAngeloGioacchino Del Regno 					MT8196_SPM_BUS_PROTECT_CON_CLR,
3255437b281SAngeloGioacchino Del Regno 					MT8196_SPM_BUS_PROTECT_RDY),
3265437b281SAngeloGioacchino Del Regno 		},
3275437b281SAngeloGioacchino Del Regno 		.caps = MTK_SCPD_ALWAYS_ON,
3285437b281SAngeloGioacchino Del Regno 		.rtff_type = SCPSYS_RTFF_TYPE_GENERIC,
3295437b281SAngeloGioacchino Del Regno 	},
3305437b281SAngeloGioacchino Del Regno 	[MT8196_POWER_DOMAIN_ADSP_AO] = {
3315437b281SAngeloGioacchino Del Regno 		.name = "adsp-ao",
3325437b281SAngeloGioacchino Del Regno 		.sta_mask = MT8196_PWR_ACK,
3335437b281SAngeloGioacchino Del Regno 		.sta2nd_mask = MT8196_PWR_ACK_2ND,
3345437b281SAngeloGioacchino Del Regno 		.ctl_offs = 0xe5c,
3355437b281SAngeloGioacchino Del Regno 		.pwr_sta_offs = 0xe5c,
3365437b281SAngeloGioacchino Del Regno 		.pwr_sta2nd_offs = 0xe5c,
3375437b281SAngeloGioacchino Del Regno 		.bp_cfg = {
3385437b281SAngeloGioacchino Del Regno 			BUS_PROT_WR_IGN(SPM, MT8196_SPM_PROT_EN_BUS_ADSP_AO,
3395437b281SAngeloGioacchino Del Regno 					MT8196_SPM_BUS_PROTECT_CON_SET,
3405437b281SAngeloGioacchino Del Regno 					MT8196_SPM_BUS_PROTECT_CON_CLR,
3415437b281SAngeloGioacchino Del Regno 					MT8196_SPM_BUS_PROTECT_RDY),
3425437b281SAngeloGioacchino Del Regno 		},
3435437b281SAngeloGioacchino Del Regno 		.caps = MTK_SCPD_ALWAYS_ON,
3445437b281SAngeloGioacchino Del Regno 		.rtff_type = SCPSYS_RTFF_TYPE_GENERIC,
3455437b281SAngeloGioacchino Del Regno 	},
3465437b281SAngeloGioacchino Del Regno };
3475437b281SAngeloGioacchino Del Regno 
3485437b281SAngeloGioacchino Del Regno static const struct scpsys_hwv_domain_data scpsys_hwv_domain_data_mt8196[] = {
3495437b281SAngeloGioacchino Del Regno 	[MT8196_POWER_DOMAIN_MM_PROC_DORMANT] = {
3505437b281SAngeloGioacchino Del Regno 		.name = "mm-proc-dormant",
3515437b281SAngeloGioacchino Del Regno 		.set = 0x0218,
3525437b281SAngeloGioacchino Del Regno 		.clr = 0x021c,
3535437b281SAngeloGioacchino Del Regno 		.done = 0x141c,
3545437b281SAngeloGioacchino Del Regno 		.en = 0x1410,
3555437b281SAngeloGioacchino Del Regno 		.set_sta = 0x146c,
3565437b281SAngeloGioacchino Del Regno 		.clr_sta = 0x1470,
3575437b281SAngeloGioacchino Del Regno 		.setclr_bit = 0,
3585437b281SAngeloGioacchino Del Regno 		.caps = MTK_SCPD_ALWAYS_ON,
3595437b281SAngeloGioacchino Del Regno 	},
3605437b281SAngeloGioacchino Del Regno 	[MT8196_POWER_DOMAIN_SSR] = {
3615437b281SAngeloGioacchino Del Regno 		.name = "ssrsys",
3625437b281SAngeloGioacchino Del Regno 		.set = 0x0218,
3635437b281SAngeloGioacchino Del Regno 		.clr = 0x021c,
3645437b281SAngeloGioacchino Del Regno 		.done = 0x141c,
3655437b281SAngeloGioacchino Del Regno 		.en = 0x1410,
3665437b281SAngeloGioacchino Del Regno 		.set_sta = 0x146c,
3675437b281SAngeloGioacchino Del Regno 		.clr_sta = 0x1470,
3685437b281SAngeloGioacchino Del Regno 		.setclr_bit = 1,
3695437b281SAngeloGioacchino Del Regno 	},
3705437b281SAngeloGioacchino Del Regno };
3715437b281SAngeloGioacchino Del Regno 
372*56b0d230SAngeloGioacchino Del Regno static const struct scpsys_hwv_domain_data hfrpsys_hwv_domain_data_mt8196[] = {
373*56b0d230SAngeloGioacchino Del Regno 	[MT8196_POWER_DOMAIN_VDE0] = {
374*56b0d230SAngeloGioacchino Del Regno 		.name = "vde0",
375*56b0d230SAngeloGioacchino Del Regno 		.set = 0x0218,
376*56b0d230SAngeloGioacchino Del Regno 		.clr = 0x021C,
377*56b0d230SAngeloGioacchino Del Regno 		.done = 0x141C,
378*56b0d230SAngeloGioacchino Del Regno 		.en = 0x1410,
379*56b0d230SAngeloGioacchino Del Regno 		.set_sta = 0x146C,
380*56b0d230SAngeloGioacchino Del Regno 		.clr_sta = 0x1470,
381*56b0d230SAngeloGioacchino Del Regno 		.setclr_bit = 7,
382*56b0d230SAngeloGioacchino Del Regno 	},
383*56b0d230SAngeloGioacchino Del Regno 	[MT8196_POWER_DOMAIN_VDE1] = {
384*56b0d230SAngeloGioacchino Del Regno 		.name = "vde1",
385*56b0d230SAngeloGioacchino Del Regno 		.set = 0x0218,
386*56b0d230SAngeloGioacchino Del Regno 		.clr = 0x021C,
387*56b0d230SAngeloGioacchino Del Regno 		.done = 0x141C,
388*56b0d230SAngeloGioacchino Del Regno 		.en = 0x1410,
389*56b0d230SAngeloGioacchino Del Regno 		.set_sta = 0x146C,
390*56b0d230SAngeloGioacchino Del Regno 		.clr_sta = 0x1470,
391*56b0d230SAngeloGioacchino Del Regno 		.setclr_bit = 8,
392*56b0d230SAngeloGioacchino Del Regno 	},
393*56b0d230SAngeloGioacchino Del Regno 	[MT8196_POWER_DOMAIN_VDE_VCORE0] = {
394*56b0d230SAngeloGioacchino Del Regno 		.name = "vde-vcore0",
395*56b0d230SAngeloGioacchino Del Regno 		.set = 0x0218,
396*56b0d230SAngeloGioacchino Del Regno 		.clr = 0x021C,
397*56b0d230SAngeloGioacchino Del Regno 		.done = 0x141C,
398*56b0d230SAngeloGioacchino Del Regno 		.en = 0x1410,
399*56b0d230SAngeloGioacchino Del Regno 		.set_sta = 0x146C,
400*56b0d230SAngeloGioacchino Del Regno 		.clr_sta = 0x1470,
401*56b0d230SAngeloGioacchino Del Regno 		.setclr_bit = 9,
402*56b0d230SAngeloGioacchino Del Regno 	},
403*56b0d230SAngeloGioacchino Del Regno 	[MT8196_POWER_DOMAIN_VEN0] = {
404*56b0d230SAngeloGioacchino Del Regno 		.name = "ven0",
405*56b0d230SAngeloGioacchino Del Regno 		.set = 0x0218,
406*56b0d230SAngeloGioacchino Del Regno 		.clr = 0x021C,
407*56b0d230SAngeloGioacchino Del Regno 		.done = 0x141C,
408*56b0d230SAngeloGioacchino Del Regno 		.en = 0x1410,
409*56b0d230SAngeloGioacchino Del Regno 		.set_sta = 0x146C,
410*56b0d230SAngeloGioacchino Del Regno 		.clr_sta = 0x1470,
411*56b0d230SAngeloGioacchino Del Regno 		.setclr_bit = 10,
412*56b0d230SAngeloGioacchino Del Regno 	},
413*56b0d230SAngeloGioacchino Del Regno 	[MT8196_POWER_DOMAIN_VEN1] = {
414*56b0d230SAngeloGioacchino Del Regno 		.name = "ven1",
415*56b0d230SAngeloGioacchino Del Regno 		.set = 0x0218,
416*56b0d230SAngeloGioacchino Del Regno 		.clr = 0x021C,
417*56b0d230SAngeloGioacchino Del Regno 		.done = 0x141C,
418*56b0d230SAngeloGioacchino Del Regno 		.en = 0x1410,
419*56b0d230SAngeloGioacchino Del Regno 		.set_sta = 0x146C,
420*56b0d230SAngeloGioacchino Del Regno 		.clr_sta = 0x1470,
421*56b0d230SAngeloGioacchino Del Regno 		.setclr_bit = 11,
422*56b0d230SAngeloGioacchino Del Regno 	},
423*56b0d230SAngeloGioacchino Del Regno 	[MT8196_POWER_DOMAIN_VEN2] = {
424*56b0d230SAngeloGioacchino Del Regno 		.name = "ven2",
425*56b0d230SAngeloGioacchino Del Regno 		.set = 0x0218,
426*56b0d230SAngeloGioacchino Del Regno 		.clr = 0x021C,
427*56b0d230SAngeloGioacchino Del Regno 		.done = 0x141C,
428*56b0d230SAngeloGioacchino Del Regno 		.en = 0x1410,
429*56b0d230SAngeloGioacchino Del Regno 		.set_sta = 0x146C,
430*56b0d230SAngeloGioacchino Del Regno 		.clr_sta = 0x1470,
431*56b0d230SAngeloGioacchino Del Regno 		.setclr_bit = 12,
432*56b0d230SAngeloGioacchino Del Regno 	},
433*56b0d230SAngeloGioacchino Del Regno 	[MT8196_POWER_DOMAIN_DISP_VCORE] = {
434*56b0d230SAngeloGioacchino Del Regno 		.name = "disp-vcore",
435*56b0d230SAngeloGioacchino Del Regno 		.set = 0x0218,
436*56b0d230SAngeloGioacchino Del Regno 		.clr = 0x021C,
437*56b0d230SAngeloGioacchino Del Regno 		.done = 0x141C,
438*56b0d230SAngeloGioacchino Del Regno 		.en = 0x1410,
439*56b0d230SAngeloGioacchino Del Regno 		.set_sta = 0x146C,
440*56b0d230SAngeloGioacchino Del Regno 		.clr_sta = 0x1470,
441*56b0d230SAngeloGioacchino Del Regno 		.setclr_bit = 24,
442*56b0d230SAngeloGioacchino Del Regno 	},
443*56b0d230SAngeloGioacchino Del Regno 	[MT8196_POWER_DOMAIN_DIS0_DORMANT] = {
444*56b0d230SAngeloGioacchino Del Regno 		.name = "dis0-dormant",
445*56b0d230SAngeloGioacchino Del Regno 		.set = 0x0218,
446*56b0d230SAngeloGioacchino Del Regno 		.clr = 0x021C,
447*56b0d230SAngeloGioacchino Del Regno 		.done = 0x141C,
448*56b0d230SAngeloGioacchino Del Regno 		.en = 0x1410,
449*56b0d230SAngeloGioacchino Del Regno 		.set_sta = 0x146C,
450*56b0d230SAngeloGioacchino Del Regno 		.clr_sta = 0x1470,
451*56b0d230SAngeloGioacchino Del Regno 		.setclr_bit = 25,
452*56b0d230SAngeloGioacchino Del Regno 	},
453*56b0d230SAngeloGioacchino Del Regno 	[MT8196_POWER_DOMAIN_DIS1_DORMANT] = {
454*56b0d230SAngeloGioacchino Del Regno 		.name = "dis1-dormant",
455*56b0d230SAngeloGioacchino Del Regno 		.set = 0x0218,
456*56b0d230SAngeloGioacchino Del Regno 		.clr = 0x021C,
457*56b0d230SAngeloGioacchino Del Regno 		.done = 0x141C,
458*56b0d230SAngeloGioacchino Del Regno 		.en = 0x1410,
459*56b0d230SAngeloGioacchino Del Regno 		.set_sta = 0x146C,
460*56b0d230SAngeloGioacchino Del Regno 		.clr_sta = 0x1470,
461*56b0d230SAngeloGioacchino Del Regno 		.setclr_bit = 26,
462*56b0d230SAngeloGioacchino Del Regno 	},
463*56b0d230SAngeloGioacchino Del Regno 	[MT8196_POWER_DOMAIN_OVL0_DORMANT] = {
464*56b0d230SAngeloGioacchino Del Regno 		.name = "ovl0-dormant",
465*56b0d230SAngeloGioacchino Del Regno 		.set = 0x0218,
466*56b0d230SAngeloGioacchino Del Regno 		.clr = 0x021C,
467*56b0d230SAngeloGioacchino Del Regno 		.done = 0x141C,
468*56b0d230SAngeloGioacchino Del Regno 		.en = 0x1410,
469*56b0d230SAngeloGioacchino Del Regno 		.set_sta = 0x146C,
470*56b0d230SAngeloGioacchino Del Regno 		.clr_sta = 0x1470,
471*56b0d230SAngeloGioacchino Del Regno 		.setclr_bit = 27,
472*56b0d230SAngeloGioacchino Del Regno 	},
473*56b0d230SAngeloGioacchino Del Regno 	[MT8196_POWER_DOMAIN_OVL1_DORMANT] = {
474*56b0d230SAngeloGioacchino Del Regno 		.name = "ovl1-dormant",
475*56b0d230SAngeloGioacchino Del Regno 		.set = 0x0218,
476*56b0d230SAngeloGioacchino Del Regno 		.clr = 0x021C,
477*56b0d230SAngeloGioacchino Del Regno 		.done = 0x141C,
478*56b0d230SAngeloGioacchino Del Regno 		.en = 0x1410,
479*56b0d230SAngeloGioacchino Del Regno 		.set_sta = 0x146C,
480*56b0d230SAngeloGioacchino Del Regno 		.clr_sta = 0x1470,
481*56b0d230SAngeloGioacchino Del Regno 		.setclr_bit = 28,
482*56b0d230SAngeloGioacchino Del Regno 	},
483*56b0d230SAngeloGioacchino Del Regno 	[MT8196_POWER_DOMAIN_DISP_EDPTX_DORMANT] = {
484*56b0d230SAngeloGioacchino Del Regno 		.name = "disp-edptx-dormant",
485*56b0d230SAngeloGioacchino Del Regno 		.set = 0x0218,
486*56b0d230SAngeloGioacchino Del Regno 		.clr = 0x021C,
487*56b0d230SAngeloGioacchino Del Regno 		.done = 0x141C,
488*56b0d230SAngeloGioacchino Del Regno 		.en = 0x1410,
489*56b0d230SAngeloGioacchino Del Regno 		.set_sta = 0x146C,
490*56b0d230SAngeloGioacchino Del Regno 		.clr_sta = 0x1470,
491*56b0d230SAngeloGioacchino Del Regno 		.setclr_bit = 29,
492*56b0d230SAngeloGioacchino Del Regno 	},
493*56b0d230SAngeloGioacchino Del Regno 	[MT8196_POWER_DOMAIN_DISP_DPTX_DORMANT] = {
494*56b0d230SAngeloGioacchino Del Regno 		.name = "disp-dptx-dormant",
495*56b0d230SAngeloGioacchino Del Regno 		.set = 0x0218,
496*56b0d230SAngeloGioacchino Del Regno 		.clr = 0x021C,
497*56b0d230SAngeloGioacchino Del Regno 		.done = 0x141C,
498*56b0d230SAngeloGioacchino Del Regno 		.en = 0x1410,
499*56b0d230SAngeloGioacchino Del Regno 		.set_sta = 0x146C,
500*56b0d230SAngeloGioacchino Del Regno 		.clr_sta = 0x1470,
501*56b0d230SAngeloGioacchino Del Regno 		.setclr_bit = 30,
502*56b0d230SAngeloGioacchino Del Regno 	},
503*56b0d230SAngeloGioacchino Del Regno 	[MT8196_POWER_DOMAIN_MML0_SHUTDOWN] = {
504*56b0d230SAngeloGioacchino Del Regno 		.name = "mml0-shutdown",
505*56b0d230SAngeloGioacchino Del Regno 		.set = 0x0218,
506*56b0d230SAngeloGioacchino Del Regno 		.clr = 0x021C,
507*56b0d230SAngeloGioacchino Del Regno 		.done = 0x141C,
508*56b0d230SAngeloGioacchino Del Regno 		.en = 0x1410,
509*56b0d230SAngeloGioacchino Del Regno 		.set_sta = 0x146C,
510*56b0d230SAngeloGioacchino Del Regno 		.clr_sta = 0x1470,
511*56b0d230SAngeloGioacchino Del Regno 		.setclr_bit = 31,
512*56b0d230SAngeloGioacchino Del Regno 	},
513*56b0d230SAngeloGioacchino Del Regno 	[MT8196_POWER_DOMAIN_MML1_SHUTDOWN] = {
514*56b0d230SAngeloGioacchino Del Regno 		.name = "mml1-shutdown",
515*56b0d230SAngeloGioacchino Del Regno 		.set = 0x0220,
516*56b0d230SAngeloGioacchino Del Regno 		.clr = 0x0224,
517*56b0d230SAngeloGioacchino Del Regno 		.done = 0x142C,
518*56b0d230SAngeloGioacchino Del Regno 		.en = 0x1420,
519*56b0d230SAngeloGioacchino Del Regno 		.set_sta = 0x1474,
520*56b0d230SAngeloGioacchino Del Regno 		.clr_sta = 0x1478,
521*56b0d230SAngeloGioacchino Del Regno 		.setclr_bit = 0,
522*56b0d230SAngeloGioacchino Del Regno 	},
523*56b0d230SAngeloGioacchino Del Regno 	[MT8196_POWER_DOMAIN_MM_INFRA0] = {
524*56b0d230SAngeloGioacchino Del Regno 		.name = "mm-infra0",
525*56b0d230SAngeloGioacchino Del Regno 		.set = 0x0220,
526*56b0d230SAngeloGioacchino Del Regno 		.clr = 0x0224,
527*56b0d230SAngeloGioacchino Del Regno 		.done = 0x142C,
528*56b0d230SAngeloGioacchino Del Regno 		.en = 0x1420,
529*56b0d230SAngeloGioacchino Del Regno 		.set_sta = 0x1474,
530*56b0d230SAngeloGioacchino Del Regno 		.clr_sta = 0x1478,
531*56b0d230SAngeloGioacchino Del Regno 		.setclr_bit = 1,
532*56b0d230SAngeloGioacchino Del Regno 	},
533*56b0d230SAngeloGioacchino Del Regno 	[MT8196_POWER_DOMAIN_MM_INFRA1] = {
534*56b0d230SAngeloGioacchino Del Regno 		.name = "mm-infra1",
535*56b0d230SAngeloGioacchino Del Regno 		.set = 0x0220,
536*56b0d230SAngeloGioacchino Del Regno 		.clr = 0x0224,
537*56b0d230SAngeloGioacchino Del Regno 		.done = 0x142C,
538*56b0d230SAngeloGioacchino Del Regno 		.en = 0x1420,
539*56b0d230SAngeloGioacchino Del Regno 		.set_sta = 0x1474,
540*56b0d230SAngeloGioacchino Del Regno 		.clr_sta = 0x1478,
541*56b0d230SAngeloGioacchino Del Regno 		.setclr_bit = 2,
542*56b0d230SAngeloGioacchino Del Regno 	},
543*56b0d230SAngeloGioacchino Del Regno 	[MT8196_POWER_DOMAIN_MM_INFRA_AO] = {
544*56b0d230SAngeloGioacchino Del Regno 		.name = "mm-infra-ao",
545*56b0d230SAngeloGioacchino Del Regno 		.set = 0x0220,
546*56b0d230SAngeloGioacchino Del Regno 		.clr = 0x0224,
547*56b0d230SAngeloGioacchino Del Regno 		.done = 0x142C,
548*56b0d230SAngeloGioacchino Del Regno 		.en = 0x1420,
549*56b0d230SAngeloGioacchino Del Regno 		.set_sta = 0x1474,
550*56b0d230SAngeloGioacchino Del Regno 		.clr_sta = 0x1478,
551*56b0d230SAngeloGioacchino Del Regno 		.setclr_bit = 3,
552*56b0d230SAngeloGioacchino Del Regno 	},
553*56b0d230SAngeloGioacchino Del Regno 	[MT8196_POWER_DOMAIN_CSI_BS_RX] = {
554*56b0d230SAngeloGioacchino Del Regno 		.name = "csi-bs-rx",
555*56b0d230SAngeloGioacchino Del Regno 		.set = 0x0220,
556*56b0d230SAngeloGioacchino Del Regno 		.clr = 0x0224,
557*56b0d230SAngeloGioacchino Del Regno 		.done = 0x142C,
558*56b0d230SAngeloGioacchino Del Regno 		.en = 0x1420,
559*56b0d230SAngeloGioacchino Del Regno 		.set_sta = 0x1474,
560*56b0d230SAngeloGioacchino Del Regno 		.clr_sta = 0x1478,
561*56b0d230SAngeloGioacchino Del Regno 		.setclr_bit = 5,
562*56b0d230SAngeloGioacchino Del Regno 	},
563*56b0d230SAngeloGioacchino Del Regno 	[MT8196_POWER_DOMAIN_CSI_LS_RX] = {
564*56b0d230SAngeloGioacchino Del Regno 		.name = "csi-ls-rx",
565*56b0d230SAngeloGioacchino Del Regno 		.set = 0x0220,
566*56b0d230SAngeloGioacchino Del Regno 		.clr = 0x0224,
567*56b0d230SAngeloGioacchino Del Regno 		.done = 0x142C,
568*56b0d230SAngeloGioacchino Del Regno 		.en = 0x1420,
569*56b0d230SAngeloGioacchino Del Regno 		.set_sta = 0x1474,
570*56b0d230SAngeloGioacchino Del Regno 		.clr_sta = 0x1478,
571*56b0d230SAngeloGioacchino Del Regno 		.setclr_bit = 6,
572*56b0d230SAngeloGioacchino Del Regno 	},
573*56b0d230SAngeloGioacchino Del Regno 	[MT8196_POWER_DOMAIN_DSI_PHY0] = {
574*56b0d230SAngeloGioacchino Del Regno 		.name = "dsi-phy0",
575*56b0d230SAngeloGioacchino Del Regno 		.set = 0x0220,
576*56b0d230SAngeloGioacchino Del Regno 		.clr = 0x0224,
577*56b0d230SAngeloGioacchino Del Regno 		.done = 0x142C,
578*56b0d230SAngeloGioacchino Del Regno 		.en = 0x1420,
579*56b0d230SAngeloGioacchino Del Regno 		.set_sta = 0x1474,
580*56b0d230SAngeloGioacchino Del Regno 		.clr_sta = 0x1478,
581*56b0d230SAngeloGioacchino Del Regno 		.setclr_bit = 7,
582*56b0d230SAngeloGioacchino Del Regno 	},
583*56b0d230SAngeloGioacchino Del Regno 	[MT8196_POWER_DOMAIN_DSI_PHY1] = {
584*56b0d230SAngeloGioacchino Del Regno 		.name = "dsi-phy1",
585*56b0d230SAngeloGioacchino Del Regno 		.set = 0x0220,
586*56b0d230SAngeloGioacchino Del Regno 		.clr = 0x0224,
587*56b0d230SAngeloGioacchino Del Regno 		.done = 0x142C,
588*56b0d230SAngeloGioacchino Del Regno 		.en = 0x1420,
589*56b0d230SAngeloGioacchino Del Regno 		.set_sta = 0x1474,
590*56b0d230SAngeloGioacchino Del Regno 		.clr_sta = 0x1478,
591*56b0d230SAngeloGioacchino Del Regno 		.setclr_bit = 8,
592*56b0d230SAngeloGioacchino Del Regno 	},
593*56b0d230SAngeloGioacchino Del Regno 	[MT8196_POWER_DOMAIN_DSI_PHY2] = {
594*56b0d230SAngeloGioacchino Del Regno 		.name = "dsi-phy2",
595*56b0d230SAngeloGioacchino Del Regno 		.set = 0x0220,
596*56b0d230SAngeloGioacchino Del Regno 		.clr = 0x0224,
597*56b0d230SAngeloGioacchino Del Regno 		.done = 0x142C,
598*56b0d230SAngeloGioacchino Del Regno 		.en = 0x1420,
599*56b0d230SAngeloGioacchino Del Regno 		.set_sta = 0x1474,
600*56b0d230SAngeloGioacchino Del Regno 		.clr_sta = 0x1478,
601*56b0d230SAngeloGioacchino Del Regno 		.setclr_bit = 9,
602*56b0d230SAngeloGioacchino Del Regno 	},
603*56b0d230SAngeloGioacchino Del Regno };
604*56b0d230SAngeloGioacchino Del Regno 
6055437b281SAngeloGioacchino Del Regno static const struct scpsys_soc_data mt8196_scpsys_data = {
6065437b281SAngeloGioacchino Del Regno 	.domains_data = scpsys_domain_data_mt8196,
6075437b281SAngeloGioacchino Del Regno 	.num_domains = ARRAY_SIZE(scpsys_domain_data_mt8196),
6085437b281SAngeloGioacchino Del Regno 	.bus_prot_blocks = scpsys_bus_prot_blocks_mt8196,
6095437b281SAngeloGioacchino Del Regno 	.num_bus_prot_blocks = ARRAY_SIZE(scpsys_bus_prot_blocks_mt8196),
6105437b281SAngeloGioacchino Del Regno 	.type = SCPSYS_MTCMOS_TYPE_DIRECT_CTL,
6115437b281SAngeloGioacchino Del Regno };
6125437b281SAngeloGioacchino Del Regno 
6135437b281SAngeloGioacchino Del Regno static const struct scpsys_soc_data mt8196_scpsys_hwv_data = {
6145437b281SAngeloGioacchino Del Regno 	.hwv_domains_data = scpsys_hwv_domain_data_mt8196,
6155437b281SAngeloGioacchino Del Regno 	.num_hwv_domains = ARRAY_SIZE(scpsys_hwv_domain_data_mt8196),
6165437b281SAngeloGioacchino Del Regno 	.type = SCPSYS_MTCMOS_TYPE_HW_VOTER,
6175437b281SAngeloGioacchino Del Regno };
6185437b281SAngeloGioacchino Del Regno 
619*56b0d230SAngeloGioacchino Del Regno static const struct scpsys_soc_data mt8196_hfrpsys_hwv_data = {
620*56b0d230SAngeloGioacchino Del Regno 	.hwv_domains_data = hfrpsys_hwv_domain_data_mt8196,
621*56b0d230SAngeloGioacchino Del Regno 	.num_hwv_domains = ARRAY_SIZE(hfrpsys_hwv_domain_data_mt8196),
622*56b0d230SAngeloGioacchino Del Regno 	.type = SCPSYS_MTCMOS_TYPE_HW_VOTER,
623*56b0d230SAngeloGioacchino Del Regno };
624*56b0d230SAngeloGioacchino Del Regno 
6255437b281SAngeloGioacchino Del Regno #endif /* __SOC_MEDIATEK_MT8196_PM_DOMAINS_H */
626