mt_pmic.h 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128
  1. #ifndef _MT_PMIC_LK_SW_H_
  2. #define _MT_PMIC_LK_SW_H_
  3. #include <platform/mt_typedefs.h>
  4. //==============================================================================
  5. // PMIC Define
  6. //==============================================================================
  7. #define PMIC6325_E1_CID_CODE 0x2510
  8. #define PMIC6325_E2_CID_CODE 0x2520
  9. #define PMIC6325_E3_CID_CODE 0x2530
  10. #define PMIC6325_E4_CID_CODE 0x2540
  11. #define PMIC6325_E5_CID_CODE 0x2550
  12. #define PMIC6325_E6_CID_CODE 0x2560
  13. #if 0
  14. #define VBAT_CHANNEL_NUMBER 7
  15. #define ISENSE_CHANNEL_NUMBER 6
  16. #define VCHARGER_CHANNEL_NUMBER 4
  17. #define VBATTEMP_CHANNEL_NUMBER 5
  18. #else
  19. #define AUXADC_CHANNEL_MASK 0x1f
  20. #define AUXADC_CHANNEL_SHIFT 0
  21. #define AUXADC_CHIP_MASK 0x03
  22. #define AUXADC_CHIP_SHIFT 5
  23. #define AUXADC_USER_MASK 0x0f
  24. #define AUXADC_USER_SHIFT 8
  25. /* ADC Channel Number */
  26. typedef enum {
  27. //MT6325
  28. AUX_BATSNS_AP = 0x000,
  29. AUX_ISENSE_AP,
  30. AUX_VCDT_AP,
  31. AUX_BATON_AP,
  32. AUX_TSENSE_AP,
  33. AUX_TSENSE_MD = 0x005,
  34. AUX_VACCDET_AP = 0x007,
  35. AUX_VISMPS_AP = 0x00B,
  36. AUX_ICLASSAB_AP = 0x016,
  37. AUX_HP_AP = 0x017,
  38. AUX_CH10_AP = 0x018,
  39. AUX_VBIF_AP = 0x019,
  40. AUX_CH0_6311 = 0x020,
  41. AUX_CH1_6311 = 0x021,
  42. AUX_ADCVIN0_MD = 0x10F,
  43. AUX_ADCVIN0_GPS = 0x20C,
  44. AUX_CH12 = 0x1011,
  45. AUX_CH13 = 0x2011,
  46. AUX_CH14 = 0x3011,
  47. AUX_CH15 = 0x4011,
  48. } upmu_adc_chl_list_enum;
  49. typedef enum {
  50. AP = 0,
  51. MD,
  52. GPS,
  53. AUX_USER_MAX
  54. } upmu_adc_user_list_enum;
  55. typedef enum {
  56. MT6325_CHIP = 0,
  57. MT6311_CHIP,
  58. ADC_CHIP_MAX
  59. } upmu_adc_chip_list_enum;
  60. #endif
  61. //#define VOLTAGE_FULL_RANGE 1800
  62. //#define ADC_PRECISE 32768 // 10 bits
  63. typedef enum {
  64. CHARGER_UNKNOWN = 0,
  65. STANDARD_HOST, // USB : 450mA
  66. CHARGING_HOST,
  67. NONSTANDARD_CHARGER, // AC : 450mA~1A
  68. STANDARD_CHARGER, // AC : ~1A
  69. APPLE_2_1A_CHARGER, // 2.1A apple charger
  70. APPLE_1_0A_CHARGER, // 1A apple charger
  71. APPLE_0_5A_CHARGER, // 0.5A apple charger
  72. } CHARGER_TYPE;
  73. //==============================================================================
  74. // PMIC Exported Function
  75. //==============================================================================
  76. extern U32 pmic_read_interface (U32 RegNum, U32 *val, U32 MASK, U32 SHIFT);
  77. extern U32 pmic_config_interface (U32 RegNum, U32 val, U32 MASK, U32 SHIFT);
  78. extern U32 pmic_IsUsbCableIn (void);
  79. extern kal_bool upmu_is_chr_det(void);
  80. extern int pmic_detect_powerkey(void);
  81. extern int pmic_detect_powerkey(void);
  82. extern kal_uint32 upmu_get_reg_value(kal_uint32 reg);
  83. extern void PMIC_DUMP_ALL_Register(void);
  84. extern U32 pmic_init (void);
  85. //extern int PMIC_IMM_GetOneChannelValue(upmu_adc_chl_list_enum dwChannel, int deCount, int trimd);
  86. extern kal_uint32 PMIC_IMM_GetOneChannelValue(kal_uint8 dwChannel, int deCount, int trimd);
  87. extern int get_bat_sense_volt(int times);
  88. extern int get_i_sense_volt(int times);
  89. extern int get_charger_volt(int times);
  90. extern int get_tbat_volt(int times);
  91. extern CHARGER_TYPE mt_charger_type_detection(void);
  92. extern void vibr_Enable_HW(void);
  93. extern void vibr_Disable_HW(void);
  94. extern U32 get_mt6325_pmic_chip_version(void);
  95. extern void lcm_Enable_HW(int powerVolt);
  96. extern void lcm_Disable_HW(void);
  97. //==============================================================================
  98. // PMIC Status Code
  99. //==============================================================================
  100. #define PMIC_TEST_PASS 0x0000
  101. #define PMIC_TEST_FAIL 0xB001
  102. #define PMIC_EXCEED_I2C_FIFO_LENGTH 0xB002
  103. #define PMIC_CHRDET_EXIST 0xB003
  104. #define PMIC_CHRDET_NOT_EXIST 0xB004
  105. //==============================================================================
  106. // PMIC Register Index
  107. //==============================================================================
  108. #include "upmu_hw.h"
  109. #endif // _MT_PMIC_LK_SW_H_