159 lines
3.3 KiB
Plaintext
159 lines
3.3 KiB
Plaintext
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>
|