xref: /rk3399_ARM-atf/plat/mediatek/drivers/spm/mt8189/mt_spm_idle.h (revision b67e984664a8644d6cfd1812cabaa02cf24f09c9)
1 /*
2  * Copyright (c) 2025, Mediatek Inc. All rights reserved.
3  *
4  * SPDX-License-Identifier: BSD-3-Clause
5  */
6 
7 #ifndef MT_SPM_IDLE_H
8 #define MT_SPM_IDLE_H
9 
10 #include <mt_spm_internal.h>
11 
12 typedef int (*spm_idle_conduct)(int state_id, struct spm_lp_scen *spm_lp,
13 				uint32_t *resource_req);
14 
15 typedef int (*spm_idle_conduct_restore)(int state_id,
16 					struct spm_lp_scen *spm_lp,
17 					struct wake_status *status);
18 
19 int mt_spm_idle_generic_enter(int state_id, uint32_t ext_opand,
20 			      spm_idle_conduct fn);
21 void mt_spm_idle_generic_resume(int state_id, uint32_t ext_opand,
22 				struct wake_status **status,
23 				spm_idle_conduct_restore fn);
24 
25 int mt_spm_idle_generic_get_spm_lp(struct spm_lp_scen **lp);
26 
27 #endif /* MT_SPM_IDLE_H */
28