fan5405.h 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177
  1. /*****************************************************************************
  2. *
  3. * Filename:
  4. * ---------
  5. * fan5405.h
  6. *
  7. * Project:
  8. * --------
  9. * Android
  10. *
  11. * Description:
  12. * ------------
  13. * fan5405 header file
  14. *
  15. * Author:
  16. * -------
  17. *
  18. ****************************************************************************/
  19. #ifndef _fan5405_SW_H_
  20. #define _fan5405_SW_H_
  21. #define HIGH_BATTERY_VOLTAGE_SUPPORT
  22. #define fan5405_CON0 0x00
  23. #define fan5405_CON1 0x01
  24. #define fan5405_CON2 0x02
  25. #define fan5405_CON3 0x03
  26. #define fan5405_CON4 0x04
  27. #define fan5405_CON5 0x05
  28. #define fan5405_CON6 0x06
  29. /**********************************************************
  30. *
  31. * [MASK/SHIFT]
  32. *
  33. *********************************************************/
  34. //CON0
  35. #define CON0_TMR_RST_MASK 0x01
  36. #define CON0_TMR_RST_SHIFT 7
  37. #define CON0_OTG_MASK 0x01
  38. #define CON0_OTG_SHIFT 7
  39. #define CON0_EN_STAT_MASK 0x01
  40. #define CON0_EN_STAT_SHIFT 6
  41. #define CON0_STAT_MASK 0x03
  42. #define CON0_STAT_SHIFT 4
  43. #define CON0_BOOST_MASK 0x01
  44. #define CON0_BOOST_SHIFT 3
  45. #define CON0_FAULT_MASK 0x07
  46. #define CON0_FAULT_SHIFT 0
  47. //CON1
  48. #define CON1_LIN_LIMIT_MASK 0x03
  49. #define CON1_LIN_LIMIT_SHIFT 6
  50. #define CON1_LOW_V_MASK 0x03
  51. #define CON1_LOW_V_SHIFT 4
  52. #define CON1_TE_MASK 0x01
  53. #define CON1_TE_SHIFT 3
  54. #define CON1_CE_MASK 0x01
  55. #define CON1_CE_SHIFT 2
  56. #define CON1_HZ_MODE_MASK 0x01
  57. #define CON1_HZ_MODE_SHIFT 1
  58. #define CON1_OPA_MODE_MASK 0x01
  59. #define CON1_OPA_MODE_SHIFT 0
  60. //CON2
  61. #define CON2_OREG_MASK 0x3F
  62. #define CON2_OREG_SHIFT 2
  63. #define CON2_OTG_PL_MASK 0x01
  64. #define CON2_OTG_PL_SHIFT 1
  65. #define CON2_OTG_EN_MASK 0x01
  66. #define CON2_OTG_EN_SHIFT 0
  67. //CON3
  68. #define CON3_VENDER_CODE_MASK 0x07
  69. #define CON3_VENDER_CODE_SHIFT 5
  70. #define CON3_PIN_MASK 0x03
  71. #define CON3_PIN_SHIFT 3
  72. #define CON3_REVISION_MASK 0x07
  73. #define CON3_REVISION_SHIFT 0
  74. //CON4
  75. #define CON4_RESET_MASK 0x01
  76. #define CON4_RESET_SHIFT 7
  77. #define CON4_I_CHR_MASK 0x07
  78. #define CON4_I_CHR_SHIFT 4
  79. #define CON4_I_TERM_MASK 0x07
  80. #define CON4_I_TERM_SHIFT 0
  81. //CON5
  82. #define CON5_DIS_VREG_MASK 0x01
  83. #define CON5_DIS_VREG_SHIFT 6
  84. #define CON5_IO_LEVEL_MASK 0x01
  85. #define CON5_IO_LEVEL_SHIFT 5
  86. #define CON5_SP_STATUS_MASK 0x01
  87. #define CON5_SP_STATUS_SHIFT 4
  88. #define CON5_EN_LEVEL_MASK 0x01
  89. #define CON5_EN_LEVEL_SHIFT 3
  90. #define CON5_VSP_MASK 0x07
  91. #define CON5_VSP_SHIFT 0
  92. //CON6
  93. #define CON6_ISAFE_MASK 0x07
  94. #define CON6_ISAFE_SHIFT 4
  95. #define CON6_VSAFE_MASK 0x0F
  96. #define CON6_VSAFE_SHIFT 0
  97. /**********************************************************
  98. *
  99. * [Extern Function]
  100. *
  101. *********************************************************/
  102. //CON0----------------------------------------------------
  103. extern void fan5405_set_tmr_rst(kal_uint32 val);
  104. extern kal_uint32 fan5405_get_otg_status(void);
  105. extern void fan5405_set_en_stat(kal_uint32 val);
  106. extern kal_uint32 fan5405_get_chip_status(void);
  107. extern kal_uint32 fan5405_get_boost_status(void);
  108. extern kal_uint32 fan5405_get_fault_status(void);
  109. //CON1----------------------------------------------------
  110. extern void fan5405_set_input_charging_current(kal_uint32 val);
  111. extern void fan5405_set_v_low(kal_uint32 val);
  112. extern void fan5405_set_te(kal_uint32 val);
  113. extern void fan5405_set_ce(kal_uint32 val);
  114. extern void fan5405_set_hz_mode(kal_uint32 val);
  115. extern void fan5405_set_opa_mode(kal_uint32 val);
  116. //CON2----------------------------------------------------
  117. extern void fan5405_set_oreg(kal_uint32 val);
  118. extern void fan5405_set_otg_pl(kal_uint32 val);
  119. extern void fan5405_set_otg_en(kal_uint32 val);
  120. //CON3----------------------------------------------------
  121. extern kal_uint32 fan5405_get_vender_code(void);
  122. extern kal_uint32 fan5405_get_pn(void);
  123. extern kal_uint32 fan5405_get_revision(void);
  124. //CON4----------------------------------------------------
  125. extern void fan5405_set_reset(kal_uint32 val);
  126. extern void fan5405_set_iocharge(kal_uint32 val);
  127. extern void fan5405_set_iterm(kal_uint32 val);
  128. //CON5----------------------------------------------------
  129. extern void fan5405_set_dis_vreg(kal_uint32 val);
  130. extern void fan5405_set_io_level(kal_uint32 val);
  131. extern kal_uint32 fan5405_get_sp_status(void);
  132. extern kal_uint32 fan5405_get_en_level(void);
  133. extern void fan5405_set_vsp(kal_uint32 val);
  134. //CON6----------------------------------------------------
  135. extern void fan5405_set_i_safe(kal_uint32 val);
  136. extern void fan5405_set_v_safe(kal_uint32 val);
  137. //---------------------------------------------------------
  138. //extern int fan5405_dump_register(void);
  139. extern unsigned int fan5405_reg_config_interface (unsigned char RegNum, unsigned char val);
  140. extern void fan5405_hw_init(void);
  141. extern void fan5405_turn_on_charging(void);
  142. extern int fan5405_chg_probe(void);
  143. #endif // _fan5405_SW_H_