upmu_common.h 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183
  1. #ifndef _MT_PMIC_COMMON_H_
  2. #define _MT_PMIC_COMMON_H_
  3. #include <linux/types.h>
  4. #include <mach/upmu_sw.h>
  5. #include <mach/upmu_hw.h>
  6. #define MAX_DEVICE 32
  7. #define MAX_MOD_NAME 32
  8. #define NON_OP "NOP"
  9. /* Debug message event */
  10. #define DBG_PMAPI_NONE 0x00000000
  11. #define DBG_PMAPI_CG 0x00000001
  12. #define DBG_PMAPI_PLL 0x00000002
  13. #define DBG_PMAPI_SUB 0x00000004
  14. #define DBG_PMAPI_PMIC 0x00000008
  15. #define DBG_PMAPI_ALL 0xFFFFFFFF
  16. #define DBG_PMAPI_MASK (DBG_PMAPI_ALL)
  17. typedef enum MT65XX_POWER_VOL_TAG {
  18. VOL_DEFAULT,
  19. VOL_0200 = 200,
  20. VOL_0220 = 220,
  21. VOL_0240 = 240,
  22. VOL_0260 = 260,
  23. VOL_0280 = 280,
  24. VOL_0300 = 300,
  25. VOL_0320 = 320,
  26. VOL_0340 = 340,
  27. VOL_0360 = 360,
  28. VOL_0380 = 380,
  29. VOL_0400 = 400,
  30. VOL_0420 = 420,
  31. VOL_0440 = 440,
  32. VOL_0460 = 460,
  33. VOL_0480 = 480,
  34. VOL_0500 = 500,
  35. VOL_0520 = 520,
  36. VOL_0540 = 540,
  37. VOL_0560 = 560,
  38. VOL_0580 = 580,
  39. VOL_0600 = 600,
  40. VOL_0620 = 620,
  41. VOL_0640 = 640,
  42. VOL_0660 = 660,
  43. VOL_0680 = 680,
  44. VOL_0700 = 700,
  45. VOL_0720 = 720,
  46. VOL_0740 = 740,
  47. VOL_0760 = 760,
  48. VOL_0780 = 780,
  49. VOL_0800 = 800,
  50. VOL_0900 = 900,
  51. VOL_0950 = 950,
  52. VOL_1000 = 1000,
  53. VOL_1050 = 1050,
  54. VOL_1100 = 1100,
  55. VOL_1150 = 1150,
  56. VOL_1200 = 1200,
  57. VOL_1220 = 1220,
  58. VOL_1250 = 1250,
  59. VOL_1300 = 1300,
  60. VOL_1350 = 1350,
  61. VOL_1360 = 1360,
  62. VOL_1400 = 1400,
  63. VOL_1450 = 1450,
  64. VOL_1500 = 1500,
  65. VOL_1550 = 1550,
  66. VOL_1600 = 1600,
  67. VOL_1650 = 1650,
  68. VOL_1700 = 1700,
  69. VOL_1750 = 1750,
  70. VOL_1800 = 1800,
  71. VOL_1850 = 1850,
  72. VOL_1860 = 1860,
  73. VOL_1900 = 1900,
  74. VOL_1950 = 1950,
  75. VOL_2000 = 2000,
  76. VOL_2050 = 2050,
  77. VOL_2100 = 2100,
  78. VOL_2150 = 2150,
  79. VOL_2200 = 2200,
  80. VOL_2250 = 2250,
  81. VOL_2300 = 2300,
  82. VOL_2350 = 2350,
  83. VOL_2400 = 2400,
  84. VOL_2450 = 2450,
  85. VOL_2500 = 2500,
  86. VOL_2550 = 2550,
  87. VOL_2600 = 2600,
  88. VOL_2650 = 2650,
  89. VOL_2700 = 2700,
  90. VOL_2750 = 2750,
  91. VOL_2760 = 2760,
  92. VOL_2800 = 2800,
  93. VOL_2850 = 2850,
  94. VOL_2900 = 2900,
  95. VOL_2950 = 2950,
  96. VOL_3000 = 3000,
  97. VOL_3050 = 3050,
  98. VOL_3100 = 3100,
  99. VOL_3150 = 3150,
  100. VOL_3200 = 3200,
  101. VOL_3250 = 3250,
  102. VOL_3300 = 3300,
  103. VOL_3350 = 3350,
  104. VOL_3400 = 3400,
  105. VOL_3450 = 3450,
  106. VOL_3500 = 3500,
  107. VOL_3550 = 3550,
  108. VOL_3600 = 3600
  109. } MT65XX_POWER_VOLTAGE;
  110. typedef struct {
  111. unsigned long dwPowerCount;
  112. bool bDefault_on;
  113. char name[MAX_MOD_NAME];
  114. char mod_name[MAX_DEVICE][MAX_MOD_NAME];
  115. } DEVICE_POWER;
  116. typedef struct {
  117. DEVICE_POWER Power[MT65XX_POWER_COUNT_END];
  118. } ROOTBUS_HW;
  119. /*
  120. * PMIC Exported Function for power service
  121. */
  122. extern signed int g_I_SENSE_offset;
  123. /*
  124. * PMIC extern functions
  125. */
  126. extern unsigned int pmic_read_interface(unsigned int RegNum, unsigned int *val, unsigned int MASK, unsigned int SHIFT);
  127. extern unsigned int pmic_config_interface(unsigned int RegNum, unsigned int val, unsigned int MASK, unsigned int SHIFT);
  128. extern unsigned int pmic_read_interface_nolock(unsigned int RegNum,
  129. unsigned int *val,
  130. unsigned int MASK,
  131. unsigned int SHIFT);
  132. extern unsigned int pmic_config_interface_nolock(unsigned int RegNum,
  133. unsigned int val,
  134. unsigned int MASK,
  135. unsigned int SHIFT);
  136. extern unsigned short pmic_set_register_value(PMU_FLAGS_LIST_ENUM flagname, unsigned int val);
  137. extern unsigned short pmic_get_register_value(PMU_FLAGS_LIST_ENUM flagname);
  138. extern unsigned short pmic_get_register_value_nolock(PMU_FLAGS_LIST_ENUM flagname);
  139. extern unsigned short bc11_set_register_value(PMU_FLAGS_LIST_ENUM flagname, unsigned int val);
  140. extern unsigned short bc11_get_register_value(PMU_FLAGS_LIST_ENUM flagname);
  141. extern void upmu_set_reg_value(unsigned int reg, unsigned int reg_val);
  142. extern unsigned int upmu_get_reg_value(unsigned int reg);
  143. extern void pmic_lock(void);
  144. extern void pmic_unlock(void);
  145. extern void pmic_enable_interrupt(unsigned int intNo, unsigned int en, char *str);
  146. extern void pmic_register_interrupt_callback(unsigned int intNo, void (EINT_FUNC_PTR) (void));
  147. extern unsigned short is_battery_remove_pmic(void);
  148. extern signed int PMIC_IMM_GetCurrent(void);
  149. extern unsigned int PMIC_IMM_GetOneChannelValue(pmic_adc_ch_list_enum dwChannel, int deCount,
  150. int trimd);
  151. extern void pmic_auxadc_init(void);
  152. extern unsigned int pmic_Read_Efuse_HPOffset(int i);
  153. extern void Charger_Detect_Init(void);
  154. extern void Charger_Detect_Release(void);
  155. extern int get_dlpt_imix_spm(void);
  156. extern int get_dlpt_imix(void);
  157. extern int dlpt_check_power_off(void);
  158. extern unsigned int pmic_read_vbif28_volt(unsigned int *val);
  159. extern unsigned int pmic_get_vbif28_volt(void);
  160. extern void pmic_auxadc_debug(int index);
  161. extern bool hwPowerOn(MT65XX_POWER powerId, int voltage_uv, char *mode_name);
  162. extern bool hwPowerDown(MT65XX_POWER powerId, char *mode_name);
  163. extern int get_battery_plug_out_status(void);
  164. extern void pmic_turn_on_clock(unsigned int enable);
  165. #endif /* _MT_PMIC_COMMON_H_ */