power_manager.h 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143
  1. /*
  2. * Copyright (c) 2018 Actions Semiconductor Co., Ltd
  3. *
  4. * SPDX-License-Identifier: Apache-2.0
  5. */
  6. /**
  7. * @file power manager interface
  8. */
  9. #ifndef __POWER_MANAGER_H__
  10. #define __POWER_MANAGER_H__
  11. //#include "power_supply.h"
  12. /**
  13. * @defgroup power_manager_apis App power Manager APIs
  14. * @ingroup system_apis
  15. * @{
  16. */
  17. #ifdef __cplusplus
  18. extern "C" {
  19. #endif
  20. /** battary state enum */
  21. enum bat_state_e {
  22. /** no battery detacted*/
  23. BAT_STATUS_UNKNOWN = 0,
  24. /** battery charging */
  25. BAT_STATUS_CHARGING,
  26. /** battery charged full */
  27. BAT_STATUS_FULL,
  28. /** battery no charge */
  29. BAT_STATUS_NORMAL,
  30. };
  31. /**
  32. * @brief get system battery capacity
  33. *
  34. *
  35. * @return battery capacity , The unit is the percentage
  36. */
  37. int power_manager_get_battery_capacity(void);
  38. /**
  39. * @brief check if is no power
  40. *
  41. *
  42. */
  43. bool power_manager_check_is_no_power(void);
  44. /**
  45. * @brief check battry if is lowpower
  46. *
  47. *
  48. */
  49. bool power_manager_check_bat_is_lowpower(void);
  50. /**
  51. * @brief check battry if is full
  52. *
  53. *
  54. */
  55. bool power_manager_check_bat_is_full(void);
  56. /**
  57. * @brief get local system battery capacity
  58. *
  59. *
  60. * @return battery capacity , The unit is the percentage
  61. */
  62. int power_manager_get_battery_capacity_local(void);
  63. /**
  64. * @brief check battry if is exit
  65. *
  66. *
  67. */
  68. bool power_manager_check_bat_exit(void);
  69. /**
  70. * @brief get system battery vol
  71. *
  72. *
  73. * @return battery vol , The unit is mv
  74. */
  75. int power_manager_get_battery_vol(void);
  76. /**
  77. * @brief get system charge status
  78. *
  79. *
  80. * @return charget status, POWER_SUPPLY_STATUS_DISCHARGE, POWER_SUPPLY_STATUS_CHARGING... see power_supply_status
  81. */
  82. int power_manager_get_charge_status(void);
  83. /**
  84. * @brief get system dc5v status
  85. *
  86. *
  87. * @return dc5v status, 1 dc5v exist 0 dc5v not exit.
  88. */
  89. int power_manager_get_dc5v_status(void);
  90. /**
  91. * @brief get system dc5v voltage
  92. *
  93. *
  94. * @return dc5v voltage.
  95. */
  96. int power_manager_get_dc5v_voltage(void);
  97. /**
  98. * @brief register system charge status changed callback
  99. *
  100. *
  101. */
  102. int power_manager_init(void);
  103. int power_manager_set_slave_battery_state(int capacity, int vol);
  104. int power_manager_sync_slave_battery_state(void);
  105. int power_manager_get_dc5v_status_chargebox(void);
  106. int power_manger_set_dc5v_pulldown(void);
  107. int power_manger_set_init_charge_consume_ma(int consume);
  108. int power_manger_wake_charger_box(void);
  109. int power_manager_set_before_poweroff(void);
  110. int power_manager_save_last_voltage(bool is_clear);
  111. /**
  112. * @} end defgroup power_manager_apis
  113. */
  114. #ifdef __cplusplus
  115. }
  116. #endif
  117. #endif