bq25890.h 8.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359
  1. /*****************************************************************************
  2. *
  3. * Filename:
  4. * ---------
  5. * bq25890.h
  6. *
  7. * Project:
  8. * --------
  9. * Android
  10. *
  11. * Description:
  12. * ------------
  13. * bq25890 header file
  14. *
  15. * Author:
  16. * -------
  17. *
  18. ****************************************************************************/
  19. #ifndef _bq25890_SW_H_
  20. #define _bq25890_SW_H_
  21. #define bq25890_CON0 0x00
  22. #define bq25890_CON1 0x01
  23. #define bq25890_CON2 0x02
  24. #define bq25890_CON3 0x03
  25. #define bq25890_CON4 0x04
  26. #define bq25890_CON5 0x05
  27. #define bq25890_CON6 0x06
  28. #define bq25890_CON7 0x07
  29. #define bq25890_CON8 0x08
  30. #define bq25890_CON9 0x09
  31. #define bq25890_CONA 0x0A
  32. #define bq25890_CONB 0x0B
  33. #define bq25890_CONC 0x0C
  34. #define bq25890_COND 0x0D
  35. #define bq25890_CONE 0x0E
  36. #define bq25890_CON12 0x12
  37. #define bq25890_CON13 0x13
  38. #define bq25890_REG_NUM 21
  39. #define CON1_RESET_MASK 0x1
  40. #define CON1_RESET_SHIFT 7
  41. //CON0
  42. #define CON0_EN_HIZ_MASK 0x1
  43. #define CON0_EN_HIZ_SHIFT 7
  44. #define CON0_EN_ILIM_MASK 0x1
  45. #define CON0_EN_ILIM_SHIFT 6
  46. #define CON0_IINLIM_MASK 0x3F
  47. #define CON0_IINLIM_SHIFT 0
  48. //CON1
  49. #define CON1_VINDPM_OS_MASK 0x1F
  50. #define CON1_VINDPM_OS_SHIFT 0
  51. //CON2
  52. #define CON2_CONV_START_MASK 0x1
  53. #define CON2_CONV_START_SHIFT 7
  54. #define CON2_CONV_RATE_MASK 0x1
  55. #define CON2_CONV_RATE_SHIFT 6
  56. #define CON2_BOOST_FREQ_MASK 0x1
  57. #define CON2_BOOST_FREQ_SHIFT 5
  58. #define CON2_ICO_EN_MASK 0x1
  59. #define CON2_ICO_EN_RATE_SHIFT 4
  60. #define CON2_HVDCP_EN_MASK 0x1
  61. #define CON2_HVDCP_EN_SHIFT 3
  62. #define CON2_MAX_EN_MASK 0x1
  63. #define CON2_MAX_EN_SHIFT 2
  64. #define CON2_FORCE_DPDM_MASK 0x1
  65. #define CON2_FORCE_DPDM_SHIFT 1
  66. #define CON2_AUTO_DPDM_EN_MASK 0x1
  67. #define CON2_AUTO_DPDM_EN_SHIFT 0
  68. //CON3
  69. #define CON3_BAT_LOADEN_MASK 0x1
  70. #define CON3_BAT_LOADEN_SHIFT 7
  71. #define CON3_WD_MASK 0x1
  72. #define CON3_WD_SHIFT 6
  73. #define CON3_OTG_CONFIG_MASK 0x1
  74. #define CON3_OTG_CONFIG_SHIFT 5
  75. #define CON3_CHG_CONFIG_MASK 0x1
  76. #define CON3_CHG_CONFIG_SHIFT 4
  77. #define CON3_SYS_V_LIMIT_MASK 0x7
  78. #define CON3_SYS_V_LIMIT_SHIFT 1
  79. //CON4
  80. #define CON4_EN_PUMPX_MASK 0x1
  81. #define CON4_EN_PUMPX_SHIFT 7
  82. #define CON4_ICHG_MASK 0x7F
  83. #define CON4_ICHG_SHIFT 0
  84. //CON5
  85. #define CON5_IPRECHG_MASK 0xF
  86. #define CON5_IPRECHG_SHIFT 4
  87. #define CON5_ITERM_MASK 0xF
  88. #define CON5_ITERM_SHIFT 0
  89. //CON6
  90. #define CON6_2XTMR_EN_MASK 0x3F
  91. #define CON6_2XTMR_EN_SHIFT 2
  92. #define CON6_BATLOWV_MASK 0x1
  93. #define CON6_BATLOWV_SHIFT 1
  94. #define CON6_VRECHG_MASK 0x1
  95. #define CON6_VRECHG_SHIFT 0
  96. //CON7
  97. #define CON7_EN_TERM_CHG_MASK 0x1
  98. #define CON7_EN_TERM_CHG_SHIFT 7
  99. #define CON7_STAT_DIS_MASK 0x1
  100. #define CON7_STAT_DIS_SHIFT 6
  101. #define CON7_WTG_TIM_SET_MASK 0x3
  102. #define CON7_WTG_TIM_SET_SHIFT 4
  103. #define CON7_EN_TIM_MASK 0x1
  104. #define CON7_EN_TIMG_SHIFT 3
  105. #define CON7_SET_CHG_TIM_MASK 0x3
  106. #define CON7_SET_CHG_TIM_SHIFT 1
  107. #define CON7_JEITA_ISET_MASK 0x1
  108. #define CON7_JEITA_ISET_SHIFT 0
  109. //CON8
  110. #define CON8_TREG_MASK 0x3
  111. #define CON8_TREG_SHIFT 0
  112. #define CON8_VCLAMP_MASK 0x7
  113. #define CON8_VCLAMP_SHIFT 2
  114. #define CON8_BAT_COMP_MASK 0x7
  115. #define CON8_BAT_COMP_SHIFT 5
  116. //CON9
  117. #define CON9_PUMPX_UP 0x1
  118. #define CON9_PUMPX_UP_SHIFT 1
  119. #define CON9_PUMPX_DN 0x1
  120. #define CON9_PUMPX_DN_SHIFT 0
  121. //CONA
  122. #define CONA_BOOST_VLIM_MASK 0xF
  123. #define CONA_BOOST_VLIM_SHIFT 4
  124. #define CONA_BOOST_ILIM_MASK 0x07
  125. #define CONA_BOOST_ILIM_SHIFT 0
  126. //CONB
  127. #define CONB_VBUS_STAT_MASK 0x7
  128. #define CONB_VBUS_STAT_SHIFT 5
  129. #define CONB_CHRG_STAT_MASK 0x3
  130. #define CONB_CHRG_STAT_SHIFT 3
  131. #define CONB_PG_STAT_MASK 0x1
  132. #define CONB_PG_STAT_SHIFT 2
  133. #define CONB_SDP_STAT_MASK 0x1
  134. #define CONB_SDP_STAT_SHIFT 1
  135. #define CONB_VSYS_STAT_MASK 0x1
  136. #define CONB_VSYS_STAT_SHIFT 0
  137. //CONC
  138. #define CONB_WATG_STAT_MASK 0x1
  139. #define CONB_WATG_STAT_SHIFT 7
  140. #define CONB_BOOST_STAT_MASK 0x1
  141. #define CONB_BOOST_STAT_SHIFT 6
  142. /*#define CONB_CHRG_FAULT_MASK 0x3
  143. #define CONB_CHRG_FAULT_SHIFT 4 //already define at line 175 */
  144. #define CONB_BAT_STAT_MASK 0x1
  145. #define CONB_BAT_STAT_SHIFT 3
  146. //COND
  147. #define COND_FORCE_VINDPM_MASK 0x01
  148. #define COND_FORCE_VINDPM_SHIFT 7
  149. #define COND_VINDPM_MASK 0x7F
  150. #define COND_VINDPM_SHIFT 0
  151. //CONE
  152. #define CONE_VBAT_MASK 0x7F
  153. #define CONE_VBAT_SHIFT 0
  154. //CON12
  155. #define CONB_ICHG_STAT_MASK 0x7F
  156. #define CONB_ICHG_STAT_SHIFT 0
  157. //CON13
  158. #define CONB_IDPM_STAT_MASK 0x01
  159. #define CONB_IDPM_STAT_SHIFT 6
  160. #define CON13_IDPM_LIM_MASK 0x3F
  161. #define CON13_IDPM_LIM_SHIFT 0
  162. /**********************************************************
  163. *
  164. * [Extern Function]
  165. *
  166. *********************************************************/
  167. //CON0----------------------------------------------------
  168. extern void bq25890_set_en_hiz(kal_uint32 val);
  169. extern void bq25890_set_en_ilim(kal_uint32 val);
  170. void bq25890_set_iinlim(kal_uint32 val);
  171. //CON1----------------------------------------------------
  172. //willcai
  173. extern void bq25890_set_vindpm(kal_uint32 val);
  174. //
  175. //CON2----------------------------------------------------
  176. extern void bq25890_ADC_start(kal_uint32 val);
  177. extern void bq25890_set_ADC_rate(kal_uint32 val);
  178. extern void bq25890_set_ico_en_start(kal_uint32 val);
  179. //
  180. //CON3----------------------------------------------------
  181. //willcai
  182. extern void bq25890_wd_reset(kal_uint32 val) ;
  183. extern void bq25890_otg_en(kal_uint32 val);
  184. extern void bq25890_chg_en(kal_uint32 val);
  185. extern void bq25890_set_sys_min(kal_uint32 val);
  186. //
  187. //CON4----------------------------------------------------
  188. // willcai
  189. extern void bq25890_en_pumpx(kal_uint32 val);
  190. extern void bq25890_set_ichg(kal_uint32 val);
  191. //
  192. //CON5----------------------------------------------------
  193. //willcai
  194. extern void bq25890_set_iprechg(kal_uint32 val) ;
  195. extern void bq25890_set_iterml(kal_uint32 val);
  196. //
  197. //CON6----------------------------------------------------
  198. //willcai
  199. extern void bq25890_set_vreg(kal_uint32 val);
  200. extern void bq25890_set_batlowv(kal_uint32 val);
  201. extern void bq25890_set_vrechg(kal_uint32 val);
  202. //con7
  203. extern void bq25890_en_term_chg(kal_uint32 val);
  204. extern void bq25890_en_state_dis(kal_uint32 val);
  205. extern void bq25890_set_wd_timer(kal_uint32 val);
  206. extern void bq25890_en_chg_timer(kal_uint32 val);
  207. extern void bq25890_set_chg_timer(kal_uint32 val);
  208. //con8
  209. extern void bq25890_set_thermal_regulation(kal_uint32 val);
  210. extern void bq25890_set_VBAT_clamp(kal_uint32 val);
  211. extern void bq25890_set_VBAT_IR_compensation(kal_uint32 val);
  212. //con9
  213. void bq25890_pumpx_up(kal_uint32 val);
  214. //---------------------------------------------------------
  215. extern void bq25890_dump_register(void);
  216. extern kal_uint32 bq25890_reg_config_interface (kal_uint8 RegNum, kal_uint8 val);
  217. extern kal_uint32 bq25890_read_interface (kal_uint8 RegNum, kal_uint8 *val, kal_uint8 MASK, kal_uint8 SHIFT);
  218. extern kal_uint32 bq25890_config_interface (kal_uint8 RegNum, kal_uint8 val, kal_uint8 MASK, kal_uint8 SHIFT);
  219. /*
  220. *static void hw_bc11_dump_register(void);
  221. *static void hw_bc11_init(void);
  222. *static U32 hw_bc11_DCD(void);
  223. *static U32 hw_bc11_stepA1(void);
  224. *static U32 hw_bc11_stepB1(void);
  225. *static U32 hw_bc11_stepC1(void);
  226. *static U32 hw_bc11_stepA2(void);
  227. *static U32 hw_bc11_stepB2(void);
  228. *static void hw_bc11_done(void);
  229. */
  230. // CONA
  231. extern void bq25890_set_boost_ilim(kal_uint32 val);
  232. extern void bq25890_set_boost_vlim(kal_uint32 val);
  233. //CONB
  234. kal_uint32 bq25890_get_vbus_state(void );
  235. kal_uint32 bq25890_get_chrg_state(void );
  236. kal_uint32 bq25890_get_pg_state(void );
  237. kal_uint32 bq25890_get_sdp_state(void );
  238. kal_uint32 bq25890_get_vsys_state(void );
  239. kal_uint32 bq25890_get_wdt_state(void );
  240. kal_uint32 bq25890_get_boost_state(void );
  241. kal_uint32 bq25890_get_chrg_fault_state(void );
  242. kal_uint32 bq25890_get_bat_state(void );
  243. kal_uint32 bq25890_get_ichg(void );
  244. kal_uint32 bq25890_get_idpm_state(void );
  245. //CON0D
  246. extern void bq25890_set_FORCE_VINDPM(kal_uint32 val);
  247. extern void bq25890_set_VINDPM(kal_uint32 val);
  248. //aggregated APIs
  249. extern void bq25890_hw_init(void);
  250. extern void bq25890_charging_enable(kal_uint32 bEnable);
  251. extern void bq25890_dump_register(void);
  252. extern kal_uint32 bq25890_get_chrg_stat(void);
  253. #endif