xref: /rk3399_ARM-atf/plat/mediatek/mt8183/plat_pm.c (revision 40d553cfde38d4f68449c62967cd1ce0d6478750)
1 /*
2  * Copyright (c) 2019, ARM Limited and Contributors. All rights reserved.
3  *
4  * SPDX-License-Identifier: BSD-3-Clause
5  */
6 
7 /* common headers */
8 #include <arch_helpers.h>
9 #include <assert.h>
10 #include <common/debug.h>
11 #include <lib/mmio.h>
12 #include <lib/psci/psci.h>
13 #include <errno.h>
14 
15 /* mediatek platform specific headers */
16 #include <platform_def.h>
17 #include <scu.h>
18 #include <mtk_plat_common.h>
19 #include <power_tracer.h>
20 #include <plat_private.h>
21 
22 /*******************************************************************************
23  * MTK_platform handler called when an affinity instance is about to be turned
24  * on. The level and mpidr determine the affinity instance.
25  ******************************************************************************/
26 static uintptr_t secure_entrypoint;
27 
28 static const plat_psci_ops_t plat_plat_pm_ops = {
29 	.cpu_standby			= NULL,
30 	.pwr_domain_on			= NULL,
31 	.pwr_domain_on_finish		= NULL,
32 	.pwr_domain_off			= NULL,
33 	.pwr_domain_suspend		= NULL,
34 	.pwr_domain_suspend_finish	= NULL,
35 	.system_off			= NULL,
36 	.system_reset			= NULL,
37 	.validate_power_state		= NULL,
38 	.get_sys_suspend_power_state	= NULL,
39 };
40 
41 int plat_setup_psci_ops(uintptr_t sec_entrypoint,
42 			const plat_psci_ops_t **psci_ops)
43 {
44 	*psci_ops = &plat_plat_pm_ops;
45 	secure_entrypoint = sec_entrypoint;
46 	return 0;
47 }
48