bq24261.h 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193
  1. /*****************************************************************************
  2. *
  3. * Filename:
  4. * ---------
  5. * bq24261.h
  6. *
  7. * Project:
  8. * --------
  9. * Android
  10. *
  11. * Description:
  12. * ------------
  13. * bq24261 header file
  14. *
  15. * Author:
  16. * -------
  17. *
  18. ****************************************************************************/
  19. #ifndef _bq24261_SW_H_
  20. #define _bq24261_SW_H_
  21. #define bq24261_CON0 0x00
  22. #define bq24261_CON1 0x01
  23. #define bq24261_CON2 0x02
  24. #define bq24261_CON3 0x03
  25. #define bq24261_CON4 0x04
  26. #define bq24261_CON5 0x05
  27. #define bq24261_CON6 0x06
  28. #define bq24261_REG_NUM 7
  29. /**********************************************************
  30. *
  31. * [MASK/SHIFT]
  32. *
  33. *********************************************************/
  34. /* CON0 */
  35. #define CON0_TMR_RST_MASK 0x1
  36. #define CON0_TMR_RST_SHIFT 7
  37. #define CON0_EN_BOOST_MASK 0x1
  38. #define CON0_EN_BOOST_SHIFT 6
  39. #define CON0_STAT_MASK 0x3
  40. #define CON0_STAT_SHIFT 4
  41. #define CON0_EN_SHIPMODE_MASK 0x1
  42. #define CON0_EN_SHIPMODE_SHIFT 3
  43. #define CON0_FAULT_MASK 0x7
  44. #define CON0_FAULT_SHIFT 0
  45. /* CON1 */
  46. #define CON1_RESET_MASK 0x1
  47. #define CON1_RESET_SHIFT 7
  48. #define CON1_IN_LIMIT_MASK 0x7
  49. #define CON1_IN_LIMIT_SHIFT 4
  50. #define CON1_EN_STAT_MASK 0x1
  51. #define CON1_EN_STAT_SHIFT 3
  52. #define CON1_TE_MASK 0x1
  53. #define CON1_TE_SHIFT 2
  54. #define CON1_DIS_CE_MASK 0x1
  55. #define CON1_DIS_CE_SHIFT 1
  56. #define CON1_HZ_MODE_MASK 0x1
  57. #define CON1_HZ_MODE_SHIFT 0
  58. /* CON2 */
  59. #define CON2_VBREG_MASK 0x3F
  60. #define CON2_VBREG_SHIFT 2
  61. #define CON2_MOD_FREQ_MASK 0x3
  62. #define CON2_MOD_FREQ_SHIFT 0
  63. /* CON3 */
  64. #define CON3_VENDER_CODE_MASK 0x7
  65. #define CON3_VENDER_CODE_SHIFT 5
  66. #define CON3_PN_MASK 0x3
  67. #define CON3_PN_SHIFT 3
  68. /* CON4 */
  69. #define CON4_ICHRG_MASK 0x1F
  70. #define CON4_ICHRG_SHIFT 3
  71. #define CON4_ITERM_MASK 0x7
  72. #define CON4_ITERM_SHIFT 0
  73. /* CON5 */
  74. #define CON5_MINSYS_STATUS_MASK 0x1
  75. #define CON5_MINSYS_STATUS_SHIFT 7
  76. #define CON5_VINDPM_STATUS_MASK 0x1
  77. #define CON5_VINDPM_STATUS_SHIFT 6
  78. #define CON5_LOW_CHG_MASK 0x1
  79. #define CON5_LOW_CHG_SHIFT 5
  80. #define CON5_DPDM_EN_MASK 0x1
  81. #define CON5_DPDM_EN_SHIFT 4
  82. #define CON5_CD_STATUS_MASK 0x1
  83. #define CON5_CD_STATUS_SHIFT 3
  84. #define CON5_VINDPM_MASK 0x7
  85. #define CON5_VINDPM_SHIFT 0
  86. /* CON6 */
  87. #define CON6_2XTMR_EN_MASK 0x1
  88. #define CON6_2XTMR_EN_SHIFT 7
  89. #define CON6_TMR_MASK 0x3
  90. #define CON6_TMR_SHIFT 5
  91. #define CON6_BOOST_ILIM_MASK 0x1
  92. #define CON6_BOOST_ILIM_SHIFT 4
  93. #define CON6_TS_EN_MASK 0x1
  94. #define CON6_TS_EN_SHIFT 3
  95. #define CON6_TS_FAULT_MASK 0x3
  96. #define CON6_TS_FAULT_SHIFT 1
  97. #define CON6_VINDPM_OFF_MASK 0x1
  98. #define CON6_VINDPM_OFF_SHIFT 0
  99. /**********************************************************
  100. *
  101. * [Extern Function]
  102. *
  103. *********************************************************/
  104. /* CON0---------------------------------------------------- */
  105. extern void bq24261_set_tmr_rst(u32 val);
  106. extern void bq24261_set_en_boost(u32 val);
  107. extern u32 bq24261_get_stat(void);
  108. extern void bq24261_set_en_shipmode(u32 val);
  109. extern u32 bq24261_get_fault(void);
  110. /* CON1---------------------------------------------------- */
  111. extern void bq24261_set_reset(u32 val);
  112. extern u32 bq24261_get_in_limit(void);
  113. extern void bq24261_set_in_limit(u32 val);
  114. extern void bq24261_set_en_stat(u32 val);
  115. extern void bq24261_set_te(u32 val);
  116. extern void bq24261_set_dis_ce(u32 val);
  117. extern void bq24261_set_hz_mode(u32 val);
  118. /* CON2---------------------------------------------------- */
  119. extern void bq24261_set_vbreg(u32 val);
  120. extern void bq24261_set_mod_freq(u32 val);
  121. /* CON3---------------------------------------------------- */
  122. extern u32 bq24261_get_vender_code(void);
  123. extern u32 bq24261_get_pn(void);
  124. /* CON4---------------------------------------------------- */
  125. extern u32 bq24261_get_ichg(void);
  126. extern void bq24261_set_ichg(u32 val);
  127. extern void bq24261_set_iterm(u32 val);
  128. /* CON5---------------------------------------------------- */
  129. extern u32 bq24261_get_minsys_status(void);
  130. extern u32 bq24261_get_vindpm_status(void);
  131. extern u32 bq24261_get_low_chg(void);
  132. extern void bq24261_set_low_chg(u32 val);
  133. extern void bq24261_set_dpdm_en(u32 val);
  134. extern u32 bq24261_get_cd_status(void);
  135. extern void bq24261_set_vindpm(u32 val);
  136. /* CON6---------------------------------------------------- */
  137. extern void bq24261_set_2xtmr_en(u32 val);
  138. extern void bq24261_set_tmr(u32 val);
  139. extern void bq24261_set_boost_ilim(u32 val);
  140. extern void bq24261_set_ts_en(u32 val);
  141. extern u32 bq24261_get_ts_fault(void);
  142. extern void bq24261_set_vindpm_off(u32 val);
  143. /* --------------------------------------------------------- */
  144. extern void bq24261_dump_register(void);
  145. extern u32 bq24261_reg_config_interface(u8 RegNum, u8 val);
  146. extern u32 bq24261_read_interface(u8 RegNum, u8 *val, u8 MASK, u8 SHIFT);
  147. extern u32 bq24261_config_interface(u8 RegNum, u8 val, u8 MASK, u8 SHIFT);
  148. extern u32 upmu_get_reg_value(u32 reg);
  149. extern bool mt_usb_is_device(void);
  150. extern void Charger_Detect_Init(void);
  151. extern void Charger_Detect_Release(void);
  152. extern int hw_charger_type_detection(void);
  153. /* spm utility */
  154. extern int slp_get_wake_reason(void);
  155. #endif /* _bq24261_SW_H_ */