sdk-ameba-v4.0b-gcc/component/soc/realtek/8711b/misc/rtl8710b_freertos_pmu.h
Tautvydas Belgeras 60a7afcc83 initial commit
2018-06-05 16:16:17 +03:00

45 lines
1.3 KiB
C

#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);
void pmu_tickless_debug(u32 NewStatus);
void pmu_set_dev_wakeup_tick(u32 nDeviceId, u32 Ms);
extern u32 tickless_debug;
extern u32 tick_last_tcp;
#endif