1 /* SPDX-License-Identifier: GPL-2.0-only OR MIT */
3 #include <device/mmio.h>
4 #include <soc/infracfg.h>
5 #include <soc/mtcmos.h>
9 VPPSYS0_PROT_STEP_6_MASK
= 0x00100000,
10 VPPSYS0_PROT_STEP_5_MASK
= 0x00276C16,
11 VPPSYS0_PROT_STEP_4_MASK
= 0x00800000,
12 VPPSYS0_PROT_STEP_3_MASK
= 0x00800200,
13 VPPSYS0_PROT_STEP_2_MASK
= 0x80302846,
14 VPPSYS0_PROT_STEP_1_MASK
= 0x00000400,
15 VDOSYS0_PROT_STEP_4_MASK
= 0x00000060,
16 VDOSYS0_PROT_STEP_3_MASK
= 0x00800000,
17 VDOSYS0_PROT_STEP_2_MASK
= 0x00000020,
18 VDOSYS0_PROT_STEP_1_MASK
= 0x00100000,
19 VPPSYS1_PROT_STEP_3_MASK
= 0x00040000,
20 VPPSYS1_PROT_STEP_2_MASK
= 0x00800000,
21 VPPSYS1_PROT_STEP_1_MASK
= 0x00000020,
22 VDOSYS1_PROT_STEP_3_MASK
= 0x00000400,
23 VDOSYS1_PROT_STEP_2_MASK
= 0x00400000,
24 VDOSYS1_PROT_STEP_1_MASK
= 0x40000000,
25 ADSP_PROT_STEP_2_MASK
= 0x00001000,
26 ADSP_PROT_STEP_1_MASK
= 0x00100000,
27 AUDIO_PROT_STEP_2_MASK
= 0x00600000,
28 AUDIO_PROT_STEP_1_MASK
= 0x00000F00,
31 void mtcmos_set_scpd_ext_buck_iso(const struct power_domain_data
*pd
)
33 clrbits32(&mtk_spm
->ext_buck_iso
, pd
->ext_buck_iso_bits
);
36 void mtcmos_protect_display_bus(void)
38 write32(&mt8188_infracfg_ao
->infra_topaxi_protecten_sub_infra_vdnr_clr
,
39 VPPSYS0_PROT_STEP_6_MASK
);
40 write32(&mt8188_infracfg_ao
->infra_topaxi_protecten_mm_clr_2
,
41 VPPSYS0_PROT_STEP_5_MASK
);
42 write32(&mt8188_infracfg_ao
->infra_topaxi_protecten_clr
,
43 VPPSYS0_PROT_STEP_4_MASK
);
44 write32(&mt8188_infracfg_ao
->infra_topaxi_protecten_mm_clr_2
,
45 VPPSYS0_PROT_STEP_3_MASK
);
46 write32(&mt8188_infracfg_ao
->infra_topaxi_protecten_mm_clr
,
47 VPPSYS0_PROT_STEP_2_MASK
);
48 write32(&mt8188_infracfg_ao
->infra_topaxi_protecten_clr
,
49 VPPSYS0_PROT_STEP_1_MASK
);
50 write32(&mt8188_infracfg_ao
->infra_topaxi_protecten_sub_infra_vdnr_clr
,
51 VDOSYS0_PROT_STEP_4_MASK
);
52 write32(&mt8188_infracfg_ao
->infra_topaxi_protecten_mm_clr
,
53 VDOSYS0_PROT_STEP_3_MASK
);
54 write32(&mt8188_infracfg_ao
->infra_topaxi_protecten_clr
,
55 VDOSYS0_PROT_STEP_2_MASK
);
56 write32(&mt8188_infracfg_ao
->infra_topaxi_protecten_mm_clr
,
57 VDOSYS0_PROT_STEP_1_MASK
);
58 write32(&mt8188_infracfg_ao
->infra_topaxi_protecten_mm_clr_2
,
59 VPPSYS1_PROT_STEP_3_MASK
);
60 write32(&mt8188_infracfg_ao
->infra_topaxi_protecten_mm_clr
,
61 VPPSYS1_PROT_STEP_2_MASK
);
62 write32(&mt8188_infracfg_ao
->infra_topaxi_protecten_mm_clr
,
63 VPPSYS1_PROT_STEP_1_MASK
);
64 write32(&mt8188_infracfg_ao
->infra_topaxi_protecten_mm_clr_2
,
65 VDOSYS1_PROT_STEP_3_MASK
);
66 write32(&mt8188_infracfg_ao
->infra_topaxi_protecten_mm_clr
,
67 VDOSYS1_PROT_STEP_2_MASK
);
68 write32(&mt8188_infracfg_ao
->infra_topaxi_protecten_mm_clr
,
69 VDOSYS1_PROT_STEP_1_MASK
);
72 void mtcmos_protect_audio_bus(void)
74 write32(&mt8188_infracfg_ao
->infra_topaxi_protecten_clr_2
,
75 ADSP_PROT_STEP_2_MASK
);
76 write32(&mt8188_infracfg_ao
->infra_topaxi_protecten_clr_2
,
77 ADSP_PROT_STEP_1_MASK
);
78 write32(&mt8188_infracfg_ao
->infra_topaxi_protecten_clr_2
,
79 AUDIO_PROT_STEP_2_MASK
);
80 write32(&mt8188_infracfg_ao
->infra_topaxi_protecten_clr_2
,
81 AUDIO_PROT_STEP_1_MASK
);