hpm_bcfg_drv.h 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. /*
  2. * Copyright (c) 2022 HPMicro
  3. *
  4. * SPDX-License-Identifier: BSD-3-Clause
  5. *
  6. */
  7. #ifndef HPM_BCFG_DRV_H
  8. #define HPM_BCFG_DRV_H
  9. #include "hpm_common.h"
  10. #include "hpm_bcfg_regs.h"
  11. /**
  12. *
  13. * @brief BCFG driver APIs
  14. * @defgroup bcfg_interface BCFG driver APIs
  15. * @ingroup io_interfaces
  16. * @{
  17. */
  18. #ifdef __cplusplus
  19. extern "C" {
  20. #endif
  21. /**
  22. * @brief enable VBAT LP mode
  23. *
  24. * @param[in] ptr base address
  25. */
  26. static inline void bcfg_vbg_enable_lp_mode(BCFG_Type *ptr)
  27. {
  28. ptr->VBG_CFG |= BCFG_VBG_CFG_LP_MODE_MASK;
  29. }
  30. /**
  31. * @brief disable VBAT LP mode
  32. *
  33. * @param[in] ptr base address
  34. */
  35. static inline void bcfg_vbg_disable_lp_mode(BCFG_Type *ptr)
  36. {
  37. ptr->VBG_CFG &= ~BCFG_VBG_CFG_LP_MODE_MASK;
  38. }
  39. /**
  40. * @brief enable power save mode
  41. *
  42. * @param[in] ptr base address
  43. */
  44. static inline void bcfg_vbg_enable_power_save_mode(BCFG_Type *ptr)
  45. {
  46. ptr->VBG_CFG |= BCFG_VBG_CFG_POWER_SAVE_MASK;
  47. }
  48. /**
  49. * @brief disable power save mode
  50. *
  51. * @param[in] ptr base address
  52. */
  53. static inline void bcfg_vbg_disable_power_save_mode(BCFG_Type *ptr)
  54. {
  55. ptr->VBG_CFG &= ~BCFG_VBG_CFG_POWER_SAVE_MASK;
  56. }
  57. /**
  58. * @brief set ldo voltage
  59. *
  60. * @param[in] ptr base address
  61. * @param[in] voltage target voltage
  62. */
  63. static inline void bcfg_ldo_set_voltage(BCFG_Type *ptr, uint16_t voltage)
  64. {
  65. ptr->LDO_CFG = (ptr->LDO_CFG & ~(BCFG_LDO_CFG_VOLT_MASK)) | BCFG_LDO_CFG_VOLT_SET(voltage);
  66. }
  67. /**
  68. * @brief enable ldo
  69. *
  70. * @param[in] ptr base address
  71. */
  72. static inline void bcfg_ldo_enable(BCFG_Type *ptr)
  73. {
  74. ptr->LDO_CFG |= BCFG_LDO_CFG_ENABLE_MASK;
  75. }
  76. /**
  77. * @brief disable ldo
  78. *
  79. * @param[in] ptr base address
  80. */
  81. static inline void bcfg_ldo_disable(BCFG_Type *ptr)
  82. {
  83. ptr->LDO_CFG &= ~BCFG_LDO_CFG_ENABLE_MASK;
  84. }
  85. #ifdef __cplusplus
  86. }
  87. #endif
  88. /**
  89. * @}
  90. */
  91. #endif /* HPM_BCFG_DRV_H */