PM APIs¶
PM Interface¶
The BK PM Driver supports following logical PM interfaces:
BK enter different sleep mode interface
BK clock control interface
BK power control interface
API Reference¶
Functions¶
-
void
bk_enter_deep_sleep_mode
(PS_DEEP_CTRL_PARAM *deep_param)¶ Request deep sleep,and wakeup by gpio/rtc/usb.
- Return
void
- Parameters
deep_param
: param of deeps leepwake_up_way wakeup mode gpio/rtc/usb
gpio_index_map:The gpio bitmap which set 1 enable wakeup deep sleep. gpio_index_map is hex and every bits is map to gpio0-gpio31.
gpio_edge_map:The gpio edge bitmap for wakeup gpios, gpio_edge_map is hex and every bits is map to gpio0-gpio31. 0:rising,1:falling.
gpio_stay_lo_map:The gpio bitmap which need stay ,not change in deep sleep. gpio_index_lo_map is hex and every bits is map to gpio0-gpio31.
gpio_last_index_map:The gpio bitmap which set 1 enable wakeup deep sleep. gpio_index_map is hex and every bits is map to gpio32-gpio39.
gpio_last_edge_map:The gpio edge bitmap for wakeup gpios, gpio_edge_map is hex and every bits is map to gpio32-gpio39. 0:rising,1:falling.
gpio_stay_hi_map:The gpio bitmap which need stay ,not change in deep sleep. gpio_index_lo_map is hex and every bits is map to gpio32-gpio39.
sleep_time:the time secound when use PS_DEEP_WAKEUP_RTC wakeup.
lpo_32k_src:the RTC wakeup source.LPO_SELECT_ROSC or LPO_SELECT_32K_XTAL.
sleep_mode MCU_LOW_VOLTAGE_SLEEP or other
-
UINT32
bk_wlan_instant_lowvol_sleep
(PS_DEEP_CTRL_PARAM *lowvol_param)¶ Request low vol sleep,and wakeup by gpio/rtc/usb.
- Return
kNoErr : success
othesr : failed
- Parameters
lowvol_param
: param of low lov leepwake_up_way wakeup mode gpio/rtc/usb
gpio_index_map:The gpio bitmap which set 1 enable wakeup deep sleep. gpio_index_map is hex and every bits is map to gpio0-gpio31.
gpio_edge_map:The gpio edge bitmap for wakeup gpios, gpio_edge_map is hex and every bits is map to gpio0-gpio31. 0:rising,1:falling.
gpio_stay_lo_map:The gpio bitmap which need stay ,not change in deep sleep. gpio_index_lo_map is hex and every bits is map to gpio0-gpio31.
gpio_last_index_map:The gpio bitmap which set 1 enable wakeup deep sleep. gpio_index_map is hex and every bits is map to gpio32-gpio39.
gpio_last_edge_map:The gpio edge bitmap for wakeup gpios, gpio_edge_map is hex and every bits is map to gpio32-gpio39. 0:rising,1:falling.
gpio_stay_hi_map:The gpio bitmap which need stay ,not change in deep sleep. gpio_index_lo_map is hex and every bits is map to gpio32-gpio39.
sleep_time:the time secound when use PS_DEEP_WAKEUP_RTC wakeup.
lpo_32k_src:the RTC wakeup source.LPO_SELECT_ROSC or LPO_SELECT_32K_XTAL.
sleep_mode MCU_LOW_VOLTAGE_SLEEP or other
-
int
bk_wlan_dtim_rf_ps_mode_enable
(void)¶ Enable dtim power save,close rf,and wakeup by ieee dtim dynamical.
- Return
kNoErr : success
others : failed
- Parameters
void
:
-
int
bk_wlan_dtim_rf_ps_mode_disable
(void)¶ Request exit power save by ieee dtim.
- Return
kNoErr : success.
othesr : failed
- Parameters
void
:
-
void
power_save_set_listen_int
(UINT16 listen_int)¶ set wifi listen interval in dtim sleep mode
- Parameters
listen_int
: dtim listen interval
-
void
power_save_set_hw_tim_cnt_limit
(uint32_t cnt)¶ set wifi hw_ tim interval in dtim sleep mode.
- Attention
Set the cnt_limit for hw_tim, once hw_tim_cnt is over cnt_limit, hw_tim will be disabled until next beacon received (hw_tim_cnt reset to 0).
- Return
void
- Parameters
cnt
: : The cnt limit you want to pass, pass 0 if you want to disable hw_tim.
-
int
bk_wlan_mcu_ps_mode_enable
(void)¶ Enable mcu power save,close mcu ,and wakeup by irq.
- Return
kNoErr : success.
others : failed
- Parameters
void
:
-
int
bk_wlan_mcu_ps_mode_disable
(void)¶ Disenable mcu power save.
- Return
kNoErr : success.
others : failed
- Parameters
void
:
-
bool
sctrl_set_gpio_wakeup_index
(UINT8 gpio_index, WAKEUP_GPIO_TYPE gpio_type)¶ set GPIO wakeup in wifi keepalive
- Return
true : success.
false : failed
- Parameters
gpio_index:
: Pin x used to wakeup low voltage sleepgpio_type:
:0 - low level
1 - high level
2 - posedge
3 - negedge