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