123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- #ifndef _BSP_CHARGE_H
- #define _BSP_CHARGE_H
- typedef struct {
- u16 on_cnt;
- u16 off_cnt;
- u16 on_delay;
- u16 off_delay;
- } inbox_cb_t;
- extern inbox_cb_t inbox_cb;
- typedef struct {
- u8 out2pwr_en; //拿起开机
- u8 leakage_sta;
- u8 dc_in;
- volatile u8 inbox_rtt_check; //是否中断进行inbox实时检测
- u32 counter;
- u32 ticks;
- u8 pwrsave_en;
- } ch_box_cb_t;
- extern ch_box_cb_t chbox_cb;
- void bsp_charge_off(void);
- void bsp_charge_init(void);
- void charge_detect(void);
- void bsp_charge_sta(u8 sta);
- void bsp_set_stop_time(u16 stop_time);
- u8 charge_dc_detect(void);
- void bsp_charge_bled_ctrl(void);
- u8 bsp_charge_box_sta(void);
- void bsp_charge_inbox_wakeup_enable(void);
- u8 bsp_charge_inbox_check(void);
- void bsp_charge_leakage_set(u8 sta, u8 val);
- int bsp_charge_outbox_stable_check(void);
- void bsp_charge_inbox_chk_init(u16 off_delay, u16 on_delay);
- void bsp_charge_inbox_process(void);
- void bsp_charge_power_save(void);
- void bsp_charge_power_recover(void);
- void bsp_charge_box_exit(void);
- void bsp_charge_box_enter(u32 out_auto_pwron);
- u32 bsp_charge_box_process(void);
- bool bsp_chbox_type_is_maintain_volt(void);
- void bsp_charge_box_reinit(void);
- bool bsp_charge_inbox_leakage_check(void);
- void charge_box_var_init(void);
- u32 bsp_charge_get_leakage_level(void);
- void charge_tsen_check(u8 change_cnt);
- #define vusb_delay_rst_en(nsec) {VBRSTCON = ((nsec * 33) << 20) | BIT(30);} //vusb delay n second reset enable
- #define vusb_delay_rst_dis() {RTCCPND = 3 << 28;} //clr counter and pending, disable
- #define vusb_delay_rst_kick() {RTCCPND = BIT(30);} //kick start vusb reset delay counter
- #endif
|