DLPS Platform Exported Functions

group DLPS_PLATFORM_Exported_Functions

Functions

void platform_pm_set_power_mode(PlatformPowerMode pf_power_mode_user)

Set platform power mode.

Parameters:

mode -- [in] Platform power mode, refer to PlatformPowerMode.

PlatformPowerMode platform_pm_get_power_mode(void)

Get platform power mode.

Returns:

Platform power mode, refer to PlatformPowerMode.

void btmac_pm_set_power_mode(BtmacPowerMode bz_power_mode_user)

Set BT power mode.

Parameters:

mode -- [in] BT power mode, refer to BtmacPowerMode.

BtmacPowerMode btmac_pm_get_power_mode(void)

Get BT power mode.

Returns:

BT power mode, refer to BtmacPowerMode.

inline void lps_mode_pause(void)

Pause low power mode. API increments a control value by 1. If the control value > 0, low power mode is not allowed to enter.

inline void lps_mode_resume(void)

Resume low power mode. API decrements a control value by 1. If the control value is reduced to 0, low power mode is allowed to enter.

inline bool dlps_check_cb_reg(DLPSEnterCheckFunc func)

Register check callback function to power manager. In idle task, system will call this function each time before entering DLPS to decide whether DLPS is allowed to enter.

Parameters:

func -- [in] Check callback function, refer to DLPSEnterCheckFunc.

Returns:

Operation result.

inline bool dlps_hw_control_cb_reg(DLPSHWControlFunc func, PlatformPMStage dlpsStage)

Register callback function to power manager which will call it in different power stages.

Parameters:
Returns:

Operation result.

PlatformPowerModeErrorCode platform_pm_get_error_code(void)

Get error reason which prevents system from entering low power mode.

Returns:

Error reason which prevents the system from entering low power mode, refer to PlatformPowerModeErrorCode.

uint32_t *platform_pm_get_refuse_reason(void)

Get callback function which prevents the system from entering low power mode.

Returns:

Address of callback function which prevents the system from entering low power mode.

PlatformWakeupReason platform_pm_get_wakeup_reason(void)

Get wake-up reason when low power mode is exited.

Returns:

Wake-up reason, refer to PlatformWakeupReason.

void platform_pm_get_statistics(uint32_t *wakeup_count, uint32_t *last_wakeup_clk, uint32_t *last_sleep_clk)

Get debug information of DLPS mode.

Parameters:
  • wakeup_count -- [out] Total counts of entering and exiting DLPS.

  • last_wakeup_clk -- [out] Last wake-up clock, unit: 31.25us.

  • last_sleep_clk -- [out] Last sleep clock, unit: 31.25us.

void platform_pm_stop_all_non_excluded_timer(void)

Stop all of the SW timers which will wake up low power mode.

void set_boot_active_time(uint32_t active_time_ms)

Set active time after boot before entering into dlps.

Parameters:

active_time_ms -- [in] time to keep active, unit ms.

inline void lps_mode_set(PlatformPowerMode mode)

Set low power mode.

Parameters:

mode -- [in] Platform power mode, refer to PlatformPowerMode.

inline PlatformPowerMode lps_mode_get(void)

Get low power mode.

Returns:

Platform power mode, , refer to PlatformPowerMode.

inline uint32_t lps_wakeup_count_get(void)

Return dlps wakeup counts.

Returns:

DLPS wake up counts.

inline void set_dataram_to_shutdown(DATARAM_SHUTDOWN_LEVEL level)

Set data ram to shut down instead of deep sleep when enter dlps to reduce power consumption. Data ram(total 104k) divides into 5 blocks: 32k + 32k + 32k + 4k + 4k.

Parameters:

level -- [in] Data SRAM shutdown level, refer to DATARAM_SHUTDOWN_LEVEL.

Variables

bool (*os_register_pm_excluded_handle)(void **pp_handle, PlatformExcludedHandleType type)

Exclude SW timer or task from low power wake list, SW timer needs to be one-shot timer.

Param handle:

[in] Handle of SW timer or task.

Param type:

[in] Type of SW timer or task, refer to PlatformExcludedHandleType.

Return:

Operation status

bool (*os_unregister_pm_excluded_handle)(void **pp_handle, PlatformExcludedHandleType type)

Cancel exclude SW timer or task from low power wake list.

Param handle:

[in] Handle of timer or task.

Param type:

[in] Type of timer or task, refer to PlatformExcludedHandleType.

Return:

Operation status