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