1*e2ad626fSUlf Hansson /* SPDX-License-Identifier: GPL-2.0-only */
2*e2ad626fSUlf Hansson /*
3*e2ad626fSUlf Hansson  * Copyright (c) 2021 MediaTek Inc.
4*e2ad626fSUlf Hansson  * Author: Chun-Jie Chen <chun-jie.chen@mediatek.com>
5*e2ad626fSUlf Hansson  */
6*e2ad626fSUlf Hansson 
7*e2ad626fSUlf Hansson #ifndef __SOC_MEDIATEK_MT8195_PM_DOMAINS_H
8*e2ad626fSUlf Hansson #define __SOC_MEDIATEK_MT8195_PM_DOMAINS_H
9*e2ad626fSUlf Hansson 
10*e2ad626fSUlf Hansson #include "mtk-pm-domains.h"
11*e2ad626fSUlf Hansson #include <dt-bindings/power/mt8195-power.h>
12*e2ad626fSUlf Hansson 
13*e2ad626fSUlf Hansson /*
14*e2ad626fSUlf Hansson  * MT8195 power domain support
15*e2ad626fSUlf Hansson  */
16*e2ad626fSUlf Hansson 
17*e2ad626fSUlf Hansson static const struct scpsys_domain_data scpsys_domain_data_mt8195[] = {
18*e2ad626fSUlf Hansson 	[MT8195_POWER_DOMAIN_PCIE_MAC_P0] = {
19*e2ad626fSUlf Hansson 		.name = "pcie_mac_p0",
20*e2ad626fSUlf Hansson 		.sta_mask = BIT(11),
21*e2ad626fSUlf Hansson 		.ctl_offs = 0x328,
22*e2ad626fSUlf Hansson 		.pwr_sta_offs = 0x174,
23*e2ad626fSUlf Hansson 		.pwr_sta2nd_offs = 0x178,
24*e2ad626fSUlf Hansson 		.sram_pdn_bits = GENMASK(8, 8),
25*e2ad626fSUlf Hansson 		.sram_pdn_ack_bits = GENMASK(12, 12),
26*e2ad626fSUlf Hansson 		.bp_infracfg = {
27*e2ad626fSUlf Hansson 			BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_VDNR_PCIE_MAC_P0,
28*e2ad626fSUlf Hansson 				    MT8195_TOP_AXI_PROT_EN_VDNR_SET,
29*e2ad626fSUlf Hansson 				    MT8195_TOP_AXI_PROT_EN_VDNR_CLR,
30*e2ad626fSUlf Hansson 				    MT8195_TOP_AXI_PROT_EN_VDNR_STA1),
31*e2ad626fSUlf Hansson 			BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_VDNR_1_PCIE_MAC_P0,
32*e2ad626fSUlf Hansson 				    MT8195_TOP_AXI_PROT_EN_VDNR_1_SET,
33*e2ad626fSUlf Hansson 				    MT8195_TOP_AXI_PROT_EN_VDNR_1_CLR,
34*e2ad626fSUlf Hansson 				    MT8195_TOP_AXI_PROT_EN_VDNR_1_STA1),
35*e2ad626fSUlf Hansson 		},
36*e2ad626fSUlf Hansson 	},
37*e2ad626fSUlf Hansson 	[MT8195_POWER_DOMAIN_PCIE_MAC_P1] = {
38*e2ad626fSUlf Hansson 		.name = "pcie_mac_p1",
39*e2ad626fSUlf Hansson 		.sta_mask = BIT(12),
40*e2ad626fSUlf Hansson 		.ctl_offs = 0x32C,
41*e2ad626fSUlf Hansson 		.pwr_sta_offs = 0x174,
42*e2ad626fSUlf Hansson 		.pwr_sta2nd_offs = 0x178,
43*e2ad626fSUlf Hansson 		.sram_pdn_bits = GENMASK(8, 8),
44*e2ad626fSUlf Hansson 		.sram_pdn_ack_bits = GENMASK(12, 12),
45*e2ad626fSUlf Hansson 		.bp_infracfg = {
46*e2ad626fSUlf Hansson 			BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_VDNR_PCIE_MAC_P1,
47*e2ad626fSUlf Hansson 				    MT8195_TOP_AXI_PROT_EN_VDNR_SET,
48*e2ad626fSUlf Hansson 				    MT8195_TOP_AXI_PROT_EN_VDNR_CLR,
49*e2ad626fSUlf Hansson 				    MT8195_TOP_AXI_PROT_EN_VDNR_STA1),
50*e2ad626fSUlf Hansson 			BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_VDNR_1_PCIE_MAC_P1,
51*e2ad626fSUlf Hansson 				    MT8195_TOP_AXI_PROT_EN_VDNR_1_SET,
52*e2ad626fSUlf Hansson 				    MT8195_TOP_AXI_PROT_EN_VDNR_1_CLR,
53*e2ad626fSUlf Hansson 				    MT8195_TOP_AXI_PROT_EN_VDNR_1_STA1),
54*e2ad626fSUlf Hansson 		},
55*e2ad626fSUlf Hansson 	},
56*e2ad626fSUlf Hansson 	[MT8195_POWER_DOMAIN_PCIE_PHY] = {
57*e2ad626fSUlf Hansson 		.name = "pcie_phy",
58*e2ad626fSUlf Hansson 		.sta_mask = BIT(13),
59*e2ad626fSUlf Hansson 		.ctl_offs = 0x330,
60*e2ad626fSUlf Hansson 		.pwr_sta_offs = 0x174,
61*e2ad626fSUlf Hansson 		.pwr_sta2nd_offs = 0x178,
62*e2ad626fSUlf Hansson 		.caps = MTK_SCPD_ACTIVE_WAKEUP,
63*e2ad626fSUlf Hansson 	},
64*e2ad626fSUlf Hansson 	[MT8195_POWER_DOMAIN_SSUSB_PCIE_PHY] = {
65*e2ad626fSUlf Hansson 		.name = "ssusb_pcie_phy",
66*e2ad626fSUlf Hansson 		.sta_mask = BIT(14),
67*e2ad626fSUlf Hansson 		.ctl_offs = 0x334,
68*e2ad626fSUlf Hansson 		.pwr_sta_offs = 0x174,
69*e2ad626fSUlf Hansson 		.pwr_sta2nd_offs = 0x178,
70*e2ad626fSUlf Hansson 		.caps = MTK_SCPD_ACTIVE_WAKEUP | MTK_SCPD_ALWAYS_ON,
71*e2ad626fSUlf Hansson 	},
72*e2ad626fSUlf Hansson 	[MT8195_POWER_DOMAIN_CSI_RX_TOP] = {
73*e2ad626fSUlf Hansson 		.name = "csi_rx_top",
74*e2ad626fSUlf Hansson 		.sta_mask = BIT(18),
75*e2ad626fSUlf Hansson 		.ctl_offs = 0x3C4,
76*e2ad626fSUlf Hansson 		.pwr_sta_offs = 0x174,
77*e2ad626fSUlf Hansson 		.pwr_sta2nd_offs = 0x178,
78*e2ad626fSUlf Hansson 		.caps = MTK_SCPD_KEEP_DEFAULT_OFF,
79*e2ad626fSUlf Hansson 	},
80*e2ad626fSUlf Hansson 	[MT8195_POWER_DOMAIN_ETHER] = {
81*e2ad626fSUlf Hansson 		.name = "ether",
82*e2ad626fSUlf Hansson 		.sta_mask = BIT(3),
83*e2ad626fSUlf Hansson 		.ctl_offs = 0x344,
84*e2ad626fSUlf Hansson 		.pwr_sta_offs = 0x16c,
85*e2ad626fSUlf Hansson 		.pwr_sta2nd_offs = 0x170,
86*e2ad626fSUlf Hansson 		.sram_pdn_bits = GENMASK(8, 8),
87*e2ad626fSUlf Hansson 		.sram_pdn_ack_bits = GENMASK(12, 12),
88*e2ad626fSUlf Hansson 		.caps = MTK_SCPD_ACTIVE_WAKEUP,
89*e2ad626fSUlf Hansson 	},
90*e2ad626fSUlf Hansson 	[MT8195_POWER_DOMAIN_ADSP] = {
91*e2ad626fSUlf Hansson 		.name = "adsp",
92*e2ad626fSUlf Hansson 		.sta_mask = BIT(10),
93*e2ad626fSUlf Hansson 		.ctl_offs = 0x360,
94*e2ad626fSUlf Hansson 		.pwr_sta_offs = 0x16c,
95*e2ad626fSUlf Hansson 		.pwr_sta2nd_offs = 0x170,
96*e2ad626fSUlf Hansson 		.sram_pdn_bits = GENMASK(8, 8),
97*e2ad626fSUlf Hansson 		.sram_pdn_ack_bits = GENMASK(12, 12),
98*e2ad626fSUlf Hansson 		.bp_infracfg = {
99*e2ad626fSUlf Hansson 			BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_2_ADSP,
100*e2ad626fSUlf Hansson 				    MT8195_TOP_AXI_PROT_EN_2_SET,
101*e2ad626fSUlf Hansson 				    MT8195_TOP_AXI_PROT_EN_2_CLR,
102*e2ad626fSUlf Hansson 				    MT8195_TOP_AXI_PROT_EN_2_STA1),
103*e2ad626fSUlf Hansson 		},
104*e2ad626fSUlf Hansson 		.caps = MTK_SCPD_SRAM_ISO | MTK_SCPD_ACTIVE_WAKEUP,
105*e2ad626fSUlf Hansson 	},
106*e2ad626fSUlf Hansson 	[MT8195_POWER_DOMAIN_AUDIO] = {
107*e2ad626fSUlf Hansson 		.name = "audio",
108*e2ad626fSUlf Hansson 		.sta_mask = BIT(8),
109*e2ad626fSUlf Hansson 		.ctl_offs = 0x358,
110*e2ad626fSUlf Hansson 		.pwr_sta_offs = 0x16c,
111*e2ad626fSUlf Hansson 		.pwr_sta2nd_offs = 0x170,
112*e2ad626fSUlf Hansson 		.sram_pdn_bits = GENMASK(8, 8),
113*e2ad626fSUlf Hansson 		.sram_pdn_ack_bits = GENMASK(12, 12),
114*e2ad626fSUlf Hansson 		.bp_infracfg = {
115*e2ad626fSUlf Hansson 			BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_2_AUDIO,
116*e2ad626fSUlf Hansson 				    MT8195_TOP_AXI_PROT_EN_2_SET,
117*e2ad626fSUlf Hansson 				    MT8195_TOP_AXI_PROT_EN_2_CLR,
118*e2ad626fSUlf Hansson 				    MT8195_TOP_AXI_PROT_EN_2_STA1),
119*e2ad626fSUlf Hansson 		},
120*e2ad626fSUlf Hansson 	},
121*e2ad626fSUlf Hansson 	[MT8195_POWER_DOMAIN_MFG0] = {
122*e2ad626fSUlf Hansson 		.name = "mfg0",
123*e2ad626fSUlf Hansson 		.sta_mask = BIT(1),
124*e2ad626fSUlf Hansson 		.ctl_offs = 0x300,
125*e2ad626fSUlf Hansson 		.pwr_sta_offs = 0x174,
126*e2ad626fSUlf Hansson 		.pwr_sta2nd_offs = 0x178,
127*e2ad626fSUlf Hansson 		.sram_pdn_bits = GENMASK(8, 8),
128*e2ad626fSUlf Hansson 		.sram_pdn_ack_bits = GENMASK(12, 12),
129*e2ad626fSUlf Hansson 		.caps = MTK_SCPD_KEEP_DEFAULT_OFF | MTK_SCPD_DOMAIN_SUPPLY,
130*e2ad626fSUlf Hansson 	},
131*e2ad626fSUlf Hansson 	[MT8195_POWER_DOMAIN_MFG1] = {
132*e2ad626fSUlf Hansson 		.name = "mfg1",
133*e2ad626fSUlf Hansson 		.sta_mask = BIT(2),
134*e2ad626fSUlf Hansson 		.ctl_offs = 0x304,
135*e2ad626fSUlf Hansson 		.pwr_sta_offs = 0x174,
136*e2ad626fSUlf Hansson 		.pwr_sta2nd_offs = 0x178,
137*e2ad626fSUlf Hansson 		.sram_pdn_bits = GENMASK(8, 8),
138*e2ad626fSUlf Hansson 		.sram_pdn_ack_bits = GENMASK(12, 12),
139*e2ad626fSUlf Hansson 		.bp_infracfg = {
140*e2ad626fSUlf Hansson 			BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_MFG1,
141*e2ad626fSUlf Hansson 				    MT8195_TOP_AXI_PROT_EN_SET,
142*e2ad626fSUlf Hansson 				    MT8195_TOP_AXI_PROT_EN_CLR,
143*e2ad626fSUlf Hansson 				    MT8195_TOP_AXI_PROT_EN_STA1),
144*e2ad626fSUlf Hansson 			BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_2_MFG1,
145*e2ad626fSUlf Hansson 				    MT8195_TOP_AXI_PROT_EN_2_SET,
146*e2ad626fSUlf Hansson 				    MT8195_TOP_AXI_PROT_EN_2_CLR,
147*e2ad626fSUlf Hansson 				    MT8195_TOP_AXI_PROT_EN_2_STA1),
148*e2ad626fSUlf Hansson 			BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_1_MFG1,
149*e2ad626fSUlf Hansson 				    MT8195_TOP_AXI_PROT_EN_1_SET,
150*e2ad626fSUlf Hansson 				    MT8195_TOP_AXI_PROT_EN_1_CLR,
151*e2ad626fSUlf Hansson 				    MT8195_TOP_AXI_PROT_EN_1_STA1),
152*e2ad626fSUlf Hansson 			BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_2_MFG1_2ND,
153*e2ad626fSUlf Hansson 				    MT8195_TOP_AXI_PROT_EN_2_SET,
154*e2ad626fSUlf Hansson 				    MT8195_TOP_AXI_PROT_EN_2_CLR,
155*e2ad626fSUlf Hansson 				    MT8195_TOP_AXI_PROT_EN_2_STA1),
156*e2ad626fSUlf Hansson 			BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_MFG1_2ND,
157*e2ad626fSUlf Hansson 				    MT8195_TOP_AXI_PROT_EN_SET,
158*e2ad626fSUlf Hansson 				    MT8195_TOP_AXI_PROT_EN_CLR,
159*e2ad626fSUlf Hansson 				    MT8195_TOP_AXI_PROT_EN_STA1),
160*e2ad626fSUlf Hansson 			BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_SUB_INFRA_VDNR_MFG1,
161*e2ad626fSUlf Hansson 				    MT8195_TOP_AXI_PROT_EN_SUB_INFRA_VDNR_SET,
162*e2ad626fSUlf Hansson 				    MT8195_TOP_AXI_PROT_EN_SUB_INFRA_VDNR_CLR,
163*e2ad626fSUlf Hansson 				    MT8195_TOP_AXI_PROT_EN_SUB_INFRA_VDNR_STA1),
164*e2ad626fSUlf Hansson 		},
165*e2ad626fSUlf Hansson 		.caps = MTK_SCPD_KEEP_DEFAULT_OFF | MTK_SCPD_DOMAIN_SUPPLY,
166*e2ad626fSUlf Hansson 	},
167*e2ad626fSUlf Hansson 	[MT8195_POWER_DOMAIN_MFG2] = {
168*e2ad626fSUlf Hansson 		.name = "mfg2",
169*e2ad626fSUlf Hansson 		.sta_mask = BIT(3),
170*e2ad626fSUlf Hansson 		.ctl_offs = 0x308,
171*e2ad626fSUlf Hansson 		.pwr_sta_offs = 0x174,
172*e2ad626fSUlf Hansson 		.pwr_sta2nd_offs = 0x178,
173*e2ad626fSUlf Hansson 		.sram_pdn_bits = GENMASK(8, 8),
174*e2ad626fSUlf Hansson 		.sram_pdn_ack_bits = GENMASK(12, 12),
175*e2ad626fSUlf Hansson 		.caps = MTK_SCPD_KEEP_DEFAULT_OFF,
176*e2ad626fSUlf Hansson 	},
177*e2ad626fSUlf Hansson 	[MT8195_POWER_DOMAIN_MFG3] = {
178*e2ad626fSUlf Hansson 		.name = "mfg3",
179*e2ad626fSUlf Hansson 		.sta_mask = BIT(4),
180*e2ad626fSUlf Hansson 		.ctl_offs = 0x30C,
181*e2ad626fSUlf Hansson 		.pwr_sta_offs = 0x174,
182*e2ad626fSUlf Hansson 		.pwr_sta2nd_offs = 0x178,
183*e2ad626fSUlf Hansson 		.sram_pdn_bits = GENMASK(8, 8),
184*e2ad626fSUlf Hansson 		.sram_pdn_ack_bits = GENMASK(12, 12),
185*e2ad626fSUlf Hansson 		.caps = MTK_SCPD_KEEP_DEFAULT_OFF,
186*e2ad626fSUlf Hansson 	},
187*e2ad626fSUlf Hansson 	[MT8195_POWER_DOMAIN_MFG4] = {
188*e2ad626fSUlf Hansson 		.name = "mfg4",
189*e2ad626fSUlf Hansson 		.sta_mask = BIT(5),
190*e2ad626fSUlf Hansson 		.ctl_offs = 0x310,
191*e2ad626fSUlf Hansson 		.pwr_sta_offs = 0x174,
192*e2ad626fSUlf Hansson 		.pwr_sta2nd_offs = 0x178,
193*e2ad626fSUlf Hansson 		.sram_pdn_bits = GENMASK(8, 8),
194*e2ad626fSUlf Hansson 		.sram_pdn_ack_bits = GENMASK(12, 12),
195*e2ad626fSUlf Hansson 		.caps = MTK_SCPD_KEEP_DEFAULT_OFF,
196*e2ad626fSUlf Hansson 	},
197*e2ad626fSUlf Hansson 	[MT8195_POWER_DOMAIN_MFG5] = {
198*e2ad626fSUlf Hansson 		.name = "mfg5",
199*e2ad626fSUlf Hansson 		.sta_mask = BIT(6),
200*e2ad626fSUlf Hansson 		.ctl_offs = 0x314,
201*e2ad626fSUlf Hansson 		.pwr_sta_offs = 0x174,
202*e2ad626fSUlf Hansson 		.pwr_sta2nd_offs = 0x178,
203*e2ad626fSUlf Hansson 		.sram_pdn_bits = GENMASK(8, 8),
204*e2ad626fSUlf Hansson 		.sram_pdn_ack_bits = GENMASK(12, 12),
205*e2ad626fSUlf Hansson 		.caps = MTK_SCPD_KEEP_DEFAULT_OFF,
206*e2ad626fSUlf Hansson 	},
207*e2ad626fSUlf Hansson 	[MT8195_POWER_DOMAIN_MFG6] = {
208*e2ad626fSUlf Hansson 		.name = "mfg6",
209*e2ad626fSUlf Hansson 		.sta_mask = BIT(7),
210*e2ad626fSUlf Hansson 		.ctl_offs = 0x318,
211*e2ad626fSUlf Hansson 		.pwr_sta_offs = 0x174,
212*e2ad626fSUlf Hansson 		.pwr_sta2nd_offs = 0x178,
213*e2ad626fSUlf Hansson 		.sram_pdn_bits = GENMASK(8, 8),
214*e2ad626fSUlf Hansson 		.sram_pdn_ack_bits = GENMASK(12, 12),
215*e2ad626fSUlf Hansson 		.caps = MTK_SCPD_KEEP_DEFAULT_OFF,
216*e2ad626fSUlf Hansson 	},
217*e2ad626fSUlf Hansson 	[MT8195_POWER_DOMAIN_VPPSYS0] = {
218*e2ad626fSUlf Hansson 		.name = "vppsys0",
219*e2ad626fSUlf Hansson 		.sta_mask = BIT(11),
220*e2ad626fSUlf Hansson 		.ctl_offs = 0x364,
221*e2ad626fSUlf Hansson 		.pwr_sta_offs = 0x16c,
222*e2ad626fSUlf Hansson 		.pwr_sta2nd_offs = 0x170,
223*e2ad626fSUlf Hansson 		.sram_pdn_bits = GENMASK(8, 8),
224*e2ad626fSUlf Hansson 		.sram_pdn_ack_bits = GENMASK(12, 12),
225*e2ad626fSUlf Hansson 		.bp_infracfg = {
226*e2ad626fSUlf Hansson 			BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_VPPSYS0,
227*e2ad626fSUlf Hansson 				    MT8195_TOP_AXI_PROT_EN_SET,
228*e2ad626fSUlf Hansson 				    MT8195_TOP_AXI_PROT_EN_CLR,
229*e2ad626fSUlf Hansson 				    MT8195_TOP_AXI_PROT_EN_STA1),
230*e2ad626fSUlf Hansson 			BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_MM_2_VPPSYS0,
231*e2ad626fSUlf Hansson 				    MT8195_TOP_AXI_PROT_EN_MM_2_SET,
232*e2ad626fSUlf Hansson 				    MT8195_TOP_AXI_PROT_EN_MM_2_CLR,
233*e2ad626fSUlf Hansson 				    MT8195_TOP_AXI_PROT_EN_MM_2_STA1),
234*e2ad626fSUlf Hansson 			BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_VPPSYS0_2ND,
235*e2ad626fSUlf Hansson 				    MT8195_TOP_AXI_PROT_EN_SET,
236*e2ad626fSUlf Hansson 				    MT8195_TOP_AXI_PROT_EN_CLR,
237*e2ad626fSUlf Hansson 				    MT8195_TOP_AXI_PROT_EN_STA1),
238*e2ad626fSUlf Hansson 			BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_MM_2_VPPSYS0_2ND,
239*e2ad626fSUlf Hansson 				    MT8195_TOP_AXI_PROT_EN_MM_2_SET,
240*e2ad626fSUlf Hansson 				    MT8195_TOP_AXI_PROT_EN_MM_2_CLR,
241*e2ad626fSUlf Hansson 				    MT8195_TOP_AXI_PROT_EN_MM_2_STA1),
242*e2ad626fSUlf Hansson 			BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_SUB_INFRA_VDNR_VPPSYS0,
243*e2ad626fSUlf Hansson 				    MT8195_TOP_AXI_PROT_EN_SUB_INFRA_VDNR_SET,
244*e2ad626fSUlf Hansson 				    MT8195_TOP_AXI_PROT_EN_SUB_INFRA_VDNR_CLR,
245*e2ad626fSUlf Hansson 				    MT8195_TOP_AXI_PROT_EN_SUB_INFRA_VDNR_STA1),
246*e2ad626fSUlf Hansson 		},
247*e2ad626fSUlf Hansson 	},
248*e2ad626fSUlf Hansson 	[MT8195_POWER_DOMAIN_VDOSYS0] = {
249*e2ad626fSUlf Hansson 		.name = "vdosys0",
250*e2ad626fSUlf Hansson 		.sta_mask = BIT(13),
251*e2ad626fSUlf Hansson 		.ctl_offs = 0x36C,
252*e2ad626fSUlf Hansson 		.pwr_sta_offs = 0x16c,
253*e2ad626fSUlf Hansson 		.pwr_sta2nd_offs = 0x170,
254*e2ad626fSUlf Hansson 		.sram_pdn_bits = GENMASK(8, 8),
255*e2ad626fSUlf Hansson 		.sram_pdn_ack_bits = GENMASK(12, 12),
256*e2ad626fSUlf Hansson 		.bp_infracfg = {
257*e2ad626fSUlf Hansson 			BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_MM_VDOSYS0,
258*e2ad626fSUlf Hansson 				    MT8195_TOP_AXI_PROT_EN_MM_SET,
259*e2ad626fSUlf Hansson 				    MT8195_TOP_AXI_PROT_EN_MM_CLR,
260*e2ad626fSUlf Hansson 				    MT8195_TOP_AXI_PROT_EN_MM_STA1),
261*e2ad626fSUlf Hansson 			BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_VDOSYS0,
262*e2ad626fSUlf Hansson 				    MT8195_TOP_AXI_PROT_EN_SET,
263*e2ad626fSUlf Hansson 				    MT8195_TOP_AXI_PROT_EN_CLR,
264*e2ad626fSUlf Hansson 				    MT8195_TOP_AXI_PROT_EN_STA1),
265*e2ad626fSUlf Hansson 			BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_SUB_INFRA_VDNR_VDOSYS0,
266*e2ad626fSUlf Hansson 				    MT8195_TOP_AXI_PROT_EN_SUB_INFRA_VDNR_SET,
267*e2ad626fSUlf Hansson 				    MT8195_TOP_AXI_PROT_EN_SUB_INFRA_VDNR_CLR,
268*e2ad626fSUlf Hansson 				    MT8195_TOP_AXI_PROT_EN_SUB_INFRA_VDNR_STA1),
269*e2ad626fSUlf Hansson 		},
270*e2ad626fSUlf Hansson 	},
271*e2ad626fSUlf Hansson 	[MT8195_POWER_DOMAIN_VPPSYS1] = {
272*e2ad626fSUlf Hansson 		.name = "vppsys1",
273*e2ad626fSUlf Hansson 		.sta_mask = BIT(12),
274*e2ad626fSUlf Hansson 		.ctl_offs = 0x368,
275*e2ad626fSUlf Hansson 		.pwr_sta_offs = 0x16c,
276*e2ad626fSUlf Hansson 		.pwr_sta2nd_offs = 0x170,
277*e2ad626fSUlf Hansson 		.sram_pdn_bits = GENMASK(8, 8),
278*e2ad626fSUlf Hansson 		.sram_pdn_ack_bits = GENMASK(12, 12),
279*e2ad626fSUlf Hansson 		.bp_infracfg = {
280*e2ad626fSUlf Hansson 			BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_MM_VPPSYS1,
281*e2ad626fSUlf Hansson 				    MT8195_TOP_AXI_PROT_EN_MM_SET,
282*e2ad626fSUlf Hansson 				    MT8195_TOP_AXI_PROT_EN_MM_CLR,
283*e2ad626fSUlf Hansson 				    MT8195_TOP_AXI_PROT_EN_MM_STA1),
284*e2ad626fSUlf Hansson 			BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_MM_VPPSYS1_2ND,
285*e2ad626fSUlf Hansson 				    MT8195_TOP_AXI_PROT_EN_MM_SET,
286*e2ad626fSUlf Hansson 				    MT8195_TOP_AXI_PROT_EN_MM_CLR,
287*e2ad626fSUlf Hansson 				    MT8195_TOP_AXI_PROT_EN_MM_STA1),
288*e2ad626fSUlf Hansson 			BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_MM_2_VPPSYS1,
289*e2ad626fSUlf Hansson 				    MT8195_TOP_AXI_PROT_EN_MM_2_SET,
290*e2ad626fSUlf Hansson 				    MT8195_TOP_AXI_PROT_EN_MM_2_CLR,
291*e2ad626fSUlf Hansson 				    MT8195_TOP_AXI_PROT_EN_MM_2_STA1),
292*e2ad626fSUlf Hansson 		},
293*e2ad626fSUlf Hansson 	},
294*e2ad626fSUlf Hansson 	[MT8195_POWER_DOMAIN_VDOSYS1] = {
295*e2ad626fSUlf Hansson 		.name = "vdosys1",
296*e2ad626fSUlf Hansson 		.sta_mask = BIT(14),
297*e2ad626fSUlf Hansson 		.ctl_offs = 0x370,
298*e2ad626fSUlf Hansson 		.pwr_sta_offs = 0x16c,
299*e2ad626fSUlf Hansson 		.pwr_sta2nd_offs = 0x170,
300*e2ad626fSUlf Hansson 		.sram_pdn_bits = GENMASK(8, 8),
301*e2ad626fSUlf Hansson 		.sram_pdn_ack_bits = GENMASK(12, 12),
302*e2ad626fSUlf Hansson 		.bp_infracfg = {
303*e2ad626fSUlf Hansson 			BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_MM_VDOSYS1,
304*e2ad626fSUlf Hansson 				    MT8195_TOP_AXI_PROT_EN_MM_SET,
305*e2ad626fSUlf Hansson 				    MT8195_TOP_AXI_PROT_EN_MM_CLR,
306*e2ad626fSUlf Hansson 				    MT8195_TOP_AXI_PROT_EN_MM_STA1),
307*e2ad626fSUlf Hansson 			BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_MM_VDOSYS1_2ND,
308*e2ad626fSUlf Hansson 				    MT8195_TOP_AXI_PROT_EN_MM_SET,
309*e2ad626fSUlf Hansson 				    MT8195_TOP_AXI_PROT_EN_MM_CLR,
310*e2ad626fSUlf Hansson 				    MT8195_TOP_AXI_PROT_EN_MM_STA1),
311*e2ad626fSUlf Hansson 			BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_MM_2_VDOSYS1,
312*e2ad626fSUlf Hansson 				    MT8195_TOP_AXI_PROT_EN_MM_2_SET,
313*e2ad626fSUlf Hansson 				    MT8195_TOP_AXI_PROT_EN_MM_2_CLR,
314*e2ad626fSUlf Hansson 				    MT8195_TOP_AXI_PROT_EN_MM_2_STA1),
315*e2ad626fSUlf Hansson 		},
316*e2ad626fSUlf Hansson 	},
317*e2ad626fSUlf Hansson 	[MT8195_POWER_DOMAIN_DP_TX] = {
318*e2ad626fSUlf Hansson 		.name = "dp_tx",
319*e2ad626fSUlf Hansson 		.sta_mask = BIT(16),
320*e2ad626fSUlf Hansson 		.ctl_offs = 0x378,
321*e2ad626fSUlf Hansson 		.pwr_sta_offs = 0x16c,
322*e2ad626fSUlf Hansson 		.pwr_sta2nd_offs = 0x170,
323*e2ad626fSUlf Hansson 		.sram_pdn_bits = GENMASK(8, 8),
324*e2ad626fSUlf Hansson 		.sram_pdn_ack_bits = GENMASK(12, 12),
325*e2ad626fSUlf Hansson 		.bp_infracfg = {
326*e2ad626fSUlf Hansson 			BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_VDNR_1_DP_TX,
327*e2ad626fSUlf Hansson 				    MT8195_TOP_AXI_PROT_EN_VDNR_1_SET,
328*e2ad626fSUlf Hansson 				    MT8195_TOP_AXI_PROT_EN_VDNR_1_CLR,
329*e2ad626fSUlf Hansson 				    MT8195_TOP_AXI_PROT_EN_VDNR_1_STA1),
330*e2ad626fSUlf Hansson 		},
331*e2ad626fSUlf Hansson 		.caps = MTK_SCPD_KEEP_DEFAULT_OFF,
332*e2ad626fSUlf Hansson 	},
333*e2ad626fSUlf Hansson 	[MT8195_POWER_DOMAIN_EPD_TX] = {
334*e2ad626fSUlf Hansson 		.name = "epd_tx",
335*e2ad626fSUlf Hansson 		.sta_mask = BIT(17),
336*e2ad626fSUlf Hansson 		.ctl_offs = 0x37C,
337*e2ad626fSUlf Hansson 		.pwr_sta_offs = 0x16c,
338*e2ad626fSUlf Hansson 		.pwr_sta2nd_offs = 0x170,
339*e2ad626fSUlf Hansson 		.sram_pdn_bits = GENMASK(8, 8),
340*e2ad626fSUlf Hansson 		.sram_pdn_ack_bits = GENMASK(12, 12),
341*e2ad626fSUlf Hansson 		.bp_infracfg = {
342*e2ad626fSUlf Hansson 			BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_VDNR_1_EPD_TX,
343*e2ad626fSUlf Hansson 				    MT8195_TOP_AXI_PROT_EN_VDNR_1_SET,
344*e2ad626fSUlf Hansson 				    MT8195_TOP_AXI_PROT_EN_VDNR_1_CLR,
345*e2ad626fSUlf Hansson 				    MT8195_TOP_AXI_PROT_EN_VDNR_1_STA1),
346*e2ad626fSUlf Hansson 		},
347*e2ad626fSUlf Hansson 		.caps = MTK_SCPD_KEEP_DEFAULT_OFF,
348*e2ad626fSUlf Hansson 	},
349*e2ad626fSUlf Hansson 	[MT8195_POWER_DOMAIN_HDMI_TX] = {
350*e2ad626fSUlf Hansson 		.name = "hdmi_tx",
351*e2ad626fSUlf Hansson 		.sta_mask = BIT(18),
352*e2ad626fSUlf Hansson 		.ctl_offs = 0x380,
353*e2ad626fSUlf Hansson 		.pwr_sta_offs = 0x16c,
354*e2ad626fSUlf Hansson 		.pwr_sta2nd_offs = 0x170,
355*e2ad626fSUlf Hansson 		.sram_pdn_bits = GENMASK(8, 8),
356*e2ad626fSUlf Hansson 		.sram_pdn_ack_bits = GENMASK(12, 12),
357*e2ad626fSUlf Hansson 		.caps = MTK_SCPD_KEEP_DEFAULT_OFF | MTK_SCPD_ACTIVE_WAKEUP,
358*e2ad626fSUlf Hansson 	},
359*e2ad626fSUlf Hansson 	[MT8195_POWER_DOMAIN_WPESYS] = {
360*e2ad626fSUlf Hansson 		.name = "wpesys",
361*e2ad626fSUlf Hansson 		.sta_mask = BIT(15),
362*e2ad626fSUlf Hansson 		.ctl_offs = 0x374,
363*e2ad626fSUlf Hansson 		.pwr_sta_offs = 0x16c,
364*e2ad626fSUlf Hansson 		.pwr_sta2nd_offs = 0x170,
365*e2ad626fSUlf Hansson 		.sram_pdn_bits = GENMASK(8, 8),
366*e2ad626fSUlf Hansson 		.sram_pdn_ack_bits = GENMASK(12, 12),
367*e2ad626fSUlf Hansson 		.bp_infracfg = {
368*e2ad626fSUlf Hansson 			BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_MM_2_WPESYS,
369*e2ad626fSUlf Hansson 				    MT8195_TOP_AXI_PROT_EN_MM_2_SET,
370*e2ad626fSUlf Hansson 				    MT8195_TOP_AXI_PROT_EN_MM_2_CLR,
371*e2ad626fSUlf Hansson 				    MT8195_TOP_AXI_PROT_EN_MM_2_STA1),
372*e2ad626fSUlf Hansson 			BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_MM_WPESYS,
373*e2ad626fSUlf Hansson 				    MT8195_TOP_AXI_PROT_EN_MM_SET,
374*e2ad626fSUlf Hansson 				    MT8195_TOP_AXI_PROT_EN_MM_CLR,
375*e2ad626fSUlf Hansson 				    MT8195_TOP_AXI_PROT_EN_MM_STA1),
376*e2ad626fSUlf Hansson 			BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_MM_2_WPESYS_2ND,
377*e2ad626fSUlf Hansson 				    MT8195_TOP_AXI_PROT_EN_MM_2_SET,
378*e2ad626fSUlf Hansson 				    MT8195_TOP_AXI_PROT_EN_MM_2_CLR,
379*e2ad626fSUlf Hansson 				    MT8195_TOP_AXI_PROT_EN_MM_2_STA1),
380*e2ad626fSUlf Hansson 		},
381*e2ad626fSUlf Hansson 	},
382*e2ad626fSUlf Hansson 	[MT8195_POWER_DOMAIN_VDEC0] = {
383*e2ad626fSUlf Hansson 		.name = "vdec0",
384*e2ad626fSUlf Hansson 		.sta_mask = BIT(20),
385*e2ad626fSUlf Hansson 		.ctl_offs = 0x388,
386*e2ad626fSUlf Hansson 		.pwr_sta_offs = 0x16c,
387*e2ad626fSUlf Hansson 		.pwr_sta2nd_offs = 0x170,
388*e2ad626fSUlf Hansson 		.sram_pdn_bits = GENMASK(8, 8),
389*e2ad626fSUlf Hansson 		.sram_pdn_ack_bits = GENMASK(12, 12),
390*e2ad626fSUlf Hansson 		.bp_infracfg = {
391*e2ad626fSUlf Hansson 			BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_MM_VDEC0,
392*e2ad626fSUlf Hansson 				    MT8195_TOP_AXI_PROT_EN_MM_SET,
393*e2ad626fSUlf Hansson 				    MT8195_TOP_AXI_PROT_EN_MM_CLR,
394*e2ad626fSUlf Hansson 				    MT8195_TOP_AXI_PROT_EN_MM_STA1),
395*e2ad626fSUlf Hansson 			BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_MM_2_VDEC0,
396*e2ad626fSUlf Hansson 				    MT8195_TOP_AXI_PROT_EN_MM_2_SET,
397*e2ad626fSUlf Hansson 				    MT8195_TOP_AXI_PROT_EN_MM_2_CLR,
398*e2ad626fSUlf Hansson 				    MT8195_TOP_AXI_PROT_EN_MM_2_STA1),
399*e2ad626fSUlf Hansson 			BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_MM_VDEC0_2ND,
400*e2ad626fSUlf Hansson 				    MT8195_TOP_AXI_PROT_EN_MM_SET,
401*e2ad626fSUlf Hansson 				    MT8195_TOP_AXI_PROT_EN_MM_CLR,
402*e2ad626fSUlf Hansson 				    MT8195_TOP_AXI_PROT_EN_MM_STA1),
403*e2ad626fSUlf Hansson 			BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_MM_2_VDEC0_2ND,
404*e2ad626fSUlf Hansson 				    MT8195_TOP_AXI_PROT_EN_MM_2_SET,
405*e2ad626fSUlf Hansson 				    MT8195_TOP_AXI_PROT_EN_MM_2_CLR,
406*e2ad626fSUlf Hansson 				    MT8195_TOP_AXI_PROT_EN_MM_2_STA1),
407*e2ad626fSUlf Hansson 		},
408*e2ad626fSUlf Hansson 		.caps = MTK_SCPD_KEEP_DEFAULT_OFF,
409*e2ad626fSUlf Hansson 	},
410*e2ad626fSUlf Hansson 	[MT8195_POWER_DOMAIN_VDEC1] = {
411*e2ad626fSUlf Hansson 		.name = "vdec1",
412*e2ad626fSUlf Hansson 		.sta_mask = BIT(21),
413*e2ad626fSUlf Hansson 		.ctl_offs = 0x38C,
414*e2ad626fSUlf Hansson 		.pwr_sta_offs = 0x16c,
415*e2ad626fSUlf Hansson 		.pwr_sta2nd_offs = 0x170,
416*e2ad626fSUlf Hansson 		.sram_pdn_bits = GENMASK(8, 8),
417*e2ad626fSUlf Hansson 		.sram_pdn_ack_bits = GENMASK(12, 12),
418*e2ad626fSUlf Hansson 		.bp_infracfg = {
419*e2ad626fSUlf Hansson 			BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_MM_VDEC1,
420*e2ad626fSUlf Hansson 				    MT8195_TOP_AXI_PROT_EN_MM_SET,
421*e2ad626fSUlf Hansson 				    MT8195_TOP_AXI_PROT_EN_MM_CLR,
422*e2ad626fSUlf Hansson 				    MT8195_TOP_AXI_PROT_EN_MM_STA1),
423*e2ad626fSUlf Hansson 			BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_MM_VDEC1_2ND,
424*e2ad626fSUlf Hansson 				    MT8195_TOP_AXI_PROT_EN_MM_SET,
425*e2ad626fSUlf Hansson 				    MT8195_TOP_AXI_PROT_EN_MM_CLR,
426*e2ad626fSUlf Hansson 				    MT8195_TOP_AXI_PROT_EN_MM_STA1),
427*e2ad626fSUlf Hansson 		},
428*e2ad626fSUlf Hansson 		.caps = MTK_SCPD_KEEP_DEFAULT_OFF,
429*e2ad626fSUlf Hansson 	},
430*e2ad626fSUlf Hansson 	[MT8195_POWER_DOMAIN_VDEC2] = {
431*e2ad626fSUlf Hansson 		.name = "vdec2",
432*e2ad626fSUlf Hansson 		.sta_mask = BIT(22),
433*e2ad626fSUlf Hansson 		.ctl_offs = 0x390,
434*e2ad626fSUlf Hansson 		.pwr_sta_offs = 0x16c,
435*e2ad626fSUlf Hansson 		.pwr_sta2nd_offs = 0x170,
436*e2ad626fSUlf Hansson 		.sram_pdn_bits = GENMASK(8, 8),
437*e2ad626fSUlf Hansson 		.sram_pdn_ack_bits = GENMASK(12, 12),
438*e2ad626fSUlf Hansson 		.bp_infracfg = {
439*e2ad626fSUlf Hansson 			BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_MM_2_VDEC2,
440*e2ad626fSUlf Hansson 				    MT8195_TOP_AXI_PROT_EN_MM_2_SET,
441*e2ad626fSUlf Hansson 				    MT8195_TOP_AXI_PROT_EN_MM_2_CLR,
442*e2ad626fSUlf Hansson 				    MT8195_TOP_AXI_PROT_EN_MM_2_STA1),
443*e2ad626fSUlf Hansson 			BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_MM_2_VDEC2_2ND,
444*e2ad626fSUlf Hansson 				    MT8195_TOP_AXI_PROT_EN_MM_2_SET,
445*e2ad626fSUlf Hansson 				    MT8195_TOP_AXI_PROT_EN_MM_2_CLR,
446*e2ad626fSUlf Hansson 				    MT8195_TOP_AXI_PROT_EN_MM_2_STA1),
447*e2ad626fSUlf Hansson 		},
448*e2ad626fSUlf Hansson 		.caps = MTK_SCPD_KEEP_DEFAULT_OFF,
449*e2ad626fSUlf Hansson 	},
450*e2ad626fSUlf Hansson 	[MT8195_POWER_DOMAIN_VENC] = {
451*e2ad626fSUlf Hansson 		.name = "venc",
452*e2ad626fSUlf Hansson 		.sta_mask = BIT(23),
453*e2ad626fSUlf Hansson 		.ctl_offs = 0x394,
454*e2ad626fSUlf Hansson 		.pwr_sta_offs = 0x16c,
455*e2ad626fSUlf Hansson 		.pwr_sta2nd_offs = 0x170,
456*e2ad626fSUlf Hansson 		.sram_pdn_bits = GENMASK(8, 8),
457*e2ad626fSUlf Hansson 		.sram_pdn_ack_bits = GENMASK(12, 12),
458*e2ad626fSUlf Hansson 		.bp_infracfg = {
459*e2ad626fSUlf Hansson 			BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_MM_VENC,
460*e2ad626fSUlf Hansson 				    MT8195_TOP_AXI_PROT_EN_MM_SET,
461*e2ad626fSUlf Hansson 				    MT8195_TOP_AXI_PROT_EN_MM_CLR,
462*e2ad626fSUlf Hansson 				    MT8195_TOP_AXI_PROT_EN_MM_STA1),
463*e2ad626fSUlf Hansson 			BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_MM_VENC_2ND,
464*e2ad626fSUlf Hansson 				    MT8195_TOP_AXI_PROT_EN_MM_SET,
465*e2ad626fSUlf Hansson 				    MT8195_TOP_AXI_PROT_EN_MM_CLR,
466*e2ad626fSUlf Hansson 				    MT8195_TOP_AXI_PROT_EN_MM_STA1),
467*e2ad626fSUlf Hansson 			BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_MM_2_VENC,
468*e2ad626fSUlf Hansson 				    MT8195_TOP_AXI_PROT_EN_MM_2_SET,
469*e2ad626fSUlf Hansson 				    MT8195_TOP_AXI_PROT_EN_MM_2_CLR,
470*e2ad626fSUlf Hansson 				    MT8195_TOP_AXI_PROT_EN_MM_2_STA1),
471*e2ad626fSUlf Hansson 		},
472*e2ad626fSUlf Hansson 		.caps = MTK_SCPD_KEEP_DEFAULT_OFF,
473*e2ad626fSUlf Hansson 	},
474*e2ad626fSUlf Hansson 	[MT8195_POWER_DOMAIN_VENC_CORE1] = {
475*e2ad626fSUlf Hansson 		.name = "venc_core1",
476*e2ad626fSUlf Hansson 		.sta_mask = BIT(24),
477*e2ad626fSUlf Hansson 		.ctl_offs = 0x398,
478*e2ad626fSUlf Hansson 		.pwr_sta_offs = 0x16c,
479*e2ad626fSUlf Hansson 		.pwr_sta2nd_offs = 0x170,
480*e2ad626fSUlf Hansson 		.sram_pdn_bits = GENMASK(8, 8),
481*e2ad626fSUlf Hansson 		.sram_pdn_ack_bits = GENMASK(12, 12),
482*e2ad626fSUlf Hansson 		.bp_infracfg = {
483*e2ad626fSUlf Hansson 			BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_MM_VENC_CORE1,
484*e2ad626fSUlf Hansson 				    MT8195_TOP_AXI_PROT_EN_MM_SET,
485*e2ad626fSUlf Hansson 				    MT8195_TOP_AXI_PROT_EN_MM_CLR,
486*e2ad626fSUlf Hansson 				    MT8195_TOP_AXI_PROT_EN_MM_STA1),
487*e2ad626fSUlf Hansson 			BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_MM_2_VENC_CORE1,
488*e2ad626fSUlf Hansson 				    MT8195_TOP_AXI_PROT_EN_MM_2_SET,
489*e2ad626fSUlf Hansson 				    MT8195_TOP_AXI_PROT_EN_MM_2_CLR,
490*e2ad626fSUlf Hansson 				    MT8195_TOP_AXI_PROT_EN_MM_2_STA1),
491*e2ad626fSUlf Hansson 		},
492*e2ad626fSUlf Hansson 		.caps = MTK_SCPD_KEEP_DEFAULT_OFF,
493*e2ad626fSUlf Hansson 	},
494*e2ad626fSUlf Hansson 	[MT8195_POWER_DOMAIN_IMG] = {
495*e2ad626fSUlf Hansson 		.name = "img",
496*e2ad626fSUlf Hansson 		.sta_mask = BIT(29),
497*e2ad626fSUlf Hansson 		.ctl_offs = 0x3AC,
498*e2ad626fSUlf Hansson 		.pwr_sta_offs = 0x16c,
499*e2ad626fSUlf Hansson 		.pwr_sta2nd_offs = 0x170,
500*e2ad626fSUlf Hansson 		.sram_pdn_bits = GENMASK(8, 8),
501*e2ad626fSUlf Hansson 		.sram_pdn_ack_bits = GENMASK(12, 12),
502*e2ad626fSUlf Hansson 		.bp_infracfg = {
503*e2ad626fSUlf Hansson 			BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_MM_IMG,
504*e2ad626fSUlf Hansson 				    MT8195_TOP_AXI_PROT_EN_MM_SET,
505*e2ad626fSUlf Hansson 				    MT8195_TOP_AXI_PROT_EN_MM_CLR,
506*e2ad626fSUlf Hansson 				    MT8195_TOP_AXI_PROT_EN_MM_STA1),
507*e2ad626fSUlf Hansson 			BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_MM_IMG_2ND,
508*e2ad626fSUlf Hansson 				    MT8195_TOP_AXI_PROT_EN_MM_SET,
509*e2ad626fSUlf Hansson 				    MT8195_TOP_AXI_PROT_EN_MM_CLR,
510*e2ad626fSUlf Hansson 				    MT8195_TOP_AXI_PROT_EN_MM_STA1),
511*e2ad626fSUlf Hansson 		},
512*e2ad626fSUlf Hansson 		.caps = MTK_SCPD_KEEP_DEFAULT_OFF,
513*e2ad626fSUlf Hansson 	},
514*e2ad626fSUlf Hansson 	[MT8195_POWER_DOMAIN_DIP] = {
515*e2ad626fSUlf Hansson 		.name = "dip",
516*e2ad626fSUlf Hansson 		.sta_mask = BIT(30),
517*e2ad626fSUlf Hansson 		.ctl_offs = 0x3B0,
518*e2ad626fSUlf Hansson 		.pwr_sta_offs = 0x16c,
519*e2ad626fSUlf Hansson 		.pwr_sta2nd_offs = 0x170,
520*e2ad626fSUlf Hansson 		.sram_pdn_bits = GENMASK(8, 8),
521*e2ad626fSUlf Hansson 		.sram_pdn_ack_bits = GENMASK(12, 12),
522*e2ad626fSUlf Hansson 		.caps = MTK_SCPD_KEEP_DEFAULT_OFF,
523*e2ad626fSUlf Hansson 	},
524*e2ad626fSUlf Hansson 	[MT8195_POWER_DOMAIN_IPE] = {
525*e2ad626fSUlf Hansson 		.name = "ipe",
526*e2ad626fSUlf Hansson 		.sta_mask = BIT(31),
527*e2ad626fSUlf Hansson 		.ctl_offs = 0x3B4,
528*e2ad626fSUlf Hansson 		.pwr_sta_offs = 0x16c,
529*e2ad626fSUlf Hansson 		.pwr_sta2nd_offs = 0x170,
530*e2ad626fSUlf Hansson 		.sram_pdn_bits = GENMASK(8, 8),
531*e2ad626fSUlf Hansson 		.sram_pdn_ack_bits = GENMASK(12, 12),
532*e2ad626fSUlf Hansson 		.bp_infracfg = {
533*e2ad626fSUlf Hansson 			BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_MM_IPE,
534*e2ad626fSUlf Hansson 				    MT8195_TOP_AXI_PROT_EN_MM_SET,
535*e2ad626fSUlf Hansson 				    MT8195_TOP_AXI_PROT_EN_MM_CLR,
536*e2ad626fSUlf Hansson 				    MT8195_TOP_AXI_PROT_EN_MM_STA1),
537*e2ad626fSUlf Hansson 			BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_MM_2_IPE,
538*e2ad626fSUlf Hansson 				    MT8195_TOP_AXI_PROT_EN_MM_2_SET,
539*e2ad626fSUlf Hansson 				    MT8195_TOP_AXI_PROT_EN_MM_2_CLR,
540*e2ad626fSUlf Hansson 				    MT8195_TOP_AXI_PROT_EN_MM_2_STA1),
541*e2ad626fSUlf Hansson 		},
542*e2ad626fSUlf Hansson 		.caps = MTK_SCPD_KEEP_DEFAULT_OFF,
543*e2ad626fSUlf Hansson 	},
544*e2ad626fSUlf Hansson 	[MT8195_POWER_DOMAIN_CAM] = {
545*e2ad626fSUlf Hansson 		.name = "cam",
546*e2ad626fSUlf Hansson 		.sta_mask = BIT(25),
547*e2ad626fSUlf Hansson 		.ctl_offs = 0x39C,
548*e2ad626fSUlf Hansson 		.pwr_sta_offs = 0x16c,
549*e2ad626fSUlf Hansson 		.pwr_sta2nd_offs = 0x170,
550*e2ad626fSUlf Hansson 		.sram_pdn_bits = GENMASK(8, 8),
551*e2ad626fSUlf Hansson 		.sram_pdn_ack_bits = GENMASK(12, 12),
552*e2ad626fSUlf Hansson 		.bp_infracfg = {
553*e2ad626fSUlf Hansson 			BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_2_CAM,
554*e2ad626fSUlf Hansson 				    MT8195_TOP_AXI_PROT_EN_2_SET,
555*e2ad626fSUlf Hansson 				    MT8195_TOP_AXI_PROT_EN_2_CLR,
556*e2ad626fSUlf Hansson 				    MT8195_TOP_AXI_PROT_EN_2_STA1),
557*e2ad626fSUlf Hansson 			BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_MM_CAM,
558*e2ad626fSUlf Hansson 				    MT8195_TOP_AXI_PROT_EN_MM_SET,
559*e2ad626fSUlf Hansson 				    MT8195_TOP_AXI_PROT_EN_MM_CLR,
560*e2ad626fSUlf Hansson 				    MT8195_TOP_AXI_PROT_EN_MM_STA1),
561*e2ad626fSUlf Hansson 			BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_1_CAM,
562*e2ad626fSUlf Hansson 				    MT8195_TOP_AXI_PROT_EN_1_SET,
563*e2ad626fSUlf Hansson 				    MT8195_TOP_AXI_PROT_EN_1_CLR,
564*e2ad626fSUlf Hansson 				    MT8195_TOP_AXI_PROT_EN_1_STA1),
565*e2ad626fSUlf Hansson 			BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_MM_CAM_2ND,
566*e2ad626fSUlf Hansson 				    MT8195_TOP_AXI_PROT_EN_MM_SET,
567*e2ad626fSUlf Hansson 				    MT8195_TOP_AXI_PROT_EN_MM_CLR,
568*e2ad626fSUlf Hansson 				    MT8195_TOP_AXI_PROT_EN_MM_STA1),
569*e2ad626fSUlf Hansson 			BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_MM_2_CAM,
570*e2ad626fSUlf Hansson 				    MT8195_TOP_AXI_PROT_EN_MM_2_SET,
571*e2ad626fSUlf Hansson 				    MT8195_TOP_AXI_PROT_EN_MM_2_CLR,
572*e2ad626fSUlf Hansson 				    MT8195_TOP_AXI_PROT_EN_MM_2_STA1),
573*e2ad626fSUlf Hansson 		},
574*e2ad626fSUlf Hansson 		.caps = MTK_SCPD_KEEP_DEFAULT_OFF,
575*e2ad626fSUlf Hansson 	},
576*e2ad626fSUlf Hansson 	[MT8195_POWER_DOMAIN_CAM_RAWA] = {
577*e2ad626fSUlf Hansson 		.name = "cam_rawa",
578*e2ad626fSUlf Hansson 		.sta_mask = BIT(26),
579*e2ad626fSUlf Hansson 		.ctl_offs = 0x3A0,
580*e2ad626fSUlf Hansson 		.pwr_sta_offs = 0x16c,
581*e2ad626fSUlf Hansson 		.pwr_sta2nd_offs = 0x170,
582*e2ad626fSUlf Hansson 		.sram_pdn_bits = GENMASK(8, 8),
583*e2ad626fSUlf Hansson 		.sram_pdn_ack_bits = GENMASK(12, 12),
584*e2ad626fSUlf Hansson 		.caps = MTK_SCPD_KEEP_DEFAULT_OFF,
585*e2ad626fSUlf Hansson 	},
586*e2ad626fSUlf Hansson 	[MT8195_POWER_DOMAIN_CAM_RAWB] = {
587*e2ad626fSUlf Hansson 		.name = "cam_rawb",
588*e2ad626fSUlf Hansson 		.sta_mask = BIT(27),
589*e2ad626fSUlf Hansson 		.ctl_offs = 0x3A4,
590*e2ad626fSUlf Hansson 		.pwr_sta_offs = 0x16c,
591*e2ad626fSUlf Hansson 		.pwr_sta2nd_offs = 0x170,
592*e2ad626fSUlf Hansson 		.sram_pdn_bits = GENMASK(8, 8),
593*e2ad626fSUlf Hansson 		.sram_pdn_ack_bits = GENMASK(12, 12),
594*e2ad626fSUlf Hansson 		.caps = MTK_SCPD_KEEP_DEFAULT_OFF,
595*e2ad626fSUlf Hansson 	},
596*e2ad626fSUlf Hansson 	[MT8195_POWER_DOMAIN_CAM_MRAW] = {
597*e2ad626fSUlf Hansson 		.name = "cam_mraw",
598*e2ad626fSUlf Hansson 		.sta_mask = BIT(28),
599*e2ad626fSUlf Hansson 		.ctl_offs = 0x3A8,
600*e2ad626fSUlf Hansson 		.pwr_sta_offs = 0x16c,
601*e2ad626fSUlf Hansson 		.pwr_sta2nd_offs = 0x170,
602*e2ad626fSUlf Hansson 		.sram_pdn_bits = GENMASK(8, 8),
603*e2ad626fSUlf Hansson 		.sram_pdn_ack_bits = GENMASK(12, 12),
604*e2ad626fSUlf Hansson 		.caps = MTK_SCPD_KEEP_DEFAULT_OFF,
605*e2ad626fSUlf Hansson 	},
606*e2ad626fSUlf Hansson };
607*e2ad626fSUlf Hansson 
608*e2ad626fSUlf Hansson static const struct scpsys_soc_data mt8195_scpsys_data = {
609*e2ad626fSUlf Hansson 	.domains_data = scpsys_domain_data_mt8195,
610*e2ad626fSUlf Hansson 	.num_domains = ARRAY_SIZE(scpsys_domain_data_mt8195),
611*e2ad626fSUlf Hansson };
612*e2ad626fSUlf Hansson 
613*e2ad626fSUlf Hansson #endif /* __SOC_MEDIATEK_MT8195_PM_DOMAINS_H */
614