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