sdk-ameba-v4.0c_180328/component/soc/realtek/8711b/misc/rtl8710b_freertos_pmu.h
2019-04-02 16:34:25 +08:00

47 lines
1.3 KiB
C
Executable file

#ifndef _FREERTOS_PMU_8710B_H_
#define _FREERTOS_PMU_8710B_H_
#define PMU_DEVICE_TIMER_DEFAULT_INTERVAL 2000
#define PMU_DEVICE_TIMER_MAX_INTERVAL (1000*30) /* max 30sec */
typedef struct
{
u32 nDeviceId;
PSM_HOOK_FUN sleep_hook_fun;
void* sleep_param_ptr;
PSM_HOOK_FUN wakeup_hook_fun;
void* wakeup_param_ptr;
}PSM_DD_HOOK_INFO;
typedef struct
{
u32 nDeviceId;
PSM_HOOK_FUN late_resume_hook_fun;
void* late_resume_param_ptr;
}PSM_DD_DELAY_HOOK_INFO;
/**
* @brief init system active timer for PMU.
* @param none.
* @retval status value:
* - 0: _FAIL
* - 1: _SUCCESS
* @note can just used in late resume or later, can not used in wakeup_hook_fun.
*/
uint32_t pmu_yield_os_check(void);
uint32_t pmu_sysactive_timer_init(void);
void pmu_register_delay_callback(u32 nDeviceId, PSM_HOOK_FUN late_resume_hook_fun, void* late_resume_param_ptr);
void pmu_unregister_delay_callback(u32 nDeviceId);
u32 pmu_exec_sleep_hook_funs(void);
void pmu_exec_wakeup_hook_funs(u32 nDeviceIdMax);
uint32_t pmu_set_sleep_type(uint32_t type);
uint32_t pmu_set_delta_tick(float value);
#if CONFIG_LWIP_LAYER
extern uint32_t LWIP_Get_Dynamic_Sleep_Interval();
#endif
extern u32 tickless_debug;
extern u32 tick_last_tcp;
#endif