1 /* SPDX-License-Identifier: GPL-2.0-only */
3 * Copyright (c) 2021 MediaTek Inc.
4 * Author: Chun-Jie Chen <chun-jie.chen@mediatek.com>
7 #ifndef __SOC_MEDIATEK_MT8195_PM_DOMAINS_H
8 #define __SOC_MEDIATEK_MT8195_PM_DOMAINS_H
10 #include "mtk-pm-domains.h"
11 #include <dt-bindings/power/mt8195-power.h>
14 * MT8195 power domain support
17 static const struct scpsys_domain_data scpsys_domain_data_mt8195[] = {
18 [MT8195_POWER_DOMAIN_PCIE_MAC_P0] = {
19 .name = "pcie_mac_p0",
22 .pwr_sta_offs = 0x174,
23 .pwr_sta2nd_offs = 0x178,
24 .sram_pdn_bits = GENMASK(8, 8),
25 .sram_pdn_ack_bits = GENMASK(12, 12),
27 BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_VDNR_PCIE_MAC_P0,
28 MT8195_TOP_AXI_PROT_EN_VDNR_SET,
29 MT8195_TOP_AXI_PROT_EN_VDNR_CLR,
30 MT8195_TOP_AXI_PROT_EN_VDNR_STA1),
31 BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_VDNR_1_PCIE_MAC_P0,
32 MT8195_TOP_AXI_PROT_EN_VDNR_1_SET,
33 MT8195_TOP_AXI_PROT_EN_VDNR_1_CLR,
34 MT8195_TOP_AXI_PROT_EN_VDNR_1_STA1),
37 [MT8195_POWER_DOMAIN_PCIE_MAC_P1] = {
38 .name = "pcie_mac_p1",
41 .pwr_sta_offs = 0x174,
42 .pwr_sta2nd_offs = 0x178,
43 .sram_pdn_bits = GENMASK(8, 8),
44 .sram_pdn_ack_bits = GENMASK(12, 12),
46 BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_VDNR_PCIE_MAC_P1,
47 MT8195_TOP_AXI_PROT_EN_VDNR_SET,
48 MT8195_TOP_AXI_PROT_EN_VDNR_CLR,
49 MT8195_TOP_AXI_PROT_EN_VDNR_STA1),
50 BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_VDNR_1_PCIE_MAC_P1,
51 MT8195_TOP_AXI_PROT_EN_VDNR_1_SET,
52 MT8195_TOP_AXI_PROT_EN_VDNR_1_CLR,
53 MT8195_TOP_AXI_PROT_EN_VDNR_1_STA1),
56 [MT8195_POWER_DOMAIN_PCIE_PHY] = {
60 .pwr_sta_offs = 0x174,
61 .pwr_sta2nd_offs = 0x178,
62 .caps = MTK_SCPD_ACTIVE_WAKEUP,
64 [MT8195_POWER_DOMAIN_SSUSB_PCIE_PHY] = {
65 .name = "ssusb_pcie_phy",
68 .pwr_sta_offs = 0x174,
69 .pwr_sta2nd_offs = 0x178,
70 .caps = MTK_SCPD_ACTIVE_WAKEUP | MTK_SCPD_ALWAYS_ON,
72 [MT8195_POWER_DOMAIN_CSI_RX_TOP] = {
76 .pwr_sta_offs = 0x174,
77 .pwr_sta2nd_offs = 0x178,
78 .caps = MTK_SCPD_KEEP_DEFAULT_OFF,
80 [MT8195_POWER_DOMAIN_ETHER] = {
84 .pwr_sta_offs = 0x16c,
85 .pwr_sta2nd_offs = 0x170,
86 .sram_pdn_bits = GENMASK(8, 8),
87 .sram_pdn_ack_bits = GENMASK(12, 12),
88 .caps = MTK_SCPD_ACTIVE_WAKEUP,
90 [MT8195_POWER_DOMAIN_ADSP] = {
94 .pwr_sta_offs = 0x16c,
95 .pwr_sta2nd_offs = 0x170,
96 .sram_pdn_bits = GENMASK(8, 8),
97 .sram_pdn_ack_bits = GENMASK(12, 12),
99 BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_2_ADSP,
100 MT8195_TOP_AXI_PROT_EN_2_SET,
101 MT8195_TOP_AXI_PROT_EN_2_CLR,
102 MT8195_TOP_AXI_PROT_EN_2_STA1),
104 .caps = MTK_SCPD_SRAM_ISO | MTK_SCPD_ACTIVE_WAKEUP,
106 [MT8195_POWER_DOMAIN_AUDIO] = {
110 .pwr_sta_offs = 0x16c,
111 .pwr_sta2nd_offs = 0x170,
112 .sram_pdn_bits = GENMASK(8, 8),
113 .sram_pdn_ack_bits = GENMASK(12, 12),
115 BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_2_AUDIO,
116 MT8195_TOP_AXI_PROT_EN_2_SET,
117 MT8195_TOP_AXI_PROT_EN_2_CLR,
118 MT8195_TOP_AXI_PROT_EN_2_STA1),
121 [MT8195_POWER_DOMAIN_MFG0] = {
125 .pwr_sta_offs = 0x174,
126 .pwr_sta2nd_offs = 0x178,
127 .sram_pdn_bits = GENMASK(8, 8),
128 .sram_pdn_ack_bits = GENMASK(12, 12),
129 .caps = MTK_SCPD_KEEP_DEFAULT_OFF | MTK_SCPD_DOMAIN_SUPPLY,
131 [MT8195_POWER_DOMAIN_MFG1] = {
135 .pwr_sta_offs = 0x174,
136 .pwr_sta2nd_offs = 0x178,
137 .sram_pdn_bits = GENMASK(8, 8),
138 .sram_pdn_ack_bits = GENMASK(12, 12),
140 BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_MFG1,
141 MT8195_TOP_AXI_PROT_EN_SET,
142 MT8195_TOP_AXI_PROT_EN_CLR,
143 MT8195_TOP_AXI_PROT_EN_STA1),
144 BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_2_MFG1,
145 MT8195_TOP_AXI_PROT_EN_2_SET,
146 MT8195_TOP_AXI_PROT_EN_2_CLR,
147 MT8195_TOP_AXI_PROT_EN_2_STA1),
148 BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_1_MFG1,
149 MT8195_TOP_AXI_PROT_EN_1_SET,
150 MT8195_TOP_AXI_PROT_EN_1_CLR,
151 MT8195_TOP_AXI_PROT_EN_1_STA1),
152 BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_2_MFG1_2ND,
153 MT8195_TOP_AXI_PROT_EN_2_SET,
154 MT8195_TOP_AXI_PROT_EN_2_CLR,
155 MT8195_TOP_AXI_PROT_EN_2_STA1),
156 BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_MFG1_2ND,
157 MT8195_TOP_AXI_PROT_EN_SET,
158 MT8195_TOP_AXI_PROT_EN_CLR,
159 MT8195_TOP_AXI_PROT_EN_STA1),
160 BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_SUB_INFRA_VDNR_MFG1,
161 MT8195_TOP_AXI_PROT_EN_SUB_INFRA_VDNR_SET,
162 MT8195_TOP_AXI_PROT_EN_SUB_INFRA_VDNR_CLR,
163 MT8195_TOP_AXI_PROT_EN_SUB_INFRA_VDNR_STA1),
165 .caps = MTK_SCPD_KEEP_DEFAULT_OFF | MTK_SCPD_DOMAIN_SUPPLY,
167 [MT8195_POWER_DOMAIN_MFG2] = {
171 .pwr_sta_offs = 0x174,
172 .pwr_sta2nd_offs = 0x178,
173 .sram_pdn_bits = GENMASK(8, 8),
174 .sram_pdn_ack_bits = GENMASK(12, 12),
175 .caps = MTK_SCPD_KEEP_DEFAULT_OFF,
177 [MT8195_POWER_DOMAIN_MFG3] = {
181 .pwr_sta_offs = 0x174,
182 .pwr_sta2nd_offs = 0x178,
183 .sram_pdn_bits = GENMASK(8, 8),
184 .sram_pdn_ack_bits = GENMASK(12, 12),
185 .caps = MTK_SCPD_KEEP_DEFAULT_OFF,
187 [MT8195_POWER_DOMAIN_MFG4] = {
191 .pwr_sta_offs = 0x174,
192 .pwr_sta2nd_offs = 0x178,
193 .sram_pdn_bits = GENMASK(8, 8),
194 .sram_pdn_ack_bits = GENMASK(12, 12),
195 .caps = MTK_SCPD_KEEP_DEFAULT_OFF,
197 [MT8195_POWER_DOMAIN_MFG5] = {
201 .pwr_sta_offs = 0x174,
202 .pwr_sta2nd_offs = 0x178,
203 .sram_pdn_bits = GENMASK(8, 8),
204 .sram_pdn_ack_bits = GENMASK(12, 12),
205 .caps = MTK_SCPD_KEEP_DEFAULT_OFF,
207 [MT8195_POWER_DOMAIN_MFG6] = {
211 .pwr_sta_offs = 0x174,
212 .pwr_sta2nd_offs = 0x178,
213 .sram_pdn_bits = GENMASK(8, 8),
214 .sram_pdn_ack_bits = GENMASK(12, 12),
215 .caps = MTK_SCPD_KEEP_DEFAULT_OFF,
217 [MT8195_POWER_DOMAIN_VPPSYS0] = {
221 .pwr_sta_offs = 0x16c,
222 .pwr_sta2nd_offs = 0x170,
223 .sram_pdn_bits = GENMASK(8, 8),
224 .sram_pdn_ack_bits = GENMASK(12, 12),
226 BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_VPPSYS0,
227 MT8195_TOP_AXI_PROT_EN_SET,
228 MT8195_TOP_AXI_PROT_EN_CLR,
229 MT8195_TOP_AXI_PROT_EN_STA1),
230 BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_MM_2_VPPSYS0,
231 MT8195_TOP_AXI_PROT_EN_MM_2_SET,
232 MT8195_TOP_AXI_PROT_EN_MM_2_CLR,
233 MT8195_TOP_AXI_PROT_EN_MM_2_STA1),
234 BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_VPPSYS0_2ND,
235 MT8195_TOP_AXI_PROT_EN_SET,
236 MT8195_TOP_AXI_PROT_EN_CLR,
237 MT8195_TOP_AXI_PROT_EN_STA1),
238 BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_MM_2_VPPSYS0_2ND,
239 MT8195_TOP_AXI_PROT_EN_MM_2_SET,
240 MT8195_TOP_AXI_PROT_EN_MM_2_CLR,
241 MT8195_TOP_AXI_PROT_EN_MM_2_STA1),
242 BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_SUB_INFRA_VDNR_VPPSYS0,
243 MT8195_TOP_AXI_PROT_EN_SUB_INFRA_VDNR_SET,
244 MT8195_TOP_AXI_PROT_EN_SUB_INFRA_VDNR_CLR,
245 MT8195_TOP_AXI_PROT_EN_SUB_INFRA_VDNR_STA1),
248 [MT8195_POWER_DOMAIN_VDOSYS0] = {
252 .pwr_sta_offs = 0x16c,
253 .pwr_sta2nd_offs = 0x170,
254 .sram_pdn_bits = GENMASK(8, 8),
255 .sram_pdn_ack_bits = GENMASK(12, 12),
257 BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_MM_VDOSYS0,
258 MT8195_TOP_AXI_PROT_EN_MM_SET,
259 MT8195_TOP_AXI_PROT_EN_MM_CLR,
260 MT8195_TOP_AXI_PROT_EN_MM_STA1),
261 BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_VDOSYS0,
262 MT8195_TOP_AXI_PROT_EN_SET,
263 MT8195_TOP_AXI_PROT_EN_CLR,
264 MT8195_TOP_AXI_PROT_EN_STA1),
265 BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_SUB_INFRA_VDNR_VDOSYS0,
266 MT8195_TOP_AXI_PROT_EN_SUB_INFRA_VDNR_SET,
267 MT8195_TOP_AXI_PROT_EN_SUB_INFRA_VDNR_CLR,
268 MT8195_TOP_AXI_PROT_EN_SUB_INFRA_VDNR_STA1),
271 [MT8195_POWER_DOMAIN_VPPSYS1] = {
275 .pwr_sta_offs = 0x16c,
276 .pwr_sta2nd_offs = 0x170,
277 .sram_pdn_bits = GENMASK(8, 8),
278 .sram_pdn_ack_bits = GENMASK(12, 12),
280 BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_MM_VPPSYS1,
281 MT8195_TOP_AXI_PROT_EN_MM_SET,
282 MT8195_TOP_AXI_PROT_EN_MM_CLR,
283 MT8195_TOP_AXI_PROT_EN_MM_STA1),
284 BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_MM_VPPSYS1_2ND,
285 MT8195_TOP_AXI_PROT_EN_MM_SET,
286 MT8195_TOP_AXI_PROT_EN_MM_CLR,
287 MT8195_TOP_AXI_PROT_EN_MM_STA1),
288 BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_MM_2_VPPSYS1,
289 MT8195_TOP_AXI_PROT_EN_MM_2_SET,
290 MT8195_TOP_AXI_PROT_EN_MM_2_CLR,
291 MT8195_TOP_AXI_PROT_EN_MM_2_STA1),
294 [MT8195_POWER_DOMAIN_VDOSYS1] = {
298 .pwr_sta_offs = 0x16c,
299 .pwr_sta2nd_offs = 0x170,
300 .sram_pdn_bits = GENMASK(8, 8),
301 .sram_pdn_ack_bits = GENMASK(12, 12),
303 BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_MM_VDOSYS1,
304 MT8195_TOP_AXI_PROT_EN_MM_SET,
305 MT8195_TOP_AXI_PROT_EN_MM_CLR,
306 MT8195_TOP_AXI_PROT_EN_MM_STA1),
307 BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_MM_VDOSYS1_2ND,
308 MT8195_TOP_AXI_PROT_EN_MM_SET,
309 MT8195_TOP_AXI_PROT_EN_MM_CLR,
310 MT8195_TOP_AXI_PROT_EN_MM_STA1),
311 BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_MM_2_VDOSYS1,
312 MT8195_TOP_AXI_PROT_EN_MM_2_SET,
313 MT8195_TOP_AXI_PROT_EN_MM_2_CLR,
314 MT8195_TOP_AXI_PROT_EN_MM_2_STA1),
317 [MT8195_POWER_DOMAIN_DP_TX] = {
321 .pwr_sta_offs = 0x16c,
322 .pwr_sta2nd_offs = 0x170,
323 .sram_pdn_bits = GENMASK(8, 8),
324 .sram_pdn_ack_bits = GENMASK(12, 12),
326 BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_VDNR_1_DP_TX,
327 MT8195_TOP_AXI_PROT_EN_VDNR_1_SET,
328 MT8195_TOP_AXI_PROT_EN_VDNR_1_CLR,
329 MT8195_TOP_AXI_PROT_EN_VDNR_1_STA1),
331 .caps = MTK_SCPD_KEEP_DEFAULT_OFF,
333 [MT8195_POWER_DOMAIN_EPD_TX] = {
337 .pwr_sta_offs = 0x16c,
338 .pwr_sta2nd_offs = 0x170,
339 .sram_pdn_bits = GENMASK(8, 8),
340 .sram_pdn_ack_bits = GENMASK(12, 12),
342 BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_VDNR_1_EPD_TX,
343 MT8195_TOP_AXI_PROT_EN_VDNR_1_SET,
344 MT8195_TOP_AXI_PROT_EN_VDNR_1_CLR,
345 MT8195_TOP_AXI_PROT_EN_VDNR_1_STA1),
347 .caps = MTK_SCPD_KEEP_DEFAULT_OFF,
349 [MT8195_POWER_DOMAIN_HDMI_TX] = {
353 .pwr_sta_offs = 0x16c,
354 .pwr_sta2nd_offs = 0x170,
355 .sram_pdn_bits = GENMASK(8, 8),
356 .sram_pdn_ack_bits = GENMASK(12, 12),
357 .caps = MTK_SCPD_KEEP_DEFAULT_OFF | MTK_SCPD_ACTIVE_WAKEUP,
359 [MT8195_POWER_DOMAIN_WPESYS] = {
363 .pwr_sta_offs = 0x16c,
364 .pwr_sta2nd_offs = 0x170,
365 .sram_pdn_bits = GENMASK(8, 8),
366 .sram_pdn_ack_bits = GENMASK(12, 12),
368 BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_MM_2_WPESYS,
369 MT8195_TOP_AXI_PROT_EN_MM_2_SET,
370 MT8195_TOP_AXI_PROT_EN_MM_2_CLR,
371 MT8195_TOP_AXI_PROT_EN_MM_2_STA1),
372 BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_MM_WPESYS,
373 MT8195_TOP_AXI_PROT_EN_MM_SET,
374 MT8195_TOP_AXI_PROT_EN_MM_CLR,
375 MT8195_TOP_AXI_PROT_EN_MM_STA1),
376 BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_MM_2_WPESYS_2ND,
377 MT8195_TOP_AXI_PROT_EN_MM_2_SET,
378 MT8195_TOP_AXI_PROT_EN_MM_2_CLR,
379 MT8195_TOP_AXI_PROT_EN_MM_2_STA1),
382 [MT8195_POWER_DOMAIN_VDEC0] = {
386 .pwr_sta_offs = 0x16c,
387 .pwr_sta2nd_offs = 0x170,
388 .sram_pdn_bits = GENMASK(8, 8),
389 .sram_pdn_ack_bits = GENMASK(12, 12),
391 BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_MM_VDEC0,
392 MT8195_TOP_AXI_PROT_EN_MM_SET,
393 MT8195_TOP_AXI_PROT_EN_MM_CLR,
394 MT8195_TOP_AXI_PROT_EN_MM_STA1),
395 BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_MM_2_VDEC0,
396 MT8195_TOP_AXI_PROT_EN_MM_2_SET,
397 MT8195_TOP_AXI_PROT_EN_MM_2_CLR,
398 MT8195_TOP_AXI_PROT_EN_MM_2_STA1),
399 BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_MM_VDEC0_2ND,
400 MT8195_TOP_AXI_PROT_EN_MM_SET,
401 MT8195_TOP_AXI_PROT_EN_MM_CLR,
402 MT8195_TOP_AXI_PROT_EN_MM_STA1),
403 BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_MM_2_VDEC0_2ND,
404 MT8195_TOP_AXI_PROT_EN_MM_2_SET,
405 MT8195_TOP_AXI_PROT_EN_MM_2_CLR,
406 MT8195_TOP_AXI_PROT_EN_MM_2_STA1),
408 .caps = MTK_SCPD_KEEP_DEFAULT_OFF,
410 [MT8195_POWER_DOMAIN_VDEC1] = {
414 .pwr_sta_offs = 0x16c,
415 .pwr_sta2nd_offs = 0x170,
416 .sram_pdn_bits = GENMASK(8, 8),
417 .sram_pdn_ack_bits = GENMASK(12, 12),
419 BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_MM_VDEC1,
420 MT8195_TOP_AXI_PROT_EN_MM_SET,
421 MT8195_TOP_AXI_PROT_EN_MM_CLR,
422 MT8195_TOP_AXI_PROT_EN_MM_STA1),
423 BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_MM_VDEC1_2ND,
424 MT8195_TOP_AXI_PROT_EN_MM_SET,
425 MT8195_TOP_AXI_PROT_EN_MM_CLR,
426 MT8195_TOP_AXI_PROT_EN_MM_STA1),
428 .caps = MTK_SCPD_KEEP_DEFAULT_OFF,
430 [MT8195_POWER_DOMAIN_VDEC2] = {
434 .pwr_sta_offs = 0x16c,
435 .pwr_sta2nd_offs = 0x170,
436 .sram_pdn_bits = GENMASK(8, 8),
437 .sram_pdn_ack_bits = GENMASK(12, 12),
439 BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_MM_2_VDEC2,
440 MT8195_TOP_AXI_PROT_EN_MM_2_SET,
441 MT8195_TOP_AXI_PROT_EN_MM_2_CLR,
442 MT8195_TOP_AXI_PROT_EN_MM_2_STA1),
443 BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_MM_2_VDEC2_2ND,
444 MT8195_TOP_AXI_PROT_EN_MM_2_SET,
445 MT8195_TOP_AXI_PROT_EN_MM_2_CLR,
446 MT8195_TOP_AXI_PROT_EN_MM_2_STA1),
448 .caps = MTK_SCPD_KEEP_DEFAULT_OFF,
450 [MT8195_POWER_DOMAIN_VENC] = {
454 .pwr_sta_offs = 0x16c,
455 .pwr_sta2nd_offs = 0x170,
456 .sram_pdn_bits = GENMASK(8, 8),
457 .sram_pdn_ack_bits = GENMASK(12, 12),
459 BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_MM_VENC,
460 MT8195_TOP_AXI_PROT_EN_MM_SET,
461 MT8195_TOP_AXI_PROT_EN_MM_CLR,
462 MT8195_TOP_AXI_PROT_EN_MM_STA1),
463 BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_MM_VENC_2ND,
464 MT8195_TOP_AXI_PROT_EN_MM_SET,
465 MT8195_TOP_AXI_PROT_EN_MM_CLR,
466 MT8195_TOP_AXI_PROT_EN_MM_STA1),
467 BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_MM_2_VENC,
468 MT8195_TOP_AXI_PROT_EN_MM_2_SET,
469 MT8195_TOP_AXI_PROT_EN_MM_2_CLR,
470 MT8195_TOP_AXI_PROT_EN_MM_2_STA1),
472 .caps = MTK_SCPD_KEEP_DEFAULT_OFF,
474 [MT8195_POWER_DOMAIN_VENC_CORE1] = {
475 .name = "venc_core1",
478 .pwr_sta_offs = 0x16c,
479 .pwr_sta2nd_offs = 0x170,
480 .sram_pdn_bits = GENMASK(8, 8),
481 .sram_pdn_ack_bits = GENMASK(12, 12),
483 BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_MM_VENC_CORE1,
484 MT8195_TOP_AXI_PROT_EN_MM_SET,
485 MT8195_TOP_AXI_PROT_EN_MM_CLR,
486 MT8195_TOP_AXI_PROT_EN_MM_STA1),
487 BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_MM_2_VENC_CORE1,
488 MT8195_TOP_AXI_PROT_EN_MM_2_SET,
489 MT8195_TOP_AXI_PROT_EN_MM_2_CLR,
490 MT8195_TOP_AXI_PROT_EN_MM_2_STA1),
492 .caps = MTK_SCPD_KEEP_DEFAULT_OFF,
494 [MT8195_POWER_DOMAIN_IMG] = {
498 .pwr_sta_offs = 0x16c,
499 .pwr_sta2nd_offs = 0x170,
500 .sram_pdn_bits = GENMASK(8, 8),
501 .sram_pdn_ack_bits = GENMASK(12, 12),
503 BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_MM_IMG,
504 MT8195_TOP_AXI_PROT_EN_MM_SET,
505 MT8195_TOP_AXI_PROT_EN_MM_CLR,
506 MT8195_TOP_AXI_PROT_EN_MM_STA1),
507 BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_MM_IMG_2ND,
508 MT8195_TOP_AXI_PROT_EN_MM_SET,
509 MT8195_TOP_AXI_PROT_EN_MM_CLR,
510 MT8195_TOP_AXI_PROT_EN_MM_STA1),
512 .caps = MTK_SCPD_KEEP_DEFAULT_OFF,
514 [MT8195_POWER_DOMAIN_DIP] = {
518 .pwr_sta_offs = 0x16c,
519 .pwr_sta2nd_offs = 0x170,
520 .sram_pdn_bits = GENMASK(8, 8),
521 .sram_pdn_ack_bits = GENMASK(12, 12),
522 .caps = MTK_SCPD_KEEP_DEFAULT_OFF,
524 [MT8195_POWER_DOMAIN_IPE] = {
528 .pwr_sta_offs = 0x16c,
529 .pwr_sta2nd_offs = 0x170,
530 .sram_pdn_bits = GENMASK(8, 8),
531 .sram_pdn_ack_bits = GENMASK(12, 12),
533 BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_MM_IPE,
534 MT8195_TOP_AXI_PROT_EN_MM_SET,
535 MT8195_TOP_AXI_PROT_EN_MM_CLR,
536 MT8195_TOP_AXI_PROT_EN_MM_STA1),
537 BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_MM_2_IPE,
538 MT8195_TOP_AXI_PROT_EN_MM_2_SET,
539 MT8195_TOP_AXI_PROT_EN_MM_2_CLR,
540 MT8195_TOP_AXI_PROT_EN_MM_2_STA1),
542 .caps = MTK_SCPD_KEEP_DEFAULT_OFF,
544 [MT8195_POWER_DOMAIN_CAM] = {
548 .pwr_sta_offs = 0x16c,
549 .pwr_sta2nd_offs = 0x170,
550 .sram_pdn_bits = GENMASK(8, 8),
551 .sram_pdn_ack_bits = GENMASK(12, 12),
553 BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_2_CAM,
554 MT8195_TOP_AXI_PROT_EN_2_SET,
555 MT8195_TOP_AXI_PROT_EN_2_CLR,
556 MT8195_TOP_AXI_PROT_EN_2_STA1),
557 BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_MM_CAM,
558 MT8195_TOP_AXI_PROT_EN_MM_SET,
559 MT8195_TOP_AXI_PROT_EN_MM_CLR,
560 MT8195_TOP_AXI_PROT_EN_MM_STA1),
561 BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_1_CAM,
562 MT8195_TOP_AXI_PROT_EN_1_SET,
563 MT8195_TOP_AXI_PROT_EN_1_CLR,
564 MT8195_TOP_AXI_PROT_EN_1_STA1),
565 BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_MM_CAM_2ND,
566 MT8195_TOP_AXI_PROT_EN_MM_SET,
567 MT8195_TOP_AXI_PROT_EN_MM_CLR,
568 MT8195_TOP_AXI_PROT_EN_MM_STA1),
569 BUS_PROT_WR(MT8195_TOP_AXI_PROT_EN_MM_2_CAM,
570 MT8195_TOP_AXI_PROT_EN_MM_2_SET,
571 MT8195_TOP_AXI_PROT_EN_MM_2_CLR,
572 MT8195_TOP_AXI_PROT_EN_MM_2_STA1),
574 .caps = MTK_SCPD_KEEP_DEFAULT_OFF,
576 [MT8195_POWER_DOMAIN_CAM_RAWA] = {
580 .pwr_sta_offs = 0x16c,
581 .pwr_sta2nd_offs = 0x170,
582 .sram_pdn_bits = GENMASK(8, 8),
583 .sram_pdn_ack_bits = GENMASK(12, 12),
584 .caps = MTK_SCPD_KEEP_DEFAULT_OFF,
586 [MT8195_POWER_DOMAIN_CAM_RAWB] = {
590 .pwr_sta_offs = 0x16c,
591 .pwr_sta2nd_offs = 0x170,
592 .sram_pdn_bits = GENMASK(8, 8),
593 .sram_pdn_ack_bits = GENMASK(12, 12),
594 .caps = MTK_SCPD_KEEP_DEFAULT_OFF,
596 [MT8195_POWER_DOMAIN_CAM_MRAW] = {
600 .pwr_sta_offs = 0x16c,
601 .pwr_sta2nd_offs = 0x170,
602 .sram_pdn_bits = GENMASK(8, 8),
603 .sram_pdn_ack_bits = GENMASK(12, 12),
604 .caps = MTK_SCPD_KEEP_DEFAULT_OFF,
608 static const struct scpsys_soc_data mt8195_scpsys_data = {
609 .domains_data = scpsys_domain_data_mt8195,
610 .num_domains = ARRAY_SIZE(scpsys_domain_data_mt8195),
613 #endif /* __SOC_MEDIATEK_MT8195_PM_DOMAINS_H */