xref: /openbmc/linux/drivers/pmdomain/mediatek/mt8186-pm-domains.h (revision 5804c19b80bf625c6a9925317f845e497434d6d3)
1*e2ad626fSUlf Hansson /* SPDX-License-Identifier: GPL-2.0-only */
2*e2ad626fSUlf Hansson /*
3*e2ad626fSUlf Hansson  * Copyright (c) 2022 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_MT8186_PM_DOMAINS_H
8*e2ad626fSUlf Hansson #define __SOC_MEDIATEK_MT8186_PM_DOMAINS_H
9*e2ad626fSUlf Hansson 
10*e2ad626fSUlf Hansson #include "mtk-pm-domains.h"
11*e2ad626fSUlf Hansson #include <dt-bindings/power/mt8186-power.h>
12*e2ad626fSUlf Hansson 
13*e2ad626fSUlf Hansson /*
14*e2ad626fSUlf Hansson  * MT8186 power domain support
15*e2ad626fSUlf Hansson  */
16*e2ad626fSUlf Hansson 
17*e2ad626fSUlf Hansson static const struct scpsys_domain_data scpsys_domain_data_mt8186[] = {
18*e2ad626fSUlf Hansson 	[MT8186_POWER_DOMAIN_MFG0] = {
19*e2ad626fSUlf Hansson 		.name = "mfg0",
20*e2ad626fSUlf Hansson 		.sta_mask = BIT(2),
21*e2ad626fSUlf Hansson 		.ctl_offs = 0x308,
22*e2ad626fSUlf Hansson 		.pwr_sta_offs = 0x16C,
23*e2ad626fSUlf Hansson 		.pwr_sta2nd_offs = 0x170,
24*e2ad626fSUlf Hansson 		.sram_pdn_bits = BIT(8),
25*e2ad626fSUlf Hansson 		.sram_pdn_ack_bits = BIT(12),
26*e2ad626fSUlf Hansson 		.caps = MTK_SCPD_KEEP_DEFAULT_OFF | MTK_SCPD_DOMAIN_SUPPLY,
27*e2ad626fSUlf Hansson 	},
28*e2ad626fSUlf Hansson 	[MT8186_POWER_DOMAIN_MFG1] = {
29*e2ad626fSUlf Hansson 		.name = "mfg1",
30*e2ad626fSUlf Hansson 		.sta_mask = BIT(3),
31*e2ad626fSUlf Hansson 		.ctl_offs = 0x30c,
32*e2ad626fSUlf Hansson 		.pwr_sta_offs = 0x16C,
33*e2ad626fSUlf Hansson 		.pwr_sta2nd_offs = 0x170,
34*e2ad626fSUlf Hansson 		.sram_pdn_bits = BIT(8),
35*e2ad626fSUlf Hansson 		.sram_pdn_ack_bits = BIT(12),
36*e2ad626fSUlf Hansson 		.bp_infracfg = {
37*e2ad626fSUlf Hansson 			BUS_PROT_WR_IGN(MT8186_TOP_AXI_PROT_EN_1_MFG1_STEP1,
38*e2ad626fSUlf Hansson 				MT8186_TOP_AXI_PROT_EN_1_SET,
39*e2ad626fSUlf Hansson 				MT8186_TOP_AXI_PROT_EN_1_CLR,
40*e2ad626fSUlf Hansson 				MT8186_TOP_AXI_PROT_EN_1_STA),
41*e2ad626fSUlf Hansson 			BUS_PROT_WR_IGN(MT8186_TOP_AXI_PROT_EN_MFG1_STEP2,
42*e2ad626fSUlf Hansson 				MT8186_TOP_AXI_PROT_EN_SET,
43*e2ad626fSUlf Hansson 				MT8186_TOP_AXI_PROT_EN_CLR,
44*e2ad626fSUlf Hansson 				MT8186_TOP_AXI_PROT_EN_STA),
45*e2ad626fSUlf Hansson 			BUS_PROT_WR_IGN(MT8186_TOP_AXI_PROT_EN_MFG1_STEP3,
46*e2ad626fSUlf Hansson 				MT8186_TOP_AXI_PROT_EN_SET,
47*e2ad626fSUlf Hansson 				MT8186_TOP_AXI_PROT_EN_CLR,
48*e2ad626fSUlf Hansson 				MT8186_TOP_AXI_PROT_EN_STA),
49*e2ad626fSUlf Hansson 			BUS_PROT_WR_IGN(MT8186_TOP_AXI_PROT_EN_1_MFG1_STEP4,
50*e2ad626fSUlf Hansson 				MT8186_TOP_AXI_PROT_EN_1_SET,
51*e2ad626fSUlf Hansson 				MT8186_TOP_AXI_PROT_EN_1_CLR,
52*e2ad626fSUlf Hansson 				MT8186_TOP_AXI_PROT_EN_1_STA),
53*e2ad626fSUlf Hansson 		},
54*e2ad626fSUlf Hansson 		.caps = MTK_SCPD_KEEP_DEFAULT_OFF | MTK_SCPD_DOMAIN_SUPPLY,
55*e2ad626fSUlf Hansson 	},
56*e2ad626fSUlf Hansson 	[MT8186_POWER_DOMAIN_MFG2] = {
57*e2ad626fSUlf Hansson 		.name = "mfg2",
58*e2ad626fSUlf Hansson 		.sta_mask = BIT(4),
59*e2ad626fSUlf Hansson 		.ctl_offs = 0x310,
60*e2ad626fSUlf Hansson 		.pwr_sta_offs = 0x16C,
61*e2ad626fSUlf Hansson 		.pwr_sta2nd_offs = 0x170,
62*e2ad626fSUlf Hansson 		.sram_pdn_bits = BIT(8),
63*e2ad626fSUlf Hansson 		.sram_pdn_ack_bits = BIT(12),
64*e2ad626fSUlf Hansson 		.caps = MTK_SCPD_KEEP_DEFAULT_OFF,
65*e2ad626fSUlf Hansson 	},
66*e2ad626fSUlf Hansson 	[MT8186_POWER_DOMAIN_MFG3] = {
67*e2ad626fSUlf Hansson 		.name = "mfg3",
68*e2ad626fSUlf Hansson 		.sta_mask = BIT(5),
69*e2ad626fSUlf Hansson 		.ctl_offs = 0x314,
70*e2ad626fSUlf Hansson 		.pwr_sta_offs = 0x16C,
71*e2ad626fSUlf Hansson 		.pwr_sta2nd_offs = 0x170,
72*e2ad626fSUlf Hansson 		.sram_pdn_bits = BIT(8),
73*e2ad626fSUlf Hansson 		.sram_pdn_ack_bits = BIT(12),
74*e2ad626fSUlf Hansson 		.caps = MTK_SCPD_KEEP_DEFAULT_OFF,
75*e2ad626fSUlf Hansson 	},
76*e2ad626fSUlf Hansson 	[MT8186_POWER_DOMAIN_SSUSB] = {
77*e2ad626fSUlf Hansson 		.name = "ssusb",
78*e2ad626fSUlf Hansson 		.sta_mask = BIT(20),
79*e2ad626fSUlf Hansson 		.ctl_offs = 0x9F0,
80*e2ad626fSUlf Hansson 		.pwr_sta_offs = 0x16C,
81*e2ad626fSUlf Hansson 		.pwr_sta2nd_offs = 0x170,
82*e2ad626fSUlf Hansson 		.sram_pdn_bits = BIT(8),
83*e2ad626fSUlf Hansson 		.sram_pdn_ack_bits = BIT(12),
84*e2ad626fSUlf Hansson 		.caps = MTK_SCPD_ACTIVE_WAKEUP,
85*e2ad626fSUlf Hansson 	},
86*e2ad626fSUlf Hansson 	[MT8186_POWER_DOMAIN_SSUSB_P1] = {
87*e2ad626fSUlf Hansson 		.name = "ssusb_p1",
88*e2ad626fSUlf Hansson 		.sta_mask = BIT(19),
89*e2ad626fSUlf Hansson 		.ctl_offs = 0x9F4,
90*e2ad626fSUlf Hansson 		.pwr_sta_offs = 0x16C,
91*e2ad626fSUlf Hansson 		.pwr_sta2nd_offs = 0x170,
92*e2ad626fSUlf Hansson 		.sram_pdn_bits = BIT(8),
93*e2ad626fSUlf Hansson 		.sram_pdn_ack_bits = BIT(12),
94*e2ad626fSUlf Hansson 		.caps = MTK_SCPD_ACTIVE_WAKEUP,
95*e2ad626fSUlf Hansson 	},
96*e2ad626fSUlf Hansson 	[MT8186_POWER_DOMAIN_DIS] = {
97*e2ad626fSUlf Hansson 		.name = "dis",
98*e2ad626fSUlf Hansson 		.sta_mask = BIT(21),
99*e2ad626fSUlf Hansson 		.ctl_offs = 0x354,
100*e2ad626fSUlf Hansson 		.pwr_sta_offs = 0x16C,
101*e2ad626fSUlf Hansson 		.pwr_sta2nd_offs = 0x170,
102*e2ad626fSUlf Hansson 		.sram_pdn_bits = BIT(8),
103*e2ad626fSUlf Hansson 		.sram_pdn_ack_bits = BIT(12),
104*e2ad626fSUlf Hansson 		.bp_infracfg = {
105*e2ad626fSUlf Hansson 			BUS_PROT_WR_IGN(MT8186_TOP_AXI_PROT_EN_1_DIS_STEP1,
106*e2ad626fSUlf Hansson 				MT8186_TOP_AXI_PROT_EN_1_SET,
107*e2ad626fSUlf Hansson 				MT8186_TOP_AXI_PROT_EN_1_CLR,
108*e2ad626fSUlf Hansson 				MT8186_TOP_AXI_PROT_EN_1_STA),
109*e2ad626fSUlf Hansson 			BUS_PROT_WR_IGN(MT8186_TOP_AXI_PROT_EN_DIS_STEP2,
110*e2ad626fSUlf Hansson 				MT8186_TOP_AXI_PROT_EN_SET,
111*e2ad626fSUlf Hansson 				MT8186_TOP_AXI_PROT_EN_CLR,
112*e2ad626fSUlf Hansson 				MT8186_TOP_AXI_PROT_EN_STA),
113*e2ad626fSUlf Hansson 		},
114*e2ad626fSUlf Hansson 	},
115*e2ad626fSUlf Hansson 	[MT8186_POWER_DOMAIN_IMG] = {
116*e2ad626fSUlf Hansson 		.name = "img",
117*e2ad626fSUlf Hansson 		.sta_mask = BIT(13),
118*e2ad626fSUlf Hansson 		.ctl_offs = 0x334,
119*e2ad626fSUlf Hansson 		.pwr_sta_offs = 0x16C,
120*e2ad626fSUlf Hansson 		.pwr_sta2nd_offs = 0x170,
121*e2ad626fSUlf Hansson 		.sram_pdn_bits = BIT(8),
122*e2ad626fSUlf Hansson 		.sram_pdn_ack_bits = BIT(12),
123*e2ad626fSUlf Hansson 		.bp_infracfg = {
124*e2ad626fSUlf Hansson 			BUS_PROT_WR_IGN(MT8186_TOP_AXI_PROT_EN_1_IMG_STEP1,
125*e2ad626fSUlf Hansson 				MT8186_TOP_AXI_PROT_EN_1_SET,
126*e2ad626fSUlf Hansson 				MT8186_TOP_AXI_PROT_EN_1_CLR,
127*e2ad626fSUlf Hansson 				MT8186_TOP_AXI_PROT_EN_1_STA),
128*e2ad626fSUlf Hansson 			BUS_PROT_WR_IGN(MT8186_TOP_AXI_PROT_EN_1_IMG_STEP2,
129*e2ad626fSUlf Hansson 				MT8186_TOP_AXI_PROT_EN_1_SET,
130*e2ad626fSUlf Hansson 				MT8186_TOP_AXI_PROT_EN_1_CLR,
131*e2ad626fSUlf Hansson 				MT8186_TOP_AXI_PROT_EN_1_STA),
132*e2ad626fSUlf Hansson 		},
133*e2ad626fSUlf Hansson 		.caps = MTK_SCPD_KEEP_DEFAULT_OFF,
134*e2ad626fSUlf Hansson 	},
135*e2ad626fSUlf Hansson 	[MT8186_POWER_DOMAIN_IMG2] = {
136*e2ad626fSUlf Hansson 		.name = "img2",
137*e2ad626fSUlf Hansson 		.sta_mask = BIT(14),
138*e2ad626fSUlf Hansson 		.ctl_offs = 0x338,
139*e2ad626fSUlf Hansson 		.pwr_sta_offs = 0x16C,
140*e2ad626fSUlf Hansson 		.pwr_sta2nd_offs = 0x170,
141*e2ad626fSUlf Hansson 		.sram_pdn_bits = BIT(8),
142*e2ad626fSUlf Hansson 		.sram_pdn_ack_bits = BIT(12),
143*e2ad626fSUlf Hansson 		.caps = MTK_SCPD_KEEP_DEFAULT_OFF,
144*e2ad626fSUlf Hansson 	},
145*e2ad626fSUlf Hansson 	[MT8186_POWER_DOMAIN_IPE] = {
146*e2ad626fSUlf Hansson 		.name = "ipe",
147*e2ad626fSUlf Hansson 		.sta_mask = BIT(15),
148*e2ad626fSUlf Hansson 		.ctl_offs = 0x33C,
149*e2ad626fSUlf Hansson 		.pwr_sta_offs = 0x16C,
150*e2ad626fSUlf Hansson 		.pwr_sta2nd_offs = 0x170,
151*e2ad626fSUlf Hansson 		.sram_pdn_bits = BIT(8),
152*e2ad626fSUlf Hansson 		.sram_pdn_ack_bits = BIT(12),
153*e2ad626fSUlf Hansson 		.bp_infracfg = {
154*e2ad626fSUlf Hansson 			BUS_PROT_WR_IGN(MT8186_TOP_AXI_PROT_EN_1_IPE_STEP1,
155*e2ad626fSUlf Hansson 				MT8186_TOP_AXI_PROT_EN_1_SET,
156*e2ad626fSUlf Hansson 				MT8186_TOP_AXI_PROT_EN_1_CLR,
157*e2ad626fSUlf Hansson 				MT8186_TOP_AXI_PROT_EN_1_STA),
158*e2ad626fSUlf Hansson 			BUS_PROT_WR_IGN(MT8186_TOP_AXI_PROT_EN_1_IPE_STEP2,
159*e2ad626fSUlf Hansson 				MT8186_TOP_AXI_PROT_EN_1_SET,
160*e2ad626fSUlf Hansson 				MT8186_TOP_AXI_PROT_EN_1_CLR,
161*e2ad626fSUlf Hansson 				MT8186_TOP_AXI_PROT_EN_1_STA),
162*e2ad626fSUlf Hansson 		},
163*e2ad626fSUlf Hansson 		.caps = MTK_SCPD_KEEP_DEFAULT_OFF,
164*e2ad626fSUlf Hansson 	},
165*e2ad626fSUlf Hansson 	[MT8186_POWER_DOMAIN_CAM] = {
166*e2ad626fSUlf Hansson 		.name = "cam",
167*e2ad626fSUlf Hansson 		.sta_mask = BIT(23),
168*e2ad626fSUlf Hansson 		.ctl_offs = 0x35C,
169*e2ad626fSUlf Hansson 		.pwr_sta_offs = 0x16C,
170*e2ad626fSUlf Hansson 		.pwr_sta2nd_offs = 0x170,
171*e2ad626fSUlf Hansson 		.sram_pdn_bits = BIT(8),
172*e2ad626fSUlf Hansson 		.sram_pdn_ack_bits = BIT(12),
173*e2ad626fSUlf Hansson 		.bp_infracfg = {
174*e2ad626fSUlf Hansson 			BUS_PROT_WR_IGN(MT8186_TOP_AXI_PROT_EN_1_CAM_STEP1,
175*e2ad626fSUlf Hansson 				MT8186_TOP_AXI_PROT_EN_1_SET,
176*e2ad626fSUlf Hansson 				MT8186_TOP_AXI_PROT_EN_1_CLR,
177*e2ad626fSUlf Hansson 				MT8186_TOP_AXI_PROT_EN_1_STA),
178*e2ad626fSUlf Hansson 			BUS_PROT_WR_IGN(MT8186_TOP_AXI_PROT_EN_1_CAM_STEP2,
179*e2ad626fSUlf Hansson 				MT8186_TOP_AXI_PROT_EN_1_SET,
180*e2ad626fSUlf Hansson 				MT8186_TOP_AXI_PROT_EN_1_CLR,
181*e2ad626fSUlf Hansson 				MT8186_TOP_AXI_PROT_EN_1_STA),
182*e2ad626fSUlf Hansson 		},
183*e2ad626fSUlf Hansson 		.caps = MTK_SCPD_KEEP_DEFAULT_OFF,
184*e2ad626fSUlf Hansson 	},
185*e2ad626fSUlf Hansson 	[MT8186_POWER_DOMAIN_CAM_RAWA] = {
186*e2ad626fSUlf Hansson 		.name = "cam_rawa",
187*e2ad626fSUlf Hansson 		.sta_mask = BIT(24),
188*e2ad626fSUlf Hansson 		.ctl_offs = 0x360,
189*e2ad626fSUlf Hansson 		.pwr_sta_offs = 0x16C,
190*e2ad626fSUlf Hansson 		.pwr_sta2nd_offs = 0x170,
191*e2ad626fSUlf Hansson 		.sram_pdn_bits = BIT(8),
192*e2ad626fSUlf Hansson 		.sram_pdn_ack_bits = BIT(12),
193*e2ad626fSUlf Hansson 		.caps = MTK_SCPD_KEEP_DEFAULT_OFF,
194*e2ad626fSUlf Hansson 	},
195*e2ad626fSUlf Hansson 	[MT8186_POWER_DOMAIN_CAM_RAWB] = {
196*e2ad626fSUlf Hansson 		.name = "cam_rawb",
197*e2ad626fSUlf Hansson 		.sta_mask = BIT(25),
198*e2ad626fSUlf Hansson 		.ctl_offs = 0x364,
199*e2ad626fSUlf Hansson 		.pwr_sta_offs = 0x16C,
200*e2ad626fSUlf Hansson 		.pwr_sta2nd_offs = 0x170,
201*e2ad626fSUlf Hansson 		.sram_pdn_bits = BIT(8),
202*e2ad626fSUlf Hansson 		.sram_pdn_ack_bits = BIT(12),
203*e2ad626fSUlf Hansson 		.caps = MTK_SCPD_KEEP_DEFAULT_OFF,
204*e2ad626fSUlf Hansson 	},
205*e2ad626fSUlf Hansson 	[MT8186_POWER_DOMAIN_VENC] = {
206*e2ad626fSUlf Hansson 		.name = "venc",
207*e2ad626fSUlf Hansson 		.sta_mask = BIT(18),
208*e2ad626fSUlf Hansson 		.ctl_offs = 0x348,
209*e2ad626fSUlf Hansson 		.pwr_sta_offs = 0x16C,
210*e2ad626fSUlf Hansson 		.pwr_sta2nd_offs = 0x170,
211*e2ad626fSUlf Hansson 		.sram_pdn_bits = BIT(8),
212*e2ad626fSUlf Hansson 		.sram_pdn_ack_bits = BIT(12),
213*e2ad626fSUlf Hansson 		.bp_infracfg = {
214*e2ad626fSUlf Hansson 			BUS_PROT_WR_IGN(MT8186_TOP_AXI_PROT_EN_1_VENC_STEP1,
215*e2ad626fSUlf Hansson 				MT8186_TOP_AXI_PROT_EN_1_SET,
216*e2ad626fSUlf Hansson 				MT8186_TOP_AXI_PROT_EN_1_CLR,
217*e2ad626fSUlf Hansson 				MT8186_TOP_AXI_PROT_EN_1_STA),
218*e2ad626fSUlf Hansson 			BUS_PROT_WR_IGN(MT8186_TOP_AXI_PROT_EN_1_VENC_STEP2,
219*e2ad626fSUlf Hansson 				MT8186_TOP_AXI_PROT_EN_1_SET,
220*e2ad626fSUlf Hansson 				MT8186_TOP_AXI_PROT_EN_1_CLR,
221*e2ad626fSUlf Hansson 				MT8186_TOP_AXI_PROT_EN_1_STA),
222*e2ad626fSUlf Hansson 		},
223*e2ad626fSUlf Hansson 		.caps = MTK_SCPD_KEEP_DEFAULT_OFF,
224*e2ad626fSUlf Hansson 	},
225*e2ad626fSUlf Hansson 	[MT8186_POWER_DOMAIN_VDEC] = {
226*e2ad626fSUlf Hansson 		.name = "vdec",
227*e2ad626fSUlf Hansson 		.sta_mask = BIT(16),
228*e2ad626fSUlf Hansson 		.ctl_offs = 0x340,
229*e2ad626fSUlf Hansson 		.pwr_sta_offs = 0x16C,
230*e2ad626fSUlf Hansson 		.pwr_sta2nd_offs = 0x170,
231*e2ad626fSUlf Hansson 		.sram_pdn_bits = BIT(8),
232*e2ad626fSUlf Hansson 		.sram_pdn_ack_bits = BIT(12),
233*e2ad626fSUlf Hansson 		.bp_infracfg = {
234*e2ad626fSUlf Hansson 			BUS_PROT_WR_IGN(MT8186_TOP_AXI_PROT_EN_1_VDEC_STEP1,
235*e2ad626fSUlf Hansson 				MT8186_TOP_AXI_PROT_EN_1_SET,
236*e2ad626fSUlf Hansson 				MT8186_TOP_AXI_PROT_EN_1_CLR,
237*e2ad626fSUlf Hansson 				MT8186_TOP_AXI_PROT_EN_1_STA),
238*e2ad626fSUlf Hansson 			BUS_PROT_WR_IGN(MT8186_TOP_AXI_PROT_EN_1_VDEC_STEP2,
239*e2ad626fSUlf Hansson 				MT8186_TOP_AXI_PROT_EN_1_SET,
240*e2ad626fSUlf Hansson 				MT8186_TOP_AXI_PROT_EN_1_CLR,
241*e2ad626fSUlf Hansson 				MT8186_TOP_AXI_PROT_EN_1_STA),
242*e2ad626fSUlf Hansson 		},
243*e2ad626fSUlf Hansson 		.caps = MTK_SCPD_KEEP_DEFAULT_OFF,
244*e2ad626fSUlf Hansson 	},
245*e2ad626fSUlf Hansson 	[MT8186_POWER_DOMAIN_WPE] = {
246*e2ad626fSUlf Hansson 		.name = "wpe",
247*e2ad626fSUlf Hansson 		.sta_mask = BIT(0),
248*e2ad626fSUlf Hansson 		.ctl_offs = 0x3F8,
249*e2ad626fSUlf Hansson 		.pwr_sta_offs = 0x16C,
250*e2ad626fSUlf Hansson 		.pwr_sta2nd_offs = 0x170,
251*e2ad626fSUlf Hansson 		.sram_pdn_bits = BIT(8),
252*e2ad626fSUlf Hansson 		.sram_pdn_ack_bits = BIT(12),
253*e2ad626fSUlf Hansson 		.bp_infracfg = {
254*e2ad626fSUlf Hansson 			BUS_PROT_WR_IGN(MT8186_TOP_AXI_PROT_EN_2_WPE_STEP1,
255*e2ad626fSUlf Hansson 				MT8186_TOP_AXI_PROT_EN_2_SET,
256*e2ad626fSUlf Hansson 				MT8186_TOP_AXI_PROT_EN_2_CLR,
257*e2ad626fSUlf Hansson 				MT8186_TOP_AXI_PROT_EN_2_STA),
258*e2ad626fSUlf Hansson 			BUS_PROT_WR_IGN(MT8186_TOP_AXI_PROT_EN_2_WPE_STEP2,
259*e2ad626fSUlf Hansson 				MT8186_TOP_AXI_PROT_EN_2_SET,
260*e2ad626fSUlf Hansson 				MT8186_TOP_AXI_PROT_EN_2_CLR,
261*e2ad626fSUlf Hansson 				MT8186_TOP_AXI_PROT_EN_2_STA),
262*e2ad626fSUlf Hansson 		},
263*e2ad626fSUlf Hansson 		.caps = MTK_SCPD_KEEP_DEFAULT_OFF,
264*e2ad626fSUlf Hansson 	},
265*e2ad626fSUlf Hansson 	[MT8186_POWER_DOMAIN_CONN_ON] = {
266*e2ad626fSUlf Hansson 		.name = "conn_on",
267*e2ad626fSUlf Hansson 		.sta_mask = BIT(1),
268*e2ad626fSUlf Hansson 		.ctl_offs = 0x304,
269*e2ad626fSUlf Hansson 		.pwr_sta_offs = 0x16C,
270*e2ad626fSUlf Hansson 		.pwr_sta2nd_offs = 0x170,
271*e2ad626fSUlf Hansson 		.bp_infracfg = {
272*e2ad626fSUlf Hansson 			BUS_PROT_WR_IGN(MT8186_TOP_AXI_PROT_EN_1_CONN_ON_STEP1,
273*e2ad626fSUlf Hansson 				MT8186_TOP_AXI_PROT_EN_1_SET,
274*e2ad626fSUlf Hansson 				MT8186_TOP_AXI_PROT_EN_1_CLR,
275*e2ad626fSUlf Hansson 				MT8186_TOP_AXI_PROT_EN_1_STA),
276*e2ad626fSUlf Hansson 			BUS_PROT_WR_IGN(MT8186_TOP_AXI_PROT_EN_CONN_ON_STEP2,
277*e2ad626fSUlf Hansson 				MT8186_TOP_AXI_PROT_EN_SET,
278*e2ad626fSUlf Hansson 				MT8186_TOP_AXI_PROT_EN_CLR,
279*e2ad626fSUlf Hansson 				MT8186_TOP_AXI_PROT_EN_STA),
280*e2ad626fSUlf Hansson 			BUS_PROT_WR_IGN(MT8186_TOP_AXI_PROT_EN_CONN_ON_STEP3,
281*e2ad626fSUlf Hansson 				MT8186_TOP_AXI_PROT_EN_SET,
282*e2ad626fSUlf Hansson 				MT8186_TOP_AXI_PROT_EN_CLR,
283*e2ad626fSUlf Hansson 				MT8186_TOP_AXI_PROT_EN_STA),
284*e2ad626fSUlf Hansson 			BUS_PROT_WR_IGN(MT8186_TOP_AXI_PROT_EN_CONN_ON_STEP4,
285*e2ad626fSUlf Hansson 				MT8186_TOP_AXI_PROT_EN_SET,
286*e2ad626fSUlf Hansson 				MT8186_TOP_AXI_PROT_EN_CLR,
287*e2ad626fSUlf Hansson 				MT8186_TOP_AXI_PROT_EN_STA),
288*e2ad626fSUlf Hansson 		},
289*e2ad626fSUlf Hansson 		.caps = MTK_SCPD_KEEP_DEFAULT_OFF | MTK_SCPD_ACTIVE_WAKEUP,
290*e2ad626fSUlf Hansson 	},
291*e2ad626fSUlf Hansson 	[MT8186_POWER_DOMAIN_CSIRX_TOP] = {
292*e2ad626fSUlf Hansson 		.name = "csirx_top",
293*e2ad626fSUlf Hansson 		.sta_mask = BIT(6),
294*e2ad626fSUlf Hansson 		.ctl_offs = 0x318,
295*e2ad626fSUlf Hansson 		.pwr_sta_offs = 0x16C,
296*e2ad626fSUlf Hansson 		.pwr_sta2nd_offs = 0x170,
297*e2ad626fSUlf Hansson 		.sram_pdn_bits = BIT(8),
298*e2ad626fSUlf Hansson 		.sram_pdn_ack_bits = BIT(12),
299*e2ad626fSUlf Hansson 		.caps = MTK_SCPD_KEEP_DEFAULT_OFF,
300*e2ad626fSUlf Hansson 	},
301*e2ad626fSUlf Hansson 	[MT8186_POWER_DOMAIN_ADSP_AO] = {
302*e2ad626fSUlf Hansson 		.name = "adsp_ao",
303*e2ad626fSUlf Hansson 		.sta_mask = BIT(17),
304*e2ad626fSUlf Hansson 		.ctl_offs = 0x9FC,
305*e2ad626fSUlf Hansson 		.pwr_sta_offs = 0x16C,
306*e2ad626fSUlf Hansson 		.pwr_sta2nd_offs = 0x170,
307*e2ad626fSUlf Hansson 	},
308*e2ad626fSUlf Hansson 	[MT8186_POWER_DOMAIN_ADSP_INFRA] = {
309*e2ad626fSUlf Hansson 		.name = "adsp_infra",
310*e2ad626fSUlf Hansson 		.sta_mask = BIT(10),
311*e2ad626fSUlf Hansson 		.ctl_offs = 0x9F8,
312*e2ad626fSUlf Hansson 		.pwr_sta_offs = 0x16C,
313*e2ad626fSUlf Hansson 		.pwr_sta2nd_offs = 0x170,
314*e2ad626fSUlf Hansson 	},
315*e2ad626fSUlf Hansson 	[MT8186_POWER_DOMAIN_ADSP_TOP] = {
316*e2ad626fSUlf Hansson 		.name = "adsp_top",
317*e2ad626fSUlf Hansson 		.sta_mask = BIT(31),
318*e2ad626fSUlf Hansson 		.ctl_offs = 0x3E4,
319*e2ad626fSUlf Hansson 		.pwr_sta_offs = 0x16C,
320*e2ad626fSUlf Hansson 		.pwr_sta2nd_offs = 0x170,
321*e2ad626fSUlf Hansson 		.sram_pdn_bits = BIT(8),
322*e2ad626fSUlf Hansson 		.sram_pdn_ack_bits = BIT(12),
323*e2ad626fSUlf Hansson 		.bp_infracfg = {
324*e2ad626fSUlf Hansson 			BUS_PROT_WR_IGN(MT8186_TOP_AXI_PROT_EN_3_ADSP_TOP_STEP1,
325*e2ad626fSUlf Hansson 				MT8186_TOP_AXI_PROT_EN_3_SET,
326*e2ad626fSUlf Hansson 				MT8186_TOP_AXI_PROT_EN_3_CLR,
327*e2ad626fSUlf Hansson 				MT8186_TOP_AXI_PROT_EN_3_STA),
328*e2ad626fSUlf Hansson 			BUS_PROT_WR_IGN(MT8186_TOP_AXI_PROT_EN_3_ADSP_TOP_STEP2,
329*e2ad626fSUlf Hansson 				MT8186_TOP_AXI_PROT_EN_3_SET,
330*e2ad626fSUlf Hansson 				MT8186_TOP_AXI_PROT_EN_3_CLR,
331*e2ad626fSUlf Hansson 				MT8186_TOP_AXI_PROT_EN_3_STA),
332*e2ad626fSUlf Hansson 		},
333*e2ad626fSUlf Hansson 		.caps = MTK_SCPD_SRAM_ISO | MTK_SCPD_ACTIVE_WAKEUP,
334*e2ad626fSUlf Hansson 	},
335*e2ad626fSUlf Hansson };
336*e2ad626fSUlf Hansson 
337*e2ad626fSUlf Hansson static const struct scpsys_soc_data mt8186_scpsys_data = {
338*e2ad626fSUlf Hansson 	.domains_data = scpsys_domain_data_mt8186,
339*e2ad626fSUlf Hansson 	.num_domains = ARRAY_SIZE(scpsys_domain_data_mt8186),
340*e2ad626fSUlf Hansson };
341*e2ad626fSUlf Hansson 
342*e2ad626fSUlf Hansson #endif /* __SOC_MEDIATEK_MT8186_PM_DOMAINS_H */
343