unsioc pm ================================ Introduction ========================= unisoc pm is a native library based on linux. Interface description ========================= pm_status_t pm_init(void); function: Initialize power manager, timer settings, related hardware resource settings, etc. Parameter None Return value Success returns PM_OK Failure returns error code ------------------------- pm_status_t pm_set_sleep_mode(sleep_mode_t sleep_mode); function Set the sleep mode Parameter sleep_mode: currently only deep-sleep mode Return value Success returns PM_OK Failure returns error code ------------------------- pm_status_t pm_auto_sleep_enable(unsigned int interval_time_ms); function Enable automatic sleep, will enter the set sleep mode after timeout Parameter interval_time_ms: automatic sleep trigger interval, unit ms Return value: Success returns PM_OK Failure returns error code ------------------------- pm_status_t pm_auto_sleep_disable(void); function Disable automatic sleep, if the automatic sleep timer has not expired, the automatic sleep timer will be deleted Parameter None Return value Success returns PM_OK Failure returns error code ------------------------- pm_status_t pm_do_sleep(unsigned int sleep_time_in_ms); function Immediately enter the set sleep mode, if sleep_tiem_in_ms > 0 will set wakeup timer, automatic wakeup after timeout Parameter sleep_timer_in_ms: 0, enter sleep >0, set wakeup timer and enter sleep Return value Success returns PM_OK Failure returns error code ------------------------- pm_status_t pm_register_wakeup_cb(wakeup_cb func, char *name, int name_len); function Register/Unregister wakeup callback, called when awakened Parameter func: callback function pointer, if function pointer is NULL will unregister wakeup callback name: callback module name buffer pointer name_len: callbacke module name buffer length Return value Success returns PM_OK Failure returns error code ------------------------- pm_status_t pm_do_wakeup(void); function Set the wake-up state Parameter None Return value Success returns PM_OK Failure returns error code ------------------------- void pm_wake_lock(void); function Wake lock counter count plus 1, wake lock counter count greater than 0 will not enter the sleep mode Parameter None Return value None ------------------------- void pm_wake_unlock(void); function Wake lock counter count minus 1, wake lock counter count greater than 0 will not enter the sleep mode Parameter None Return value None ------------------------- bool pm_wake_is_locked(void); function Query if the wake lock counter count is greater than 0 Parameter None Return value Sleep lock counter count greater than 0 returns true and vice versa returns false Notes ========================= In deep-sleep mode, the AP side enters the deep sleep state, and the upper software stops running. In this mode, external interrupt (including RTC alarm interrupt) is needed to wake up, and the upper software continues to run after waking up. pm_do_sleep and pm_do_wakeup need to be invoked in pairs. It is suggested that pm_do_wakeup be added to the external interrupt process of wake-up source as a callback function. Refer to the demo directory for example code. Maintainers ========================= * Xiufeng Wu <xiufeng.wu@unisoc.com>