bsp_charge.h 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. #ifndef _BSP_CHARGE_H
  2. #define _BSP_CHARGE_H
  3. typedef struct {
  4. u16 on_cnt;
  5. u16 off_cnt;
  6. u16 on_delay;
  7. u16 off_delay;
  8. } inbox_cb_t;
  9. extern inbox_cb_t inbox_cb;
  10. typedef struct {
  11. u8 out2pwr_en; //拿起开机
  12. u8 leakage_sta;
  13. u8 dc_in;
  14. volatile u8 inbox_rtt_check; //是否中断进行inbox实时检测
  15. u32 counter;
  16. u32 ticks;
  17. u8 pwrsave_en;
  18. } ch_box_cb_t;
  19. extern ch_box_cb_t chbox_cb;
  20. void bsp_charge_off(void);
  21. void bsp_charge_init(void);
  22. void charge_detect(void);
  23. void bsp_charge_sta(u8 sta);
  24. void bsp_set_stop_time(u16 stop_time);
  25. u8 charge_dc_detect(void);
  26. void bsp_charge_bled_ctrl(void);
  27. u8 bsp_charge_box_sta(void);
  28. void bsp_charge_inbox_wakeup_enable(void);
  29. u8 bsp_charge_inbox_check(void);
  30. void bsp_charge_leakage_set(u8 sta, u8 val);
  31. int bsp_charge_outbox_stable_check(void);
  32. void bsp_charge_inbox_chk_init(u16 off_delay, u16 on_delay);
  33. void bsp_charge_inbox_process(void);
  34. void bsp_charge_power_save(void);
  35. void bsp_charge_power_recover(void);
  36. void bsp_charge_box_exit(void);
  37. void bsp_charge_box_enter(u32 out_auto_pwron);
  38. u32 bsp_charge_box_process(void);
  39. bool bsp_chbox_type_is_maintain_volt(void);
  40. void bsp_charge_box_reinit(void);
  41. bool bsp_charge_inbox_leakage_check(void);
  42. void charge_box_var_init(void);
  43. u32 bsp_charge_get_leakage_level(void);
  44. void charge_tsen_check(u8 change_cnt);
  45. #define vusb_delay_rst_en(nsec) {VBRSTCON = ((nsec * 33) << 20) | BIT(30);} //vusb delay n second reset enable
  46. #define vusb_delay_rst_dis() {RTCCPND = 3 << 28;} //clr counter and pending, disable
  47. #define vusb_delay_rst_kick() {RTCCPND = BIT(30);} //kick start vusb reset delay counter
  48. #endif