xref: /rk3399_ARM-atf/plat/mediatek/mt8186/drivers/spm/mt_spm_idle.h (revision 1f4adc3a34f80249d40bfc7033a65f4217d7ee04)
1*7ac6a76cSjason-ch chen /*
2*7ac6a76cSjason-ch chen  * Copyright (c) 2022, MediaTek Inc. All rights reserved.
3*7ac6a76cSjason-ch chen  *
4*7ac6a76cSjason-ch chen  * SPDX-License-Identifier: BSD-3-Clause
5*7ac6a76cSjason-ch chen  */
6*7ac6a76cSjason-ch chen 
7*7ac6a76cSjason-ch chen #ifndef MT_SPM_IDLE_H
8*7ac6a76cSjason-ch chen #define MT_SPM_IDLE_H
9*7ac6a76cSjason-ch chen 
10*7ac6a76cSjason-ch chen typedef void (*spm_idle_conduct)(struct spm_lp_scen *spm_lp, unsigned int *resource_req);
11*7ac6a76cSjason-ch chen 
12*7ac6a76cSjason-ch chen typedef int (*spm_idle_conduct_restore)(int state_id,
13*7ac6a76cSjason-ch chen 					struct spm_lp_scen *spm_lp,
14*7ac6a76cSjason-ch chen 					struct wake_status *status);
15*7ac6a76cSjason-ch chen 
16*7ac6a76cSjason-ch chen int mt_spm_idle_generic_enter(int state_id, unsigned int ext_opand, spm_idle_conduct fn);
17*7ac6a76cSjason-ch chen 
18*7ac6a76cSjason-ch chen void mt_spm_idle_generic_resume(int state_id, unsigned int ext_opand,
19*7ac6a76cSjason-ch chen 				struct wake_status **status,
20*7ac6a76cSjason-ch chen 				spm_idle_conduct_restore fn);
21*7ac6a76cSjason-ch chen 
22*7ac6a76cSjason-ch chen void mt_spm_idle_generic_init(void);
23*7ac6a76cSjason-ch chen 
24*7ac6a76cSjason-ch chen #endif /* MT_SPM_IDLE_H */
25