DRV_PMU
DRV_PMU API Status
API |
|---|
DRV_PMU API Reference
Header File
Functions
-
int32_t drv_pmu_initialise(void)
pmu driver initialise.
pmu driver的初始化,主要是中断的注册,开机的时候调用一次
- 返回值:
0 – success [BK_RET_OK]
other – fail
- 返回:
result
-
int32_t drv_pmu_reg_vusb_callback(pfunc_vusb_cb_t pfn_cb, bool enable)
注册充电口的vusb中断.
如果多个用户注册,只有最后一个是生效的
- 参数:
pfn_cb – [in] 注册的callback中断函数
enable – [in] true: 注册 false: 反注册
- 返回值:
0 – success [BK_RET_OK]
other – fail
- 返回:
result
-
int32_t drv_pmu_reg_ana_callback(pfunc_wkup_cb_t pfn_cb, bool enable)
注册模拟部分的其他中断callback.
如果多个用户注册,只有最后一个是生效的
- 参数:
pfn_cb – [in] 注册的callback中断函数
enable – [in] true: 注册 false: 反注册
- 返回值:
0 – success [BK_RET_OK]
other – fail
- 返回:
result
-
int32_t drv_pmu_enable_mbist_check_bypass(bool bypass)
enable Mbist memory check bypass or not.
- 参数:
bypass – [in] true: bypass false: not bypass(default)
- 返回值:
0 – success [BK_RET_OK]
other – fail
- 返回:
result
-
int32_t drv_pmu_select_aon_32k_source(drv_pmu_32k_src_e e_src)
select aon 32k source.
- 参数:
e_src – [in] see drv_pmu_32k_src_e
- 返回值:
0 – success [BK_RET_OK]
other – fail
- 返回:
result
-
int32_t drv_pmu_select_watchdog_dest(drv_pmu_wdt_dst_e e_wdt_rst_dst, bool permit)
select watch dog reset destionation.
配置watchdog reset的时候reset哪些部分
- 参数:
e_wdt_rst_dst – [in] see drv_pmu_wdt_dst_e,枚举类型可以或起来一起传入
permit – [in] true: permit false: not permit
- 返回值:
0 – success [BK_RET_OK]
other – fail
- 返回:
result
-
int32_t drv_pmu_enable_usb_interrput(drv_pmu_usb_voltage_e e_vol, bool enable_irq, bool irq_lvl_low)
config usb interrupt.
配置充电口的中断电压选择
- 参数:
e_vol – [in] 选择的中断电压 see drv_pmu_usb_voltage_e
enable_irq – [in] true: enable interrutp false: disable interrupt
irq_lvl_low – [in] true: generate interrrupt in low level false: generate interrrupt in high level
- 返回值:
0 – success [BK_RET_OK]
other – fail
- 返回:
result
-
int32_t drv_pmu_enable_dlp_reset_chip(bool en_reset)
enable DLP reset chip or not.
- 参数:
en_reset – [in] true: enable reset chip false: disable reset chip
- 返回值:
0 – success [BK_RET_OK]
other – fail
- 返回:
result
-
drv_pmu_usb_voltage_e drv_pmu_get_usb_level_active_state(void)
get current usb voltage state
- 返回:
voltage state see drv_pmu_usb_voltage_e
-
int32_t drv_pmu_cfg_wakeup_source(drv_pmu_wakeup_src_e e_src, bool enable_wakeup)
config deep wakeup enable source.
- 参数:
e_src – [in] see drv_pmu_wakeup_src_e
enable_wakeup – [in] true: enable false: disable
- 返回值:
0 – success [BK_RET_OK]
other – fail
- 返回:
result
-
int32_t drv_pmu_enable_ana_interrput(uint32_t ana_idx, bool enable_irq, bool irq_lvl_low)
config analog wakeup.
模拟wakeup的中断配置
- 参数:
ana_idx – [in] analog wakeup index, 0 ~ 7, see @drv_pmu_ana_src_e
enable_irq – [in] true: enable interrupt false: disable interrupt
irq_lvl_low – [in] true: generate interrrupt in low level false: generate interrrupt in high level
- 返回值:
0 – success [BK_RET_OK]
other – fail
- 返回:
result
-
int32_t drv_pmu_cfg_dlp_pull(bool pull_en, bool pull_down)
DLP pull config.
- 参数:
pull_en – [in] true: enable pull false: disable pull
pull_down – [in] true: pull down false: pull up
- 返回值:
0 – success [BK_RET_OK]
other – fail
- 返回:
result
-
int32_t drv_pmu_cfg_dlp_driver_strength(uint32_t strenth)
配置DLP的驱动强度
- 参数:
strenth – [in] 驱动强度 0~3 ,default=0
- 返回值:
0 – success [BK_RET_OK]
other – fail
- 返回:
result
-
int32_t drv_pmu_cfg_flash_sck_driver_strength(uint32_t strenth)
配置flash sck的驱动强度
- 参数:
strenth – [in] 驱动强度 0~3 ,default=0
- 返回值:
0 – success [BK_RET_OK]
other – fail
- 返回:
result
-
int32_t drv_pmu_halt_config(pmu_halt_cfg_t *cfg)
drv_pmu_halt_config brief description
- 参数:
cfg – [in] 指向halt config的指针,默认不配置时,该config对应的register默认为0
- 返回值:
0 – success [BK_RET_OK]
other – fail
- 返回:
result
-
int32_t drv_pmu_enable_aon_timer_clk(bool enable)
enable or disable aon timer clock.
控制AON timer的clock是否打开
- 参数:
enable – [in] true: 打开clock false: 关闭clock
- 返回值:
0 – success [BK_RET_OK]
other – fail
- 返回:
result
-
int32_t drv_pmu_set_retention_regbit(uint32_t reg_index, uint32_t bit, uint32_t val)
set retention register bit value.
配置retention register的值,一个有4个retention register,需要指定
- 参数:
reg_index – [in] 0~3, 指定是哪个retention register
bit – [in] 0~31, 指定retention register的哪个bit
val – [in] 0 or 1, 该bit对应的值
- 返回值:
0 – success [BK_RET_OK]
other – fail
- 返回:
result
-
uint32_t drv_pmu_get_retention_regbit(uint32_t reg_index, uint32_t bit)
get retention register bit value.
获取某个retention register的某个bit对应的值
- 参数:
reg_index – [in] 0~3, 指定是哪个retention register
bit – [in] 0~31, 指定retention register的哪个bit
- 返回:
bit value, 0 or 1
-
int32_t drv_pmu_set_retention_reg(uint32_t reg_index, uint32_t reg_val)
set retention register value.
配置retention register的值,一个有4个retention register,需要指定
- 参数:
reg_index – [in] 0~3, 指定是哪个retention register
reg_val – [in] register 对应的值
- 返回值:
0 – success [BK_RET_OK]
other – fail
- 返回:
result
-
uint32_t drv_pmu_get_retention_reg(uint32_t reg_index)
get retention register value.
获取某个retention register的值
- 参数:
reg_index – [in] 0~3, 指定是哪个retention register
- 返回:
register value
-
int32_t drv_pmu_set_rw_wakeup_req(bool value)
drv_pmu_set_rw_wakeup_req.
设置rw唤醒请求
- 参数:
void – [in]
- 返回值:
0 – success [BK_RET_OK]
other – fail
- 返回:
result
-
int32_t drv_pmu_set_bt_iso_en(bool value)
drv_pmu_set_bt_iso_en.
设置bt休眠锁存信号
- 参数:
void – [in]
- 返回值:
0 – success [BK_RET_OK]
other – fail
- 返回:
result
-
uint32_t drv_pmu_get_wakeup_deepsleep_source(void)
get wakeup deepsleep source (register 0x14) bit0: rw bit1: int_TD bit2: touch_wkup bit3: GPIO_DET compare bit4: chg_trc bit5: chg_cv bit6: chg_ccfast bit7: wake_touch bit8: usb4v bit9: usb2v bit10: usb1v bit11: re_chg bit12: chg_finish bit13: rtc bit14: gpio bit15: aon timer
- 返回:
wakeup source
Structures
-
struct pmu_halt_cfg_t
Macros
-
PMU_RETENTION_0_0__FAST_JUMP2FLASH
-
PMU_RETENTION_0_1__4Line_FASTBOOT
-
PMU_RETENTION_0_2__reset_flash
-
PMU_RETENTION_0_3__reset_wait_2times
-
PMU_RETENTION_0_4__charger_in_deepsleep
-
PMU_RETENTION_0_5__charger_first_active
-
PMU_RETENTION_0_6__ota_reboot
-
PMU_RETENTION_0_7__froce_reboot
-
PMU_RETENTION_3_14__keep_rom
Type Definitions
-
typedef enum _drv_pmu_wdt_dst_e drv_pmu_wdt_dst_e
watchdog reset destination select
-
typedef enum _drv_pmu_32k_src_e drv_pmu_32k_src_e
aon 32k source
-
typedef enum _drv_pmu_usb_voltage_e drv_pmu_usb_voltage_e
usb电压
-
typedef void (*pfunc_vusb_cb_t)(drv_pmu_usb_voltage_e e_from, drv_pmu_usb_voltage_e e_to)
vusb interrupt callback
-
typedef enum _drv_pmu_ana_src_e drv_pmu_ana_src_e
analog source define
-
typedef enum _drv_pmu_wakeup_src_e drv_pmu_wakeup_src_e
wakeup source
-
typedef void (*pfunc_wkup_cb_t)(drv_pmu_wakeup_src_e e_src)
wakeup interrupt callback
Enumerations
-
enum _drv_pmu_wdt_dst_e
watchdog reset destination select
Values:
-
enumerator DRV_PMU_WDT_RESET_AON
-
enumerator DRV_PMU_WDT_RESET_DIG
-
enumerator DRV_PMU_WDT_RESET_ANA
-
enumerator DRV_PMU_WDT_RESET_PMU
-
enumerator DRV_PMU_WDT_RESET_AON
-
enum _drv_pmu_32k_src_e
aon 32k source
Values:
-
enumerator DRV_PMU_32K_FROM_26M_DIV
-
enumerator DRV_PMU_32K_FROM_RC32K
-
enumerator DRV_PMU_32K_FROM_26M_DIV
-
enum _drv_pmu_usb_voltage_e
usb电压
Values:
-
enumerator DRV_PMU_USB_0V_MORE
-
enumerator DRV_PMU_USB_1V_MORE
-
enumerator DRV_PMU_USB_2V_MORE
-
enumerator DRV_PMU_USB_4V_MORE
-
enumerator DRV_PMU_USB_0V_MORE
-
enum _drv_pmu_ana_src_e
analog source define
Values:
-
enumerator DRV_PMU_ANA_chg_term
-
enumerator DRV_PMU_ANA_re_chg
-
enumerator DRV_PMU_ANA_chg_ccfast
-
enumerator DRV_PMU_ANA_chg_cv
-
enumerator DRV_PMU_ANA_chg_trc
-
enumerator DRV_PMU_ANA_gpio_det
-
enumerator DRV_PMU_ANA_touch_wkup
-
enumerator DRV_PMU_ANA_int_touch
-
enumerator DRV_PMU_ANA_SRC_MAX
-
enumerator DRV_PMU_ANA_chg_term
-
enum _drv_pmu_wakeup_src_e
wakeup source
Values:
-
enumerator DRV_PMU_WAKEUP_SRC_gpio
-
enumerator DRV_PMU_WAKEUP_SRC_rtc
-
enumerator DRV_PMU_WAKEUP_SRC_ana0_chg_term
-
enumerator DRV_PMU_WAKEUP_SRC_ana1_rechg
-
enumerator DRV_PMU_WAKEUP_SRC_usb1v
-
enumerator DRV_PMU_WAKEUP_SRC_usb2v
-
enumerator DRV_PMU_WAKEUP_SRC_usb4v
-
enumerator DRV_PMU_WAKEUP_SRC_touch
-
enumerator DRV_PMU_WAKEUP_SRC_ana2_chg_ccfast
-
enumerator DRV_PMU_WAKEUP_SRC_ana3_chg_cv
-
enumerator DRV_PMU_WAKEUP_SRC_ana4_chg_trc
-
enumerator DRV_PMU_WAKEUP_SRC_ana5_gpio_det
-
enumerator DRV_PMU_WAKEUP_SRC_ana6_touch_wkup
-
enumerator DRV_PMU_WAKEUP_SRC_ana7_int_touch
-
enumerator DRV_PMU_WAKEUP_SRC_rwip
-
enumerator DRV_PMU_WAKEUP_SRC_aon_timer
-
enumerator DRV_PMU_WAKEUP_SRC_ALL
-
enumerator DRV_PMU_WAKEUP_SRC_gpio