api_pwr.h 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. #ifndef _API_PWR_H_
  2. #define _API_PWR_H_
  3. typedef enum{
  4. PMU_CFG_BUCK_EN = BIT(0),
  5. PMU_CFG_CHARGE_DIS = BIT(1),
  6. PMU_CFG_VUSB_TO_VDDIO = BIT(7),
  7. }PMU_CFG_ENUM;
  8. /**
  9. * @brief pmu initialization
  10. * @param pmu_cfg: PMU_CFG_ENUM
  11. */
  12. void pmu_init(u8 pmu_cfg);
  13. /**
  14. * @brief get vddio level, vddio = 2.4V + 0.1V * level
  15. * @return level: 0 ~ 0xF
  16. */
  17. u8 pmu_get_vddio(void);
  18. /**
  19. * @brief get vrtc24 voltage values, uint:mV
  20. * @return vrtc24 voltage value, about 2400mv
  21. */
  22. u16 pmu_get_vrtc24_mv(void);
  23. /**
  24. * @brief set vddio level, vddio = 2.4V + 0.1V * level
  25. * @param level: 0 ~ 0xF
  26. */
  27. void pmu_set_vddio(u8 level);
  28. /**
  29. * @brief get vddcore level, vddcore = 0.7 + 0.025 * x
  30. * @return level: 0 ~ 0x1F
  31. */
  32. u8 pmu_get_vddcore(void);
  33. /**
  34. * @brief set vddcore level, vddcore = 0.7 + 0.025 * x
  35. * @param level: 0 ~ 0x1F
  36. */
  37. void pmu_set_vddcore(uint8_t level);
  38. /**
  39. * @brief get vbat saradc voltage distribution coefficient
  40. * @return vbat saradc voltage distribution coefficient, about 2 * 1000
  41. */
  42. u16 pmu_get_vbatdet(void);
  43. /**
  44. * @brief get lvd level
  45. * @return level: 0 ~ 0x7
  46. */
  47. u8 pmu_get_lvd(void);
  48. /**
  49. * @brief set lvd level
  50. 0: 1.7V
  51. 1: 1.8V
  52. 2-7: 2.0V + 0.2V * (level - 2)
  53. * @param level: 0 ~ 0x7
  54. */
  55. void pmu_set_lvd(u8 level);
  56. /**
  57. * @brief enable buck mode or disable buck mode
  58. * @param 1:enable buck mode 0:disable buck mode, pmu work in ldo mode
  59. */
  60. void pmu_set_buck_mode(u8 buck_en);
  61. bool pmu_vddio_to_flash(void);
  62. u8 charge_const_curr_trim(u8 val);
  63. u8 charge_cutoff_curr_trim(u8 val);
  64. void lowpwr_sleep_sfr_save(void);
  65. void lowpwr_sleep_sfr_resume(void);
  66. void lp_sleep(void (*sleep_cb)(void), void (*wakeup_cb)(void));
  67. #endif // _API_PWR_H_