1 /* SPDX-License-Identifier: GPL-2.0-only */
3 * Copyright (c) 2022 MediaTek Inc.
7 #ifndef __SOC_MEDIATEK_MT8188_PM_DOMAINS_H
8 #define __SOC_MEDIATEK_MT8188_PM_DOMAINS_H
10 #include "mtk-pm-domains.h"
11 #include <dt-bindings/power/mediatek,mt8188-power.h>
14 * MT8188 power domain support
17 static const struct scpsys_domain_data scpsys_domain_data_mt8188[] = {
18 [MT8188_POWER_DOMAIN_MFG0] = {
22 .pwr_sta_offs = 0x174,
23 .pwr_sta2nd_offs = 0x178,
24 .sram_pdn_bits = BIT(8),
25 .sram_pdn_ack_bits = BIT(12),
26 .caps = MTK_SCPD_KEEP_DEFAULT_OFF | MTK_SCPD_DOMAIN_SUPPLY,
28 [MT8188_POWER_DOMAIN_MFG1] = {
32 .pwr_sta_offs = 0x174,
33 .pwr_sta2nd_offs = 0x178,
34 .sram_pdn_bits = BIT(8),
35 .sram_pdn_ack_bits = BIT(12),
37 BUS_PROT_WR(MT8188_TOP_AXI_PROT_EN_MFG1_STEP1,
38 MT8188_TOP_AXI_PROT_EN_SET,
39 MT8188_TOP_AXI_PROT_EN_CLR,
40 MT8188_TOP_AXI_PROT_EN_STA),
41 BUS_PROT_WR(MT8188_TOP_AXI_PROT_EN_2_MFG1_STEP2,
42 MT8188_TOP_AXI_PROT_EN_2_SET,
43 MT8188_TOP_AXI_PROT_EN_2_CLR,
44 MT8188_TOP_AXI_PROT_EN_2_STA),
45 BUS_PROT_WR(MT8188_TOP_AXI_PROT_EN_1_MFG1_STEP3,
46 MT8188_TOP_AXI_PROT_EN_1_SET,
47 MT8188_TOP_AXI_PROT_EN_1_CLR,
48 MT8188_TOP_AXI_PROT_EN_1_STA),
49 BUS_PROT_WR(MT8188_TOP_AXI_PROT_EN_2_MFG1_STEP4,
50 MT8188_TOP_AXI_PROT_EN_2_SET,
51 MT8188_TOP_AXI_PROT_EN_2_CLR,
52 MT8188_TOP_AXI_PROT_EN_2_STA),
53 BUS_PROT_WR(MT8188_TOP_AXI_PROT_EN_MFG1_STEP5,
54 MT8188_TOP_AXI_PROT_EN_SET,
55 MT8188_TOP_AXI_PROT_EN_CLR,
56 MT8188_TOP_AXI_PROT_EN_STA),
57 BUS_PROT_WR(MT8188_TOP_AXI_PROT_EN_SUB_INFRA_VDNR_MFG1_STEP6,
58 MT8188_TOP_AXI_PROT_EN_SUB_INFRA_VDNR_SET,
59 MT8188_TOP_AXI_PROT_EN_SUB_INFRA_VDNR_CLR,
60 MT8188_TOP_AXI_PROT_EN_SUB_INFRA_VDNR_STA),
62 .caps = MTK_SCPD_KEEP_DEFAULT_OFF | MTK_SCPD_DOMAIN_SUPPLY,
64 [MT8188_POWER_DOMAIN_MFG2] = {
68 .pwr_sta_offs = 0x174,
69 .pwr_sta2nd_offs = 0x178,
70 .sram_pdn_bits = BIT(8),
71 .sram_pdn_ack_bits = BIT(12),
72 .caps = MTK_SCPD_KEEP_DEFAULT_OFF,
74 [MT8188_POWER_DOMAIN_MFG3] = {
78 .pwr_sta_offs = 0x174,
79 .pwr_sta2nd_offs = 0x178,
80 .sram_pdn_bits = BIT(8),
81 .sram_pdn_ack_bits = BIT(12),
82 .caps = MTK_SCPD_KEEP_DEFAULT_OFF,
84 [MT8188_POWER_DOMAIN_MFG4] = {
88 .pwr_sta_offs = 0x174,
89 .pwr_sta2nd_offs = 0x178,
90 .sram_pdn_bits = BIT(8),
91 .sram_pdn_ack_bits = BIT(12),
92 .caps = MTK_SCPD_KEEP_DEFAULT_OFF,
94 [MT8188_POWER_DOMAIN_PEXTP_MAC_P0] = {
95 .name = "pextp_mac_p0",
98 .pwr_sta_offs = 0x174,
99 .pwr_sta2nd_offs = 0x178,
100 .sram_pdn_bits = BIT(8),
101 .sram_pdn_ack_bits = BIT(12),
103 BUS_PROT_WR(MT8188_TOP_AXI_PROT_EN_PEXTP_MAC_P0_STEP1,
104 MT8188_TOP_AXI_PROT_EN_SET,
105 MT8188_TOP_AXI_PROT_EN_CLR,
106 MT8188_TOP_AXI_PROT_EN_STA),
107 BUS_PROT_WR(MT8188_TOP_AXI_PROT_EN_INFRA_VDNR_PEXTP_MAC_P0_STEP2,
108 MT8188_TOP_AXI_PROT_EN_INFRA_VDNR_SET,
109 MT8188_TOP_AXI_PROT_EN_INFRA_VDNR_CLR,
110 MT8188_TOP_AXI_PROT_EN_INFRA_VDNR_STA),
112 .caps = MTK_SCPD_KEEP_DEFAULT_OFF,
114 [MT8188_POWER_DOMAIN_PEXTP_PHY_TOP] = {
115 .name = "pextp_phy_top",
118 .pwr_sta_offs = 0x174,
119 .pwr_sta2nd_offs = 0x178,
120 .caps = MTK_SCPD_KEEP_DEFAULT_OFF,
122 [MT8188_POWER_DOMAIN_CSIRX_TOP] = {
123 .name = "pextp_csirx_top",
126 .pwr_sta_offs = 0x174,
127 .pwr_sta2nd_offs = 0x178,
128 .caps = MTK_SCPD_KEEP_DEFAULT_OFF,
130 [MT8188_POWER_DOMAIN_ETHER] = {
134 .pwr_sta_offs = 0x16C,
135 .pwr_sta2nd_offs = 0x170,
136 .sram_pdn_bits = BIT(8),
137 .sram_pdn_ack_bits = BIT(12),
139 BUS_PROT_WR(MT8188_TOP_AXI_PROT_EN_INFRA_VDNR_ETHER_STEP1,
140 MT8188_TOP_AXI_PROT_EN_INFRA_VDNR_SET,
141 MT8188_TOP_AXI_PROT_EN_INFRA_VDNR_CLR,
142 MT8188_TOP_AXI_PROT_EN_INFRA_VDNR_STA),
144 .caps = MTK_SCPD_KEEP_DEFAULT_OFF | MTK_SCPD_ACTIVE_WAKEUP,
146 [MT8188_POWER_DOMAIN_HDMI_TX] = {
150 .pwr_sta_offs = 0x16C,
151 .pwr_sta2nd_offs = 0x170,
152 .sram_pdn_bits = BIT(8),
153 .sram_pdn_ack_bits = BIT(12),
155 BUS_PROT_WR(MT8188_TOP_AXI_PROT_EN_INFRA_VDNR_HDMI_TX_STEP1,
156 MT8188_TOP_AXI_PROT_EN_INFRA_VDNR_SET,
157 MT8188_TOP_AXI_PROT_EN_INFRA_VDNR_CLR,
158 MT8188_TOP_AXI_PROT_EN_INFRA_VDNR_STA),
160 .caps = MTK_SCPD_KEEP_DEFAULT_OFF | MTK_SCPD_ACTIVE_WAKEUP,
162 [MT8188_POWER_DOMAIN_ADSP_AO] = {
166 .pwr_sta_offs = 0x16C,
167 .pwr_sta2nd_offs = 0x170,
169 BUS_PROT_WR(MT8188_TOP_AXI_PROT_EN_2_ADSP_AO_STEP1,
170 MT8188_TOP_AXI_PROT_EN_2_SET,
171 MT8188_TOP_AXI_PROT_EN_2_CLR,
172 MT8188_TOP_AXI_PROT_EN_2_STA),
173 BUS_PROT_WR(MT8188_TOP_AXI_PROT_EN_2_ADSP_AO_STEP2,
174 MT8188_TOP_AXI_PROT_EN_2_SET,
175 MT8188_TOP_AXI_PROT_EN_2_CLR,
176 MT8188_TOP_AXI_PROT_EN_2_STA),
178 .caps = MTK_SCPD_ALWAYS_ON,
180 [MT8188_POWER_DOMAIN_ADSP_INFRA] = {
181 .name = "adsp_infra",
184 .pwr_sta_offs = 0x16C,
185 .pwr_sta2nd_offs = 0x170,
186 .sram_pdn_bits = BIT(8),
187 .sram_pdn_ack_bits = BIT(12),
189 BUS_PROT_WR(MT8188_TOP_AXI_PROT_EN_2_ADSP_INFRA_STEP1,
190 MT8188_TOP_AXI_PROT_EN_2_SET,
191 MT8188_TOP_AXI_PROT_EN_2_CLR,
192 MT8188_TOP_AXI_PROT_EN_2_STA),
193 BUS_PROT_WR(MT8188_TOP_AXI_PROT_EN_2_ADSP_INFRA_STEP2,
194 MT8188_TOP_AXI_PROT_EN_2_SET,
195 MT8188_TOP_AXI_PROT_EN_2_CLR,
196 MT8188_TOP_AXI_PROT_EN_2_STA),
198 .caps = MTK_SCPD_SRAM_ISO | MTK_SCPD_ALWAYS_ON,
200 [MT8188_POWER_DOMAIN_ADSP] = {
204 .pwr_sta_offs = 0x16C,
205 .pwr_sta2nd_offs = 0x170,
206 .sram_pdn_bits = BIT(8),
207 .sram_pdn_ack_bits = BIT(12),
209 BUS_PROT_WR(MT8188_TOP_AXI_PROT_EN_2_ADSP_STEP1,
210 MT8188_TOP_AXI_PROT_EN_2_SET,
211 MT8188_TOP_AXI_PROT_EN_2_CLR,
212 MT8188_TOP_AXI_PROT_EN_2_STA),
213 BUS_PROT_WR(MT8188_TOP_AXI_PROT_EN_2_ADSP_STEP2,
214 MT8188_TOP_AXI_PROT_EN_2_SET,
215 MT8188_TOP_AXI_PROT_EN_2_CLR,
216 MT8188_TOP_AXI_PROT_EN_2_STA),
218 .caps = MTK_SCPD_KEEP_DEFAULT_OFF | MTK_SCPD_SRAM_ISO | MTK_SCPD_ACTIVE_WAKEUP,
220 [MT8188_POWER_DOMAIN_AUDIO] = {
224 .pwr_sta_offs = 0x16C,
225 .pwr_sta2nd_offs = 0x170,
226 .sram_pdn_bits = BIT(8),
227 .sram_pdn_ack_bits = BIT(12),
229 BUS_PROT_WR(MT8188_TOP_AXI_PROT_EN_2_AUDIO_STEP1,
230 MT8188_TOP_AXI_PROT_EN_2_SET,
231 MT8188_TOP_AXI_PROT_EN_2_CLR,
232 MT8188_TOP_AXI_PROT_EN_2_STA),
233 BUS_PROT_WR(MT8188_TOP_AXI_PROT_EN_2_AUDIO_STEP2,
234 MT8188_TOP_AXI_PROT_EN_2_SET,
235 MT8188_TOP_AXI_PROT_EN_2_CLR,
236 MT8188_TOP_AXI_PROT_EN_2_STA),
238 .caps = MTK_SCPD_KEEP_DEFAULT_OFF | MTK_SCPD_ACTIVE_WAKEUP,
240 [MT8188_POWER_DOMAIN_AUDIO_ASRC] = {
241 .name = "audio_asrc",
244 .pwr_sta_offs = 0x16C,
245 .pwr_sta2nd_offs = 0x170,
246 .sram_pdn_bits = BIT(8),
247 .sram_pdn_ack_bits = BIT(12),
249 BUS_PROT_WR(MT8188_TOP_AXI_PROT_EN_2_AUDIO_ASRC_STEP1,
250 MT8188_TOP_AXI_PROT_EN_2_SET,
251 MT8188_TOP_AXI_PROT_EN_2_CLR,
252 MT8188_TOP_AXI_PROT_EN_2_STA),
253 BUS_PROT_WR(MT8188_TOP_AXI_PROT_EN_2_AUDIO_ASRC_STEP2,
254 MT8188_TOP_AXI_PROT_EN_2_SET,
255 MT8188_TOP_AXI_PROT_EN_2_CLR,
256 MT8188_TOP_AXI_PROT_EN_2_STA),
258 .caps = MTK_SCPD_KEEP_DEFAULT_OFF,
260 [MT8188_POWER_DOMAIN_VPPSYS0] = {
264 .pwr_sta_offs = 0x16C,
265 .pwr_sta2nd_offs = 0x170,
266 .sram_pdn_bits = BIT(8),
267 .sram_pdn_ack_bits = BIT(12),
269 BUS_PROT_WR(MT8188_TOP_AXI_PROT_EN_VPPSYS0_STEP1,
270 MT8188_TOP_AXI_PROT_EN_SET,
271 MT8188_TOP_AXI_PROT_EN_CLR,
272 MT8188_TOP_AXI_PROT_EN_STA),
273 BUS_PROT_WR(MT8188_TOP_AXI_PROT_EN_MM_2_VPPSYS0_STEP2,
274 MT8188_TOP_AXI_PROT_EN_MM_2_SET,
275 MT8188_TOP_AXI_PROT_EN_MM_2_CLR,
276 MT8188_TOP_AXI_PROT_EN_MM_2_STA),
277 BUS_PROT_WR(MT8188_TOP_AXI_PROT_EN_VPPSYS0_STEP3,
278 MT8188_TOP_AXI_PROT_EN_SET,
279 MT8188_TOP_AXI_PROT_EN_CLR,
280 MT8188_TOP_AXI_PROT_EN_STA),
281 BUS_PROT_WR(MT8188_TOP_AXI_PROT_EN_MM_2_VPPSYS0_STEP4,
282 MT8188_TOP_AXI_PROT_EN_MM_2_SET,
283 MT8188_TOP_AXI_PROT_EN_MM_2_CLR,
284 MT8188_TOP_AXI_PROT_EN_MM_2_STA),
285 BUS_PROT_WR(MT8188_TOP_AXI_PROT_EN_SUB_INFRA_VDNR_VPPSYS0_STEP5,
286 MT8188_TOP_AXI_PROT_EN_SUB_INFRA_VDNR_SET,
287 MT8188_TOP_AXI_PROT_EN_SUB_INFRA_VDNR_CLR,
288 MT8188_TOP_AXI_PROT_EN_SUB_INFRA_VDNR_STA),
291 [MT8188_POWER_DOMAIN_VDOSYS0] = {
295 .pwr_sta_offs = 0x16C,
296 .pwr_sta2nd_offs = 0x170,
297 .sram_pdn_bits = BIT(8),
298 .sram_pdn_ack_bits = BIT(12),
300 BUS_PROT_WR(MT8188_TOP_AXI_PROT_EN_MM_VDOSYS0_STEP1,
301 MT8188_TOP_AXI_PROT_EN_MM_SET,
302 MT8188_TOP_AXI_PROT_EN_MM_CLR,
303 MT8188_TOP_AXI_PROT_EN_MM_STA),
304 BUS_PROT_WR(MT8188_TOP_AXI_PROT_EN_VDOSYS0_STEP2,
305 MT8188_TOP_AXI_PROT_EN_SET,
306 MT8188_TOP_AXI_PROT_EN_CLR,
307 MT8188_TOP_AXI_PROT_EN_STA),
308 BUS_PROT_WR(MT8188_TOP_AXI_PROT_EN_SUB_INFRA_VDNR_VDOSYS0_STEP3,
309 MT8188_TOP_AXI_PROT_EN_SUB_INFRA_VDNR_SET,
310 MT8188_TOP_AXI_PROT_EN_SUB_INFRA_VDNR_CLR,
311 MT8188_TOP_AXI_PROT_EN_SUB_INFRA_VDNR_STA),
314 [MT8188_POWER_DOMAIN_VDOSYS1] = {
318 .pwr_sta_offs = 0x16C,
319 .pwr_sta2nd_offs = 0x170,
320 .sram_pdn_bits = BIT(8),
321 .sram_pdn_ack_bits = BIT(12),
323 BUS_PROT_WR(MT8188_TOP_AXI_PROT_EN_MM_VDOSYS1_STEP1,
324 MT8188_TOP_AXI_PROT_EN_MM_SET,
325 MT8188_TOP_AXI_PROT_EN_MM_CLR,
326 MT8188_TOP_AXI_PROT_EN_MM_STA),
327 BUS_PROT_WR(MT8188_TOP_AXI_PROT_EN_MM_VDOSYS1_STEP2,
328 MT8188_TOP_AXI_PROT_EN_MM_SET,
329 MT8188_TOP_AXI_PROT_EN_MM_CLR,
330 MT8188_TOP_AXI_PROT_EN_MM_STA),
331 BUS_PROT_WR(MT8188_TOP_AXI_PROT_EN_MM_2_VDOSYS1_STEP3,
332 MT8188_TOP_AXI_PROT_EN_MM_2_SET,
333 MT8188_TOP_AXI_PROT_EN_MM_2_CLR,
334 MT8188_TOP_AXI_PROT_EN_MM_2_STA),
337 [MT8188_POWER_DOMAIN_DP_TX] = {
341 .pwr_sta_offs = 0x16C,
342 .pwr_sta2nd_offs = 0x170,
343 .sram_pdn_bits = BIT(8),
344 .sram_pdn_ack_bits = BIT(12),
346 BUS_PROT_WR(MT8188_TOP_AXI_PROT_EN_INFRA_VDNR_DP_TX_STEP1,
347 MT8188_TOP_AXI_PROT_EN_INFRA_VDNR_SET,
348 MT8188_TOP_AXI_PROT_EN_INFRA_VDNR_CLR,
349 MT8188_TOP_AXI_PROT_EN_INFRA_VDNR_STA),
351 .caps = MTK_SCPD_KEEP_DEFAULT_OFF,
353 [MT8188_POWER_DOMAIN_EDP_TX] = {
357 .pwr_sta_offs = 0x16C,
358 .pwr_sta2nd_offs = 0x170,
359 .sram_pdn_bits = BIT(8),
360 .sram_pdn_ack_bits = BIT(12),
362 BUS_PROT_WR(MT8188_TOP_AXI_PROT_EN_INFRA_VDNR_EDP_TX_STEP1,
363 MT8188_TOP_AXI_PROT_EN_INFRA_VDNR_SET,
364 MT8188_TOP_AXI_PROT_EN_INFRA_VDNR_CLR,
365 MT8188_TOP_AXI_PROT_EN_INFRA_VDNR_STA),
367 .caps = MTK_SCPD_KEEP_DEFAULT_OFF,
369 [MT8188_POWER_DOMAIN_VPPSYS1] = {
373 .pwr_sta_offs = 0x16C,
374 .pwr_sta2nd_offs = 0x170,
375 .sram_pdn_bits = BIT(8),
376 .sram_pdn_ack_bits = BIT(12),
378 BUS_PROT_WR(MT8188_TOP_AXI_PROT_EN_MM_VPPSYS1_STEP1,
379 MT8188_TOP_AXI_PROT_EN_MM_SET,
380 MT8188_TOP_AXI_PROT_EN_MM_CLR,
381 MT8188_TOP_AXI_PROT_EN_MM_STA),
382 BUS_PROT_WR(MT8188_TOP_AXI_PROT_EN_MM_VPPSYS1_STEP2,
383 MT8188_TOP_AXI_PROT_EN_MM_SET,
384 MT8188_TOP_AXI_PROT_EN_MM_CLR,
385 MT8188_TOP_AXI_PROT_EN_MM_STA),
386 BUS_PROT_WR(MT8188_TOP_AXI_PROT_EN_MM_2_VPPSYS1_STEP3,
387 MT8188_TOP_AXI_PROT_EN_MM_2_SET,
388 MT8188_TOP_AXI_PROT_EN_MM_2_CLR,
389 MT8188_TOP_AXI_PROT_EN_MM_2_STA),
392 [MT8188_POWER_DOMAIN_WPE] = {
396 .pwr_sta_offs = 0x16C,
397 .pwr_sta2nd_offs = 0x170,
398 .sram_pdn_bits = BIT(8),
399 .sram_pdn_ack_bits = BIT(12),
401 BUS_PROT_WR(MT8188_TOP_AXI_PROT_EN_MM_2_WPE_STEP1,
402 MT8188_TOP_AXI_PROT_EN_MM_2_SET,
403 MT8188_TOP_AXI_PROT_EN_MM_2_CLR,
404 MT8188_TOP_AXI_PROT_EN_MM_2_STA),
405 BUS_PROT_WR(MT8188_TOP_AXI_PROT_EN_MM_2_WPE_STEP2,
406 MT8188_TOP_AXI_PROT_EN_MM_2_SET,
407 MT8188_TOP_AXI_PROT_EN_MM_2_CLR,
408 MT8188_TOP_AXI_PROT_EN_MM_2_STA),
410 .caps = MTK_SCPD_KEEP_DEFAULT_OFF,
412 [MT8188_POWER_DOMAIN_VDEC0] = {
416 .pwr_sta_offs = 0x16C,
417 .pwr_sta2nd_offs = 0x170,
418 .sram_pdn_bits = BIT(8),
419 .sram_pdn_ack_bits = BIT(12),
421 BUS_PROT_WR(MT8188_TOP_AXI_PROT_EN_MM_VDEC0_STEP1,
422 MT8188_TOP_AXI_PROT_EN_MM_SET,
423 MT8188_TOP_AXI_PROT_EN_MM_CLR,
424 MT8188_TOP_AXI_PROT_EN_MM_STA),
425 BUS_PROT_WR(MT8188_TOP_AXI_PROT_EN_MM_2_VDEC0_STEP2,
426 MT8188_TOP_AXI_PROT_EN_MM_2_SET,
427 MT8188_TOP_AXI_PROT_EN_MM_2_CLR,
428 MT8188_TOP_AXI_PROT_EN_MM_2_STA),
430 .caps = MTK_SCPD_KEEP_DEFAULT_OFF,
432 [MT8188_POWER_DOMAIN_VDEC1] = {
436 .pwr_sta_offs = 0x16C,
437 .pwr_sta2nd_offs = 0x170,
438 .sram_pdn_bits = BIT(8),
439 .sram_pdn_ack_bits = BIT(12),
441 BUS_PROT_WR(MT8188_TOP_AXI_PROT_EN_MM_VDEC1_STEP1,
442 MT8188_TOP_AXI_PROT_EN_MM_SET,
443 MT8188_TOP_AXI_PROT_EN_MM_CLR,
444 MT8188_TOP_AXI_PROT_EN_MM_STA),
445 BUS_PROT_WR(MT8188_TOP_AXI_PROT_EN_MM_VDEC1_STEP2,
446 MT8188_TOP_AXI_PROT_EN_MM_SET,
447 MT8188_TOP_AXI_PROT_EN_MM_CLR,
448 MT8188_TOP_AXI_PROT_EN_MM_STA),
450 .caps = MTK_SCPD_KEEP_DEFAULT_OFF,
452 [MT8188_POWER_DOMAIN_VENC] = {
456 .pwr_sta_offs = 0x16C,
457 .pwr_sta2nd_offs = 0x170,
458 .sram_pdn_bits = BIT(8),
459 .sram_pdn_ack_bits = BIT(12),
461 BUS_PROT_WR(MT8188_TOP_AXI_PROT_EN_MM_VENC_STEP1,
462 MT8188_TOP_AXI_PROT_EN_MM_SET,
463 MT8188_TOP_AXI_PROT_EN_MM_CLR,
464 MT8188_TOP_AXI_PROT_EN_MM_STA),
465 BUS_PROT_WR(MT8188_TOP_AXI_PROT_EN_MM_VENC_STEP2,
466 MT8188_TOP_AXI_PROT_EN_MM_SET,
467 MT8188_TOP_AXI_PROT_EN_MM_CLR,
468 MT8188_TOP_AXI_PROT_EN_MM_STA),
469 BUS_PROT_WR(MT8188_TOP_AXI_PROT_EN_MM_2_VENC_STEP3,
470 MT8188_TOP_AXI_PROT_EN_MM_2_SET,
471 MT8188_TOP_AXI_PROT_EN_MM_2_CLR,
472 MT8188_TOP_AXI_PROT_EN_MM_2_STA),
474 .caps = MTK_SCPD_KEEP_DEFAULT_OFF,
476 [MT8188_POWER_DOMAIN_IMG_VCORE] = {
480 .pwr_sta_offs = 0x16C,
481 .pwr_sta2nd_offs = 0x170,
483 BUS_PROT_WR(MT8188_TOP_AXI_PROT_EN_MM_IMG_VCORE_STEP1,
484 MT8188_TOP_AXI_PROT_EN_MM_SET,
485 MT8188_TOP_AXI_PROT_EN_MM_CLR,
486 MT8188_TOP_AXI_PROT_EN_MM_STA),
487 BUS_PROT_WR(MT8188_TOP_AXI_PROT_EN_MM_IMG_VCORE_STEP2,
488 MT8188_TOP_AXI_PROT_EN_MM_SET,
489 MT8188_TOP_AXI_PROT_EN_MM_CLR,
490 MT8188_TOP_AXI_PROT_EN_MM_STA),
491 BUS_PROT_WR(MT8188_TOP_AXI_PROT_EN_MM_2_IMG_VCORE_STEP3,
492 MT8188_TOP_AXI_PROT_EN_MM_2_SET,
493 MT8188_TOP_AXI_PROT_EN_MM_2_CLR,
494 MT8188_TOP_AXI_PROT_EN_MM_2_STA),
496 .caps = MTK_SCPD_KEEP_DEFAULT_OFF | MTK_SCPD_DOMAIN_SUPPLY,
498 [MT8188_POWER_DOMAIN_IMG_MAIN] = {
502 .pwr_sta_offs = 0x16C,
503 .pwr_sta2nd_offs = 0x170,
504 .sram_pdn_bits = BIT(8),
505 .sram_pdn_ack_bits = BIT(12),
507 BUS_PROT_WR(MT8188_TOP_AXI_PROT_EN_MM_2_IMG_MAIN_STEP1,
508 MT8188_TOP_AXI_PROT_EN_MM_2_SET,
509 MT8188_TOP_AXI_PROT_EN_MM_2_CLR,
510 MT8188_TOP_AXI_PROT_EN_MM_2_STA),
511 BUS_PROT_WR(MT8188_TOP_AXI_PROT_EN_MM_2_IMG_MAIN_STEP2,
512 MT8188_TOP_AXI_PROT_EN_MM_2_SET,
513 MT8188_TOP_AXI_PROT_EN_MM_2_CLR,
514 MT8188_TOP_AXI_PROT_EN_MM_2_STA),
516 .caps = MTK_SCPD_KEEP_DEFAULT_OFF,
518 [MT8188_POWER_DOMAIN_DIP] = {
522 .pwr_sta_offs = 0x16C,
523 .pwr_sta2nd_offs = 0x170,
524 .sram_pdn_bits = BIT(8),
525 .sram_pdn_ack_bits = BIT(12),
526 .caps = MTK_SCPD_KEEP_DEFAULT_OFF,
528 [MT8188_POWER_DOMAIN_IPE] = {
532 .pwr_sta_offs = 0x16C,
533 .pwr_sta2nd_offs = 0x170,
534 .sram_pdn_bits = BIT(8),
535 .sram_pdn_ack_bits = BIT(12),
536 .caps = MTK_SCPD_KEEP_DEFAULT_OFF,
538 [MT8188_POWER_DOMAIN_CAM_VCORE] = {
542 .pwr_sta_offs = 0x16C,
543 .pwr_sta2nd_offs = 0x170,
545 BUS_PROT_WR(MT8188_TOP_AXI_PROT_EN_MM_CAM_VCORE_STEP1,
546 MT8188_TOP_AXI_PROT_EN_MM_SET,
547 MT8188_TOP_AXI_PROT_EN_MM_CLR,
548 MT8188_TOP_AXI_PROT_EN_MM_STA),
549 BUS_PROT_WR(MT8188_TOP_AXI_PROT_EN_2_CAM_VCORE_STEP2,
550 MT8188_TOP_AXI_PROT_EN_2_SET,
551 MT8188_TOP_AXI_PROT_EN_2_CLR,
552 MT8188_TOP_AXI_PROT_EN_2_STA),
553 BUS_PROT_WR(MT8188_TOP_AXI_PROT_EN_1_CAM_VCORE_STEP3,
554 MT8188_TOP_AXI_PROT_EN_1_SET,
555 MT8188_TOP_AXI_PROT_EN_1_CLR,
556 MT8188_TOP_AXI_PROT_EN_1_STA),
557 BUS_PROT_WR(MT8188_TOP_AXI_PROT_EN_MM_CAM_VCORE_STEP4,
558 MT8188_TOP_AXI_PROT_EN_MM_SET,
559 MT8188_TOP_AXI_PROT_EN_MM_CLR,
560 MT8188_TOP_AXI_PROT_EN_MM_STA),
561 BUS_PROT_WR(MT8188_TOP_AXI_PROT_EN_MM_2_CAM_VCORE_STEP5,
562 MT8188_TOP_AXI_PROT_EN_MM_2_SET,
563 MT8188_TOP_AXI_PROT_EN_MM_2_CLR,
564 MT8188_TOP_AXI_PROT_EN_MM_2_STA),
566 .caps = MTK_SCPD_KEEP_DEFAULT_OFF | MTK_SCPD_DOMAIN_SUPPLY,
568 [MT8188_POWER_DOMAIN_CAM_MAIN] = {
572 .pwr_sta_offs = 0x16C,
573 .pwr_sta2nd_offs = 0x170,
574 .sram_pdn_bits = BIT(8),
575 .sram_pdn_ack_bits = BIT(12),
577 BUS_PROT_WR(MT8188_TOP_AXI_PROT_EN_MM_2_CAM_MAIN_STEP1,
578 MT8188_TOP_AXI_PROT_EN_MM_2_SET,
579 MT8188_TOP_AXI_PROT_EN_MM_2_CLR,
580 MT8188_TOP_AXI_PROT_EN_MM_2_STA),
581 BUS_PROT_WR(MT8188_TOP_AXI_PROT_EN_2_CAM_MAIN_STEP2,
582 MT8188_TOP_AXI_PROT_EN_2_SET,
583 MT8188_TOP_AXI_PROT_EN_2_CLR,
584 MT8188_TOP_AXI_PROT_EN_2_STA),
585 BUS_PROT_WR(MT8188_TOP_AXI_PROT_EN_MM_2_CAM_MAIN_STEP3,
586 MT8188_TOP_AXI_PROT_EN_MM_2_SET,
587 MT8188_TOP_AXI_PROT_EN_MM_2_CLR,
588 MT8188_TOP_AXI_PROT_EN_MM_2_STA),
589 BUS_PROT_WR(MT8188_TOP_AXI_PROT_EN_2_CAM_MAIN_STEP4,
590 MT8188_TOP_AXI_PROT_EN_2_SET,
591 MT8188_TOP_AXI_PROT_EN_2_CLR,
592 MT8188_TOP_AXI_PROT_EN_2_STA),
594 .caps = MTK_SCPD_KEEP_DEFAULT_OFF,
596 [MT8188_POWER_DOMAIN_CAM_SUBA] = {
600 .pwr_sta_offs = 0x16C,
601 .pwr_sta2nd_offs = 0x170,
602 .sram_pdn_bits = BIT(8),
603 .sram_pdn_ack_bits = BIT(12),
604 .caps = MTK_SCPD_KEEP_DEFAULT_OFF,
606 [MT8188_POWER_DOMAIN_CAM_SUBB] = {
610 .pwr_sta_offs = 0x16C,
611 .pwr_sta2nd_offs = 0x170,
612 .sram_pdn_bits = BIT(8),
613 .sram_pdn_ack_bits = BIT(12),
614 .caps = MTK_SCPD_KEEP_DEFAULT_OFF,
618 static const struct scpsys_soc_data mt8188_scpsys_data = {
619 .domains_data = scpsys_domain_data_mt8188,
620 .num_domains = ARRAY_SIZE(scpsys_domain_data_mt8188),
623 #endif /* __SOC_MEDIATEK_MT8188_PM_DOMAINS_H */