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