fan5405.h 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176
  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 fan5405_CON0 0x00
  22. #define fan5405_CON1 0x01
  23. #define fan5405_CON2 0x02
  24. #define fan5405_CON3 0x03
  25. #define fan5405_CON4 0x04
  26. #define fan5405_CON5 0x05
  27. #define fan5405_CON6 0x06
  28. #define fan5405_REG_NUM 7
  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(unsigned int val);
  104. extern unsigned int fan5405_get_otg_status(void);
  105. extern void fan5405_set_en_stat(unsigned int val);
  106. extern unsigned int fan5405_get_chip_status(void);
  107. extern unsigned int fan5405_get_boost_status(void);
  108. extern unsigned int fan5405_get_fault_status(void);
  109. /* CON1---------------------------------------------------- */
  110. extern void fan5405_set_input_charging_current(unsigned int val);
  111. extern void fan5405_set_v_low(unsigned int val);
  112. extern void fan5405_set_te(unsigned int val);
  113. extern void fan5405_set_ce(unsigned int val);
  114. extern void fan5405_set_hz_mode(unsigned int val);
  115. extern void fan5405_set_opa_mode(unsigned int val);
  116. /* CON2---------------------------------------------------- */
  117. extern void fan5405_set_oreg(unsigned int val);
  118. extern void fan5405_set_otg_pl(unsigned int val);
  119. extern void fan5405_set_otg_en(unsigned int val);
  120. /* CON3---------------------------------------------------- */
  121. extern unsigned int fan5405_get_vender_code(void);
  122. extern unsigned int fan5405_get_pn(void);
  123. extern unsigned int fan5405_get_revision(void);
  124. /* CON4---------------------------------------------------- */
  125. extern void fan5405_set_reset(unsigned int val);
  126. extern void fan5405_set_iocharge(unsigned int val);
  127. extern void fan5405_set_iterm(unsigned int val);
  128. /* CON5---------------------------------------------------- */
  129. extern void fan5405_set_dis_vreg(unsigned int val);
  130. extern void fan5405_set_io_level(unsigned int val);
  131. extern unsigned int fan5405_get_sp_status(void);
  132. extern unsigned int fan5405_get_en_level(void);
  133. extern void fan5405_set_vsp(unsigned int val);
  134. /* CON6---------------------------------------------------- */
  135. extern void fan5405_set_i_safe(unsigned int val);
  136. extern void fan5405_set_v_safe(unsigned int val);
  137. /* --------------------------------------------------------- */
  138. extern void fan5405_dump_register(void);
  139. extern unsigned int fan5405_reg_config_interface(unsigned char RegNum, unsigned char val);
  140. extern unsigned int fan5405_read_interface(unsigned char RegNum, unsigned char *val,
  141. unsigned char MASK, unsigned char SHIFT);
  142. extern unsigned int fan5405_config_interface(unsigned char RegNum, unsigned char val,
  143. unsigned char MASK, unsigned char SHIFT);
  144. #endif /* _fan5405_SW_H_ */