1*a24b53e0SWenzhen Yu /* 2*a24b53e0SWenzhen Yu * Copyright (c) 2025, Mediatek Inc. All rights reserved. 3*a24b53e0SWenzhen Yu * 4*a24b53e0SWenzhen Yu * SPDX-License-Identifier: BSD-3-Clause 5*a24b53e0SWenzhen Yu */ 6*a24b53e0SWenzhen Yu 7*a24b53e0SWenzhen Yu #ifndef MT_SPM_CONSERVATION_H 8*a24b53e0SWenzhen Yu #define MT_SPM_CONSERVATION_H 9*a24b53e0SWenzhen Yu 10*a24b53e0SWenzhen Yu #include <mt_spm.h> 11*a24b53e0SWenzhen Yu #include <mt_spm_internal.h> 12*a24b53e0SWenzhen Yu 13*a24b53e0SWenzhen Yu int spm_conservation(int state_id, uint32_t ext_opand, 14*a24b53e0SWenzhen Yu struct spm_lp_scen *spm_lp, 15*a24b53e0SWenzhen Yu uint32_t resource_req); 16*a24b53e0SWenzhen Yu 17*a24b53e0SWenzhen Yu void spm_conservation_finish(int state_id, uint32_t ext_opand, 18*a24b53e0SWenzhen Yu struct spm_lp_scen *spm_lp, 19*a24b53e0SWenzhen Yu struct wake_status **status); 20*a24b53e0SWenzhen Yu 21*a24b53e0SWenzhen Yu int spm_conservation_get_result(struct wake_status **res); 22*a24b53e0SWenzhen Yu 23*a24b53e0SWenzhen Yu int spm_conservation_fw_run(uint32_t first, void *pwrctrl); 24*a24b53e0SWenzhen Yu 25*a24b53e0SWenzhen Yu int spm_conservation_wakeup_obs(int IsSet, int cat, 26*a24b53e0SWenzhen Yu uint32_t wake_src_bits); 27*a24b53e0SWenzhen Yu 28*a24b53e0SWenzhen Yu void mt_uart_save(void); 29*a24b53e0SWenzhen Yu void mt_uart_restore(void); 30*a24b53e0SWenzhen Yu #endif /* MT_SPM_CONSERVATION_H */ 31