max8997_pmic.h 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196
  1. /* SPDX-License-Identifier: GPL-2.0+ */
  2. /*
  3. * Copyright (C) 2011 Samsung Electronics
  4. * Lukasz Majewski <l.majewski@samsung.com>
  5. */
  6. #ifndef __MAX8997_PMIC_H_
  7. #define __MAX8997_PMIC_H_
  8. /* MAX 8997 registers */
  9. enum {
  10. MAX8997_REG_PMIC_ID0 = 0x00,
  11. MAX8997_REG_PMIC_ID1 = 0x01,
  12. MAX8997_REG_INTSRC = 0x02,
  13. MAX8997_REG_INT1 = 0x03,
  14. MAX8997_REG_INT2 = 0x04,
  15. MAX8997_REG_INT3 = 0x05,
  16. MAX8997_REG_INT4 = 0x06,
  17. MAX8997_REG_INT1MSK = 0x08,
  18. MAX8997_REG_INT2MSK = 0x09,
  19. MAX8997_REG_INT3MSK = 0x0a,
  20. MAX8997_REG_INT4MSK = 0x0b,
  21. MAX8997_REG_STATUS1 = 0x0d,
  22. MAX8997_REG_STATUS2 = 0x0e,
  23. MAX8997_REG_STATUS3 = 0x0f,
  24. MAX8997_REG_STATUS4 = 0x10,
  25. MAX8997_REG_MAINCON1 = 0x13,
  26. MAX8997_REG_MAINCON2 = 0x14,
  27. MAX8997_REG_BUCKRAMP = 0x15,
  28. MAX8997_REG_BUCK1CTRL = 0x18,
  29. MAX8997_REG_BUCK1DVS1 = 0x19,
  30. MAX8997_REG_BUCK1DVS2 = 0x1a,
  31. MAX8997_REG_BUCK1DVS3 = 0x1b,
  32. MAX8997_REG_BUCK1DVS4 = 0x1c,
  33. MAX8997_REG_BUCK1DVS5 = 0x1d,
  34. MAX8997_REG_BUCK1DVS6 = 0x1e,
  35. MAX8997_REG_BUCK1DVS7 = 0x1f,
  36. MAX8997_REG_BUCK1DVS8 = 0x20,
  37. MAX8997_REG_BUCK2CTRL = 0x21,
  38. MAX8997_REG_BUCK2DVS1 = 0x22,
  39. MAX8997_REG_BUCK2DVS2 = 0x23,
  40. MAX8997_REG_BUCK2DVS3 = 0x24,
  41. MAX8997_REG_BUCK2DVS4 = 0x25,
  42. MAX8997_REG_BUCK2DVS5 = 0x26,
  43. MAX8997_REG_BUCK2DVS6 = 0x27,
  44. MAX8997_REG_BUCK2DVS7 = 0x28,
  45. MAX8997_REG_BUCK2DVS8 = 0x29,
  46. MAX8997_REG_BUCK3CTRL = 0x2a,
  47. MAX8997_REG_BUCK3DVS = 0x2b,
  48. MAX8997_REG_BUCK4CTRL = 0x2c,
  49. MAX8997_REG_BUCK4DVS = 0x2d,
  50. MAX8997_REG_BUCK5CTRL = 0x2e,
  51. MAX8997_REG_BUCK5DVS1 = 0x2f,
  52. MAX8997_REG_BUCK5DVS2 = 0x30,
  53. MAX8997_REG_BUCK5DVS3 = 0x31,
  54. MAX8997_REG_BUCK5DVS4 = 0x32,
  55. MAX8997_REG_BUCK5DVS5 = 0x33,
  56. MAX8997_REG_BUCK5DVS6 = 0x34,
  57. MAX8997_REG_BUCK5DVS7 = 0x35,
  58. MAX8997_REG_BUCK5DVS8 = 0x36,
  59. MAX8997_REG_BUCK6CTRL = 0x37,
  60. MAX8997_REG_BUCK6BPSKIPCTRL = 0x38,
  61. MAX8997_REG_BUCK7CTRL = 0x39,
  62. MAX8997_REG_BUCK7DVS = 0x3a,
  63. MAX8997_REG_LDO1CTRL = 0x3b,
  64. MAX8997_REG_LDO2CTRL = 0x3c,
  65. MAX8997_REG_LDO3CTRL = 0x3d,
  66. MAX8997_REG_LDO4CTRL = 0x3e,
  67. MAX8997_REG_LDO5CTRL = 0x3f,
  68. MAX8997_REG_LDO6CTRL = 0x40,
  69. MAX8997_REG_LDO7CTRL = 0x41,
  70. MAX8997_REG_LDO8CTRL = 0x42,
  71. MAX8997_REG_LDO9CTRL = 0x43,
  72. MAX8997_REG_LDO10CTRL = 0x44,
  73. MAX8997_REG_LDO11CTRL = 0x45,
  74. MAX8997_REG_LDO12CTRL = 0x46,
  75. MAX8997_REG_LDO13CTRL = 0x47,
  76. MAX8997_REG_LDO14CTRL = 0x48,
  77. MAX8997_REG_LDO15CTRL = 0x49,
  78. MAX8997_REG_LDO16CTRL = 0x4a,
  79. MAX8997_REG_LDO17CTRL = 0x4b,
  80. MAX8997_REG_LDO18CTRL = 0x4c,
  81. MAX8997_REG_LDO21CTRL = 0x4d,
  82. MAX8997_REG_MBCCTRL1 = 0x50,
  83. MAX8997_REG_MBCCTRL2 = 0x51,
  84. MAX8997_REG_MBCCTRL3 = 0x52,
  85. MAX8997_REG_MBCCTRL4 = 0x53,
  86. MAX8997_REG_MBCCTRL5 = 0x54,
  87. MAX8997_REG_MBCCTRL6 = 0x55,
  88. MAX8997_REG_OTPCGHCVS = 0x56,
  89. MAX8997_REG_SAFEOUTCTRL = 0x5a,
  90. MAX8997_REG_LBCNFG1 = 0x5e,
  91. MAX8997_REG_LBCNFG2 = 0x5f,
  92. MAX8997_REG_BBCCTRL = 0x60,
  93. MAX8997_REG_FLASH1_CUR = 0x63, /* 0x63 ~ 0x6e for FLASH */
  94. MAX8997_REG_FLASH2_CUR = 0x64,
  95. MAX8997_REG_MOVIE_CUR = 0x65,
  96. MAX8997_REG_GSMB_CUR = 0x66,
  97. MAX8997_REG_BOOST_CNTL = 0x67,
  98. MAX8997_REG_LEN_CNTL = 0x68,
  99. MAX8997_REG_FLASH_CNTL = 0x69,
  100. MAX8997_REG_WDT_CNTL = 0x6a,
  101. MAX8997_REG_MAXFLASH1 = 0x6b,
  102. MAX8997_REG_MAXFLASH2 = 0x6c,
  103. MAX8997_REG_FLASHSTATUS = 0x6d,
  104. MAX8997_REG_FLASHSTATUSMASK = 0x6e,
  105. MAX8997_REG_GPIOCNTL1 = 0x70,
  106. MAX8997_REG_GPIOCNTL2 = 0x71,
  107. MAX8997_REG_GPIOCNTL3 = 0x72,
  108. MAX8997_REG_GPIOCNTL4 = 0x73,
  109. MAX8997_REG_GPIOCNTL5 = 0x74,
  110. MAX8997_REG_GPIOCNTL6 = 0x75,
  111. MAX8997_REG_GPIOCNTL7 = 0x76,
  112. MAX8997_REG_GPIOCNTL8 = 0x77,
  113. MAX8997_REG_GPIOCNTL9 = 0x78,
  114. MAX8997_REG_GPIOCNTL10 = 0x79,
  115. MAX8997_REG_GPIOCNTL11 = 0x7a,
  116. MAX8997_REG_GPIOCNTL12 = 0x7b,
  117. MAX8997_REG_LDO1CONFIG = 0x80,
  118. MAX8997_REG_LDO2CONFIG = 0x81,
  119. MAX8997_REG_LDO3CONFIG = 0x82,
  120. MAX8997_REG_LDO4CONFIG = 0x83,
  121. MAX8997_REG_LDO5CONFIG = 0x84,
  122. MAX8997_REG_LDO6CONFIG = 0x85,
  123. MAX8997_REG_LDO7CONFIG = 0x86,
  124. MAX8997_REG_LDO8CONFIG = 0x87,
  125. MAX8997_REG_LDO9CONFIG = 0x88,
  126. MAX8997_REG_LDO10CONFIG = 0x89,
  127. MAX8997_REG_LDO11CONFIG = 0x8a,
  128. MAX8997_REG_LDO12CONFIG = 0x8b,
  129. MAX8997_REG_LDO13CONFIG = 0x8c,
  130. MAX8997_REG_LDO14CONFIG = 0x8d,
  131. MAX8997_REG_LDO15CONFIG = 0x8e,
  132. MAX8997_REG_LDO16CONFIG = 0x8f,
  133. MAX8997_REG_LDO17CONFIG = 0x90,
  134. MAX8997_REG_LDO18CONFIG = 0x91,
  135. MAX8997_REG_LDO21CONFIG = 0x92,
  136. MAX8997_REG_DVSOKTIMER1 = 0x97,
  137. MAX8997_REG_DVSOKTIMER2 = 0x98,
  138. MAX8997_REG_DVSOKTIMER4 = 0x99,
  139. MAX8997_REG_DVSOKTIMER5 = 0x9a,
  140. PMIC_NUM_OF_REGS = 0x9b,
  141. };
  142. #define ACTDISSAFEO1 (1 << 4)
  143. #define ACTDISSAFEO2 (1 << 5)
  144. #define ENSAFEOUT1 (1 << 6)
  145. #define ENSAFEOUT2 (1 << 7)
  146. #define ENBUCK (1 << 0)
  147. #define ACTIVE_DISCHARGE (1 << 3)
  148. #define GNSLCT (1 << 2)
  149. #define LDO_ADE (1 << 1)
  150. #define SAFEOUT_4_85V 0x00
  151. #define SAFEOUT_4_90V 0x01
  152. #define SAFEOUT_4_95V 0x02
  153. #define SAFEOUT_3_30V 0x03
  154. /* Charger */
  155. #define DETBAT (1 << 2)
  156. #define MBCICHFCSET (1 << 4)
  157. #define MBCHOSTEN (1 << 6)
  158. #define VCHGR_FC (1 << 7)
  159. #define CHARGER_MIN_CURRENT 200
  160. #define CHARGER_MAX_CURRENT 950
  161. #define CHARGER_CURRENT_RESOLUTION 50
  162. #define MAX8997_I2C_ADDR (0xCC >> 1)
  163. #define MAX8997_RTC_ADDR (0x0C >> 1)
  164. #define MAX8997_MUIC_ADDR (0x4A >> 1)
  165. #define MAX8997_FG_ADDR (0x6C >> 1)
  166. enum {
  167. LDO_OFF = 0,
  168. LDO_ON = 1,
  169. DIS_LDO = (0x00 << 6),
  170. EN_LDO = (0x3 << 6),
  171. };
  172. #define MAX8997_LDO_MAX_VAL 0x3F
  173. unsigned char max8997_reg_ldo(int uV);
  174. #endif /* __MAX8997_PMIC_H_ */