bq25601.h 7.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262
  1. /*****************************************************************************
  2. *
  3. * Filename:
  4. * ---------
  5. * bq25601.h
  6. *
  7. * Project:
  8. * --------
  9. * Android
  10. *
  11. * Description:
  12. * ------------
  13. * bq25601 header file
  14. *
  15. * Author:
  16. * -------
  17. *
  18. ****************************************************************************/
  19. #ifndef _bq25601_SW_H_
  20. #define _bq25601_SW_H_
  21. #define bq25601_CON0 0x00
  22. #define bq25601_CON1 0x01
  23. #define bq25601_CON2 0x02
  24. #define bq25601_CON3 0x03
  25. #define bq25601_CON4 0x04
  26. #define bq25601_CON5 0x05
  27. #define bq25601_CON6 0x06
  28. #define bq25601_CON7 0x07
  29. #define bq25601_CON8 0x08
  30. #define bq25601_CON9 0x09
  31. #define bq25601_CON10 0x0A
  32. #define bq25601_CON11 0x0B
  33. #define bq25601_REG_NUM 12
  34. /**********************************************************
  35. *
  36. * [MASK/SHIFT]
  37. *
  38. *********************************************************/
  39. //CON0
  40. #define CON0_EN_HIZ_MASK 0x01
  41. #define CON0_EN_HIZ_SHIFT 7
  42. #define CON0_STAT_IMON_CTRL_MASK 0x03
  43. #define CON0_STAT_IMON_CTRL_SHIFT 5
  44. #define CON0_IINLIM_MASK 0x1F
  45. #define CON0_IINLIM_SHIFT 0
  46. //CON1
  47. #define CON1_PFM_MASK 0x01
  48. #define CON1_PFM_SHIFT 7
  49. #define CON1_WDT_RST_MASK 0x01
  50. #define CON1_WDT_RST_SHIFT 6
  51. #define CON1_OTG_CONFIG_MASK 0x01
  52. #define CON1_OTG_CONFIG_SHIFT 5
  53. #define CON1_CHG_CONFIG_MASK 0x01
  54. #define CON1_CHG_CONFIG_SHIFT 4
  55. #define CON1_SYS_MIN_MASK 0x07
  56. #define CON1_SYS_MIN_SHIFT 1
  57. #define CON1_MIN_VBAT_SEL_MASK 0x01
  58. #define CON1_MIN_VBAT_SEL_SHIFT 0
  59. //CON2
  60. #define CON2_BOOST_LIM_MASK 0x01
  61. #define CON2_BOOST_LIM_SHIFT 7
  62. #define CON2_Q1_FULLON_MASK 0x01
  63. #define CON2_Q1_FULLON_SHIFT 6
  64. #define CON2_ICHG_MASK 0x3F
  65. #define CON2_ICHG_SHIFT 0
  66. //CON3
  67. #define CON3_IPRECHG_MASK 0x0F
  68. #define CON3_IPRECHG_SHIFT 4
  69. #define CON3_ITERM_MASK 0x0F
  70. #define CON3_ITERM_SHIFT 0
  71. //CON4
  72. #define CON4_VREG_MASK 0x1F
  73. #define CON4_VREG_SHIFT 3
  74. #define CON4_TOPOFF_TIMER_MASK 0x03
  75. #define CON4_TOPOFF_TIMER_SHIFT 1
  76. #define CON4_VRECHG_MASK 0x01
  77. #define CON4_VRECHG_SHIFT 0
  78. //CON5
  79. #define CON5_EN_TERM_MASK 0x01
  80. #define CON5_EN_TERM_SHIFT 7
  81. #define CON5_WATCHDOG_MASK 0x03
  82. #define CON5_WATCHDOG_SHIFT 4
  83. #define CON5_EN_TIMER_MASK 0x01
  84. #define CON5_EN_TIMER_SHIFT 3
  85. #define CON5_CHG_TIMER_MASK 0x01
  86. #define CON5_CHG_TIMER_SHIFT 2
  87. #define CON5_TREG_MASK 0x01
  88. #define CON5_TREG_SHIFT 1
  89. //CON6
  90. #define CON6_OVP_MASK 0x03
  91. #define CON6_OVP_SHIFT 6
  92. #define CON6_BOOSTV_MASK 0x3
  93. #define CON6_BOOSTV_SHIFT 4
  94. #define CON6_VINDPM_MASK 0x0F
  95. #define CON6_VINDPM_SHIFT 0
  96. //CON7
  97. #define CON7_FORCE_DPDM_MASK 0x01
  98. #define CON7_FORCE_DPDM_SHIFT 7
  99. #define CON7_TMR2X_EN_MASK 0x01
  100. #define CON7_TMR2X_EN_SHIFT 6
  101. #define CON7_BATFET_Disable_MASK 0x01
  102. #define CON7_BATFET_Disable_SHIFT 5
  103. #define CON7_BATFET_DLY_MASK 0x01
  104. #define CON7_BATFET_DLY_SHIFT 3
  105. #define CON7_BATFET_RST_EN_MASK 0x01
  106. #define CON7_BATFET_RST_EN_SHIFT 2
  107. #define CON7_VDPM_BAT_TRACK_MASK 0x03
  108. #define CON7_VDPM_BAT_TRACK_SHIFT 0
  109. //CON8
  110. #define CON8_VBUS_STAT_MASK 0x07
  111. #define CON8_VBUS_STAT_SHIFT 5
  112. #define CON8_CHRG_STAT_MASK 0x03
  113. #define CON8_CHRG_STAT_SHIFT 3
  114. #define CON8_PG_STAT_MASK 0x01
  115. #define CON8_PG_STAT_SHIFT 2
  116. #define CON8_THERM_STAT_MASK 0x01
  117. #define CON8_THERM_STAT_SHIFT 1
  118. #define CON8_VSYS_STAT_MASK 0x01
  119. #define CON8_VSYS_STAT_SHIFT 0
  120. //CON9
  121. #define CON9_WATCHDOG_FAULT_MASK 0x01
  122. #define CON9_WATCHDOG_FAULT_SHIFT 7
  123. #define CON9_OTG_FAULT_MASK 0x01
  124. #define CON9_OTG_FAULT_SHIFT 6
  125. #define CON9_CHRG_FAULT_MASK 0x03
  126. #define CON9_CHRG_FAULT_SHIFT 4
  127. #define CON9_BAT_FAULT_MASK 0x01
  128. #define CON9_BAT_FAULT_SHIFT 3
  129. #define CON9_NTC_FAULT_MASK 0x07
  130. #define CON9_NTC_FAULT_SHIFT 0
  131. //CON10
  132. #define CON10_VBUS_GD_MASK 0x01
  133. #define CON10_VBUS_GD_SHIFT 7
  134. #define CON10_VINDPM_STAT_MASK 0x01
  135. #define CON10_VINDPM_STAT_SHIFT 6
  136. #define CON10_IINDPM_STAT_MASK 0x01
  137. #define CON10_IINDPM_STAT_SHIFT 5
  138. #define CON10_TOPOFF_ACTIVE_MASK 0x01
  139. #define CON10_TOPOFF_ACTIVE_SHIFT 3
  140. #define CON10_ACOV_STAT_MASK 0x01
  141. #define CON10_ACOV_STAT_SHIFT 2
  142. #define CON10_VINDPM_INT_MASK 0x01
  143. #define CON10_VINDPM_INT_SHIFT 1
  144. #define CON10_INT_MASK_MASK 0x03
  145. #define CON10_INT_MASK_SHIFT 0
  146. //CON11
  147. #define CON11_REG_RST_MASK 0x01
  148. #define CON11_REG_RST_SHIFT 7
  149. #define CON11_PN_MASK 0x0F
  150. #define CON11_PN_SHIFT 3
  151. #define CON11_Rev_MASK 0x03
  152. #define CON11_Rev_SHIFT 0
  153. /**********************************************************
  154. *
  155. * [Extern Function]
  156. *
  157. *********************************************************/
  158. //CON0----------------------------------------------------
  159. extern void bq25601_set_en_hiz(unsigned int val);
  160. extern void bq25601_set_vindpm(unsigned int val);
  161. extern void bq25601_set_iinlim(unsigned int val);
  162. //CON1----------------------------------------------------
  163. extern void bq25601_set_reg_rst(unsigned int val);
  164. extern void bq25601_set_pfm(unsigned int val);
  165. extern void bq25601_set_wdt_rst(unsigned int val);
  166. extern void bq25601_set_chg_config(unsigned int val);
  167. extern void bq25601_set_otg_config(unsigned int val);
  168. extern void bq25601_set_sys_min(unsigned int val);
  169. extern void bq25601_set_boost_lim(unsigned int val);
  170. //CON2----------------------------------------------------
  171. extern void bq25601_set_ichg(unsigned int val);
  172. extern void bq25601_set_rdson(unsigned int val);
  173. extern void bq25601_set_force_20pct(unsigned int val);
  174. //CON3----------------------------------------------------
  175. extern void bq25601_set_iprechg(unsigned int val);
  176. extern void bq25601_set_iterm(unsigned int val);
  177. //CON4----------------------------------------------------
  178. extern void bq25601_set_vreg(unsigned int val);
  179. extern void bq25601_set_batlowv(unsigned int val);
  180. extern void bq25601_set_vrechg(unsigned int val);
  181. extern void bq25601_set_topoff_timer(unsigned int val);
  182. //CON5----------------------------------------------------
  183. extern void bq25601_set_en_term(unsigned int val);
  184. extern void bq25601_set_term_stat(unsigned int val);
  185. extern void bq25601_set_watchdog(unsigned int val);
  186. extern void bq25601_set_en_timer(unsigned int val);
  187. extern void bq25601_set_chg_timer(unsigned int val);
  188. //CON6----------------------------------------------------
  189. extern void bq25601_set_treg(unsigned int val);
  190. //CON7----------------------------------------------------
  191. extern void bq25601_set_tmr2x_en(unsigned int val);
  192. extern void bq25601_set_batfet_disable(unsigned int val);
  193. extern void bq25601_set_int_mask(unsigned int val);
  194. //CON8----------------------------------------------------
  195. extern unsigned int bq25601_get_system_status(void);
  196. extern unsigned int bq25601_get_vbus_stat(void);
  197. extern unsigned int bq25601_get_chrg_stat(void);
  198. extern unsigned int bq25601_get_vsys_stat(void);
  199. //---------------------------------------------------------
  200. // extern void bq25601_dump_register(void);
  201. // extern unsigned int bq25601_reg_config_interface (unsigned char RegNum, unsigned char val);
  202. extern int bq25601_chg_probe(void);
  203. extern unsigned int bq25601_read_interface (unsigned char RegNum, unsigned char *val, unsigned char MASK, unsigned char SHIFT);
  204. extern unsigned int bq25601_config_interface (unsigned char RegNum, unsigned char val, unsigned char MASK, unsigned char SHIFT);
  205. #endif // _bq25601_SW_H_