Files
BPI-M2C/source_sync_rls_25c/source/unisoc/power/libpm
2026-09-22 09:38:26 +08:00
..
2026-09-22 09:38:26 +08:00
2026-09-22 09:38:26 +08:00
2026-09-22 09:38:26 +08:00
2026-09-22 09:38:26 +08:00
2026-09-22 09:38:26 +08:00
2026-09-22 09:38:26 +08:00
2026-09-22 09:38:26 +08:00
2026-09-22 09:38:26 +08:00
2026-09-22 09:38:26 +08:00

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 <[email protected]>