tps65910.h 31 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955
  1. /*
  2. * tps65910.h -- TI TPS6591x
  3. *
  4. * Copyright 2010-2011 Texas Instruments Inc.
  5. *
  6. * Author: Graeme Gregory <gg@slimlogic.co.uk>
  7. * Author: Jorge Eduardo Candelaria <jedu@slimlogic.co.uk>
  8. * Author: Arnaud Deconinck <a-deconinck@ti.com>
  9. *
  10. * This program is free software; you can redistribute it and/or modify it
  11. * under the terms of the GNU General Public License as published by the
  12. * Free Software Foundation; either version 2 of the License, or (at your
  13. * option) any later version.
  14. *
  15. */
  16. #ifndef __LINUX_MFD_TPS65910_H
  17. #define __LINUX_MFD_TPS65910_H
  18. #include <linux/gpio.h>
  19. #include <linux/regmap.h>
  20. /* TPS chip id list */
  21. #define TPS65910 0
  22. #define TPS65911 1
  23. /* TPS regulator type list */
  24. #define REGULATOR_LDO 0
  25. #define REGULATOR_DCDC 1
  26. /*
  27. * List of registers for component TPS65910
  28. *
  29. */
  30. #define TPS65910_SECONDS 0x0
  31. #define TPS65910_MINUTES 0x1
  32. #define TPS65910_HOURS 0x2
  33. #define TPS65910_DAYS 0x3
  34. #define TPS65910_MONTHS 0x4
  35. #define TPS65910_YEARS 0x5
  36. #define TPS65910_WEEKS 0x6
  37. #define TPS65910_ALARM_SECONDS 0x8
  38. #define TPS65910_ALARM_MINUTES 0x9
  39. #define TPS65910_ALARM_HOURS 0xA
  40. #define TPS65910_ALARM_DAYS 0xB
  41. #define TPS65910_ALARM_MONTHS 0xC
  42. #define TPS65910_ALARM_YEARS 0xD
  43. #define TPS65910_RTC_CTRL 0x10
  44. #define TPS65910_RTC_STATUS 0x11
  45. #define TPS65910_RTC_INTERRUPTS 0x12
  46. #define TPS65910_RTC_COMP_LSB 0x13
  47. #define TPS65910_RTC_COMP_MSB 0x14
  48. #define TPS65910_RTC_RES_PROG 0x15
  49. #define TPS65910_RTC_RESET_STATUS 0x16
  50. #define TPS65910_BCK1 0x17
  51. #define TPS65910_BCK2 0x18
  52. #define TPS65910_BCK3 0x19
  53. #define TPS65910_BCK4 0x1A
  54. #define TPS65910_BCK5 0x1B
  55. #define TPS65910_PUADEN 0x1C
  56. #define TPS65910_REF 0x1D
  57. #define TPS65910_VRTC 0x1E
  58. #define TPS65910_VIO 0x20
  59. #define TPS65910_VDD1 0x21
  60. #define TPS65910_VDD1_OP 0x22
  61. #define TPS65910_VDD1_SR 0x23
  62. #define TPS65910_VDD2 0x24
  63. #define TPS65910_VDD2_OP 0x25
  64. #define TPS65910_VDD2_SR 0x26
  65. #define TPS65910_VDD3 0x27
  66. #define TPS65910_VDIG1 0x30
  67. #define TPS65910_VDIG2 0x31
  68. #define TPS65910_VAUX1 0x32
  69. #define TPS65910_VAUX2 0x33
  70. #define TPS65910_VAUX33 0x34
  71. #define TPS65910_VMMC 0x35
  72. #define TPS65910_VPLL 0x36
  73. #define TPS65910_VDAC 0x37
  74. #define TPS65910_THERM 0x38
  75. #define TPS65910_BBCH 0x39
  76. #define TPS65910_DCDCCTRL 0x3E
  77. #define TPS65910_DEVCTRL 0x3F
  78. #define TPS65910_DEVCTRL2 0x40
  79. #define TPS65910_SLEEP_KEEP_LDO_ON 0x41
  80. #define TPS65910_SLEEP_KEEP_RES_ON 0x42
  81. #define TPS65910_SLEEP_SET_LDO_OFF 0x43
  82. #define TPS65910_SLEEP_SET_RES_OFF 0x44
  83. #define TPS65910_EN1_LDO_ASS 0x45
  84. #define TPS65910_EN1_SMPS_ASS 0x46
  85. #define TPS65910_EN2_LDO_ASS 0x47
  86. #define TPS65910_EN2_SMPS_ASS 0x48
  87. #define TPS65910_EN3_LDO_ASS 0x49
  88. #define TPS65910_SPARE 0x4A
  89. #define TPS65910_INT_STS 0x50
  90. #define TPS65910_INT_MSK 0x51
  91. #define TPS65910_INT_STS2 0x52
  92. #define TPS65910_INT_MSK2 0x53
  93. #define TPS65910_INT_STS3 0x54
  94. #define TPS65910_INT_MSK3 0x55
  95. #define TPS65910_GPIO0 0x60
  96. #define TPS65910_GPIO1 0x61
  97. #define TPS65910_GPIO2 0x62
  98. #define TPS65910_GPIO3 0x63
  99. #define TPS65910_GPIO4 0x64
  100. #define TPS65910_GPIO5 0x65
  101. #define TPS65910_GPIO6 0x66
  102. #define TPS65910_GPIO7 0x67
  103. #define TPS65910_GPIO8 0x68
  104. #define TPS65910_JTAGVERNUM 0x80
  105. #define TPS65910_MAX_REGISTER 0x80
  106. /*
  107. * List of registers specific to TPS65911
  108. */
  109. #define TPS65911_VDDCTRL 0x27
  110. #define TPS65911_VDDCTRL_OP 0x28
  111. #define TPS65911_VDDCTRL_SR 0x29
  112. #define TPS65911_LDO1 0x30
  113. #define TPS65911_LDO2 0x31
  114. #define TPS65911_LDO5 0x32
  115. #define TPS65911_LDO8 0x33
  116. #define TPS65911_LDO7 0x34
  117. #define TPS65911_LDO6 0x35
  118. #define TPS65911_LDO4 0x36
  119. #define TPS65911_LDO3 0x37
  120. #define TPS65911_VMBCH 0x6A
  121. #define TPS65911_VMBCH2 0x6B
  122. /*
  123. * List of register bitfields for component TPS65910
  124. *
  125. */
  126. /* RTC_CTRL_REG bitfields */
  127. #define TPS65910_RTC_CTRL_STOP_RTC 0x01 /*0=stop, 1=run */
  128. #define TPS65910_RTC_CTRL_GET_TIME 0x40
  129. /* RTC_STATUS_REG bitfields */
  130. #define TPS65910_RTC_STATUS_ALARM 0x40
  131. /* RTC_INTERRUPTS_REG bitfields */
  132. #define TPS65910_RTC_INTERRUPTS_EVERY 0x03
  133. #define TPS65910_RTC_INTERRUPTS_IT_ALARM 0x08
  134. /*Register BCK1 (0x80) register.RegisterDescription */
  135. #define BCK1_BCKUP_MASK 0xFF
  136. #define BCK1_BCKUP_SHIFT 0
  137. /*Register BCK2 (0x80) register.RegisterDescription */
  138. #define BCK2_BCKUP_MASK 0xFF
  139. #define BCK2_BCKUP_SHIFT 0
  140. /*Register BCK3 (0x80) register.RegisterDescription */
  141. #define BCK3_BCKUP_MASK 0xFF
  142. #define BCK3_BCKUP_SHIFT 0
  143. /*Register BCK4 (0x80) register.RegisterDescription */
  144. #define BCK4_BCKUP_MASK 0xFF
  145. #define BCK4_BCKUP_SHIFT 0
  146. /*Register BCK5 (0x80) register.RegisterDescription */
  147. #define BCK5_BCKUP_MASK 0xFF
  148. #define BCK5_BCKUP_SHIFT 0
  149. /*Register PUADEN (0x80) register.RegisterDescription */
  150. #define PUADEN_EN3P_MASK 0x80
  151. #define PUADEN_EN3P_SHIFT 7
  152. #define PUADEN_I2CCTLP_MASK 0x40
  153. #define PUADEN_I2CCTLP_SHIFT 6
  154. #define PUADEN_I2CSRP_MASK 0x20
  155. #define PUADEN_I2CSRP_SHIFT 5
  156. #define PUADEN_PWRONP_MASK 0x10
  157. #define PUADEN_PWRONP_SHIFT 4
  158. #define PUADEN_SLEEPP_MASK 0x08
  159. #define PUADEN_SLEEPP_SHIFT 3
  160. #define PUADEN_PWRHOLDP_MASK 0x04
  161. #define PUADEN_PWRHOLDP_SHIFT 2
  162. #define PUADEN_BOOT1P_MASK 0x02
  163. #define PUADEN_BOOT1P_SHIFT 1
  164. #define PUADEN_BOOT0P_MASK 0x01
  165. #define PUADEN_BOOT0P_SHIFT 0
  166. /*Register REF (0x80) register.RegisterDescription */
  167. #define REF_VMBCH_SEL_MASK 0x0C
  168. #define REF_VMBCH_SEL_SHIFT 2
  169. #define REF_ST_MASK 0x03
  170. #define REF_ST_SHIFT 0
  171. /*Register VRTC (0x80) register.RegisterDescription */
  172. #define VRTC_VRTC_OFFMASK_MASK 0x08
  173. #define VRTC_VRTC_OFFMASK_SHIFT 3
  174. #define VRTC_ST_MASK 0x03
  175. #define VRTC_ST_SHIFT 0
  176. /*Register VIO (0x80) register.RegisterDescription */
  177. #define VIO_ILMAX_MASK 0xC0
  178. #define VIO_ILMAX_SHIFT 6
  179. #define VIO_SEL_MASK 0x0C
  180. #define VIO_SEL_SHIFT 2
  181. #define VIO_ST_MASK 0x03
  182. #define VIO_ST_SHIFT 0
  183. /*Register VDD1 (0x80) register.RegisterDescription */
  184. #define VDD1_VGAIN_SEL_MASK 0xC0
  185. #define VDD1_VGAIN_SEL_SHIFT 6
  186. #define VDD1_ILMAX_MASK 0x20
  187. #define VDD1_ILMAX_SHIFT 5
  188. #define VDD1_TSTEP_MASK 0x1C
  189. #define VDD1_TSTEP_SHIFT 2
  190. #define VDD1_ST_MASK 0x03
  191. #define VDD1_ST_SHIFT 0
  192. /*Register VDD1_OP (0x80) register.RegisterDescription */
  193. #define VDD1_OP_CMD_MASK 0x80
  194. #define VDD1_OP_CMD_SHIFT 7
  195. #define VDD1_OP_SEL_MASK 0x7F
  196. #define VDD1_OP_SEL_SHIFT 0
  197. /*Register VDD1_SR (0x80) register.RegisterDescription */
  198. #define VDD1_SR_SEL_MASK 0x7F
  199. #define VDD1_SR_SEL_SHIFT 0
  200. /*Register VDD2 (0x80) register.RegisterDescription */
  201. #define VDD2_VGAIN_SEL_MASK 0xC0
  202. #define VDD2_VGAIN_SEL_SHIFT 6
  203. #define VDD2_ILMAX_MASK 0x20
  204. #define VDD2_ILMAX_SHIFT 5
  205. #define VDD2_TSTEP_MASK 0x1C
  206. #define VDD2_TSTEP_SHIFT 2
  207. #define VDD2_ST_MASK 0x03
  208. #define VDD2_ST_SHIFT 0
  209. /*Register VDD2_OP (0x80) register.RegisterDescription */
  210. #define VDD2_OP_CMD_MASK 0x80
  211. #define VDD2_OP_CMD_SHIFT 7
  212. #define VDD2_OP_SEL_MASK 0x7F
  213. #define VDD2_OP_SEL_SHIFT 0
  214. /*Register VDD2_SR (0x80) register.RegisterDescription */
  215. #define VDD2_SR_SEL_MASK 0x7F
  216. #define VDD2_SR_SEL_SHIFT 0
  217. /*Registers VDD1, VDD2 voltage values definitions */
  218. #define VDD1_2_NUM_VOLT_FINE 73
  219. #define VDD1_2_NUM_VOLT_COARSE 3
  220. #define VDD1_2_MIN_VOLT 6000
  221. #define VDD1_2_OFFSET 125
  222. /*Register VDD3 (0x80) register.RegisterDescription */
  223. #define VDD3_CKINEN_MASK 0x04
  224. #define VDD3_CKINEN_SHIFT 2
  225. #define VDD3_ST_MASK 0x03
  226. #define VDD3_ST_SHIFT 0
  227. #define VDDCTRL_MIN_VOLT 6000
  228. #define VDDCTRL_OFFSET 125
  229. /*Registers VDIG (0x80) to VDAC register.RegisterDescription */
  230. #define LDO_SEL_MASK 0x0C
  231. #define LDO_SEL_SHIFT 2
  232. #define LDO_ST_MASK 0x03
  233. #define LDO_ST_SHIFT 0
  234. #define LDO_ST_ON_BIT 0x01
  235. #define LDO_ST_MODE_BIT 0x02
  236. /* Registers LDO1 to LDO8 in tps65910 */
  237. #define LDO1_SEL_MASK 0xFC
  238. #define LDO3_SEL_MASK 0x7C
  239. #define LDO_MIN_VOLT 1000
  240. #define LDO_MAX_VOLT 3300
  241. /*Register VDIG1 (0x80) register.RegisterDescription */
  242. #define VDIG1_SEL_MASK 0x0C
  243. #define VDIG1_SEL_SHIFT 2
  244. #define VDIG1_ST_MASK 0x03
  245. #define VDIG1_ST_SHIFT 0
  246. /*Register VDIG2 (0x80) register.RegisterDescription */
  247. #define VDIG2_SEL_MASK 0x0C
  248. #define VDIG2_SEL_SHIFT 2
  249. #define VDIG2_ST_MASK 0x03
  250. #define VDIG2_ST_SHIFT 0
  251. /*Register VAUX1 (0x80) register.RegisterDescription */
  252. #define VAUX1_SEL_MASK 0x0C
  253. #define VAUX1_SEL_SHIFT 2
  254. #define VAUX1_ST_MASK 0x03
  255. #define VAUX1_ST_SHIFT 0
  256. /*Register VAUX2 (0x80) register.RegisterDescription */
  257. #define VAUX2_SEL_MASK 0x0C
  258. #define VAUX2_SEL_SHIFT 2
  259. #define VAUX2_ST_MASK 0x03
  260. #define VAUX2_ST_SHIFT 0
  261. /*Register VAUX33 (0x80) register.RegisterDescription */
  262. #define VAUX33_SEL_MASK 0x0C
  263. #define VAUX33_SEL_SHIFT 2
  264. #define VAUX33_ST_MASK 0x03
  265. #define VAUX33_ST_SHIFT 0
  266. /*Register VMMC (0x80) register.RegisterDescription */
  267. #define VMMC_SEL_MASK 0x0C
  268. #define VMMC_SEL_SHIFT 2
  269. #define VMMC_ST_MASK 0x03
  270. #define VMMC_ST_SHIFT 0
  271. /*Register VPLL (0x80) register.RegisterDescription */
  272. #define VPLL_SEL_MASK 0x0C
  273. #define VPLL_SEL_SHIFT 2
  274. #define VPLL_ST_MASK 0x03
  275. #define VPLL_ST_SHIFT 0
  276. /*Register VDAC (0x80) register.RegisterDescription */
  277. #define VDAC_SEL_MASK 0x0C
  278. #define VDAC_SEL_SHIFT 2
  279. #define VDAC_ST_MASK 0x03
  280. #define VDAC_ST_SHIFT 0
  281. /*Register THERM (0x80) register.RegisterDescription */
  282. #define THERM_THERM_HD_MASK 0x20
  283. #define THERM_THERM_HD_SHIFT 5
  284. #define THERM_THERM_TS_MASK 0x10
  285. #define THERM_THERM_TS_SHIFT 4
  286. #define THERM_THERM_HDSEL_MASK 0x0C
  287. #define THERM_THERM_HDSEL_SHIFT 2
  288. #define THERM_RSVD1_MASK 0x02
  289. #define THERM_RSVD1_SHIFT 1
  290. #define THERM_THERM_STATE_MASK 0x01
  291. #define THERM_THERM_STATE_SHIFT 0
  292. /*Register BBCH (0x80) register.RegisterDescription */
  293. #define BBCH_BBSEL_MASK 0x06
  294. #define BBCH_BBSEL_SHIFT 1
  295. /*Register DCDCCTRL (0x80) register.RegisterDescription */
  296. #define DCDCCTRL_VDD2_PSKIP_MASK 0x20
  297. #define DCDCCTRL_VDD2_PSKIP_SHIFT 5
  298. #define DCDCCTRL_VDD1_PSKIP_MASK 0x10
  299. #define DCDCCTRL_VDD1_PSKIP_SHIFT 4
  300. #define DCDCCTRL_VIO_PSKIP_MASK 0x08
  301. #define DCDCCTRL_VIO_PSKIP_SHIFT 3
  302. #define DCDCCTRL_DCDCCKEXT_MASK 0x04
  303. #define DCDCCTRL_DCDCCKEXT_SHIFT 2
  304. #define DCDCCTRL_DCDCCKSYNC_MASK 0x03
  305. #define DCDCCTRL_DCDCCKSYNC_SHIFT 0
  306. /*Register DEVCTRL (0x80) register.RegisterDescription */
  307. #define DEVCTRL_PWR_OFF_MASK 0x80
  308. #define DEVCTRL_PWR_OFF_SHIFT 7
  309. #define DEVCTRL_RTC_PWDN_MASK 0x40
  310. #define DEVCTRL_RTC_PWDN_SHIFT 6
  311. #define DEVCTRL_CK32K_CTRL_MASK 0x20
  312. #define DEVCTRL_CK32K_CTRL_SHIFT 5
  313. #define DEVCTRL_SR_CTL_I2C_SEL_MASK 0x10
  314. #define DEVCTRL_SR_CTL_I2C_SEL_SHIFT 4
  315. #define DEVCTRL_DEV_OFF_RST_MASK 0x08
  316. #define DEVCTRL_DEV_OFF_RST_SHIFT 3
  317. #define DEVCTRL_DEV_ON_MASK 0x04
  318. #define DEVCTRL_DEV_ON_SHIFT 2
  319. #define DEVCTRL_DEV_SLP_MASK 0x02
  320. #define DEVCTRL_DEV_SLP_SHIFT 1
  321. #define DEVCTRL_DEV_OFF_MASK 0x01
  322. #define DEVCTRL_DEV_OFF_SHIFT 0
  323. /*Register DEVCTRL2 (0x80) register.RegisterDescription */
  324. #define DEVCTRL2_TSLOT_LENGTH_MASK 0x30
  325. #define DEVCTRL2_TSLOT_LENGTH_SHIFT 4
  326. #define DEVCTRL2_SLEEPSIG_POL_MASK 0x08
  327. #define DEVCTRL2_SLEEPSIG_POL_SHIFT 3
  328. #define DEVCTRL2_PWON_LP_OFF_MASK 0x04
  329. #define DEVCTRL2_PWON_LP_OFF_SHIFT 2
  330. #define DEVCTRL2_PWON_LP_RST_MASK 0x02
  331. #define DEVCTRL2_PWON_LP_RST_SHIFT 1
  332. #define DEVCTRL2_IT_POL_MASK 0x01
  333. #define DEVCTRL2_IT_POL_SHIFT 0
  334. /*Register SLEEP_KEEP_LDO_ON (0x80) register.RegisterDescription */
  335. #define SLEEP_KEEP_LDO_ON_VDAC_KEEPON_MASK 0x80
  336. #define SLEEP_KEEP_LDO_ON_VDAC_KEEPON_SHIFT 7
  337. #define SLEEP_KEEP_LDO_ON_VPLL_KEEPON_MASK 0x40
  338. #define SLEEP_KEEP_LDO_ON_VPLL_KEEPON_SHIFT 6
  339. #define SLEEP_KEEP_LDO_ON_VAUX33_KEEPON_MASK 0x20
  340. #define SLEEP_KEEP_LDO_ON_VAUX33_KEEPON_SHIFT 5
  341. #define SLEEP_KEEP_LDO_ON_VAUX2_KEEPON_MASK 0x10
  342. #define SLEEP_KEEP_LDO_ON_VAUX2_KEEPON_SHIFT 4
  343. #define SLEEP_KEEP_LDO_ON_VAUX1_KEEPON_MASK 0x08
  344. #define SLEEP_KEEP_LDO_ON_VAUX1_KEEPON_SHIFT 3
  345. #define SLEEP_KEEP_LDO_ON_VDIG2_KEEPON_MASK 0x04
  346. #define SLEEP_KEEP_LDO_ON_VDIG2_KEEPON_SHIFT 2
  347. #define SLEEP_KEEP_LDO_ON_VDIG1_KEEPON_MASK 0x02
  348. #define SLEEP_KEEP_LDO_ON_VDIG1_KEEPON_SHIFT 1
  349. #define SLEEP_KEEP_LDO_ON_VMMC_KEEPON_MASK 0x01
  350. #define SLEEP_KEEP_LDO_ON_VMMC_KEEPON_SHIFT 0
  351. /*Register SLEEP_KEEP_RES_ON (0x80) register.RegisterDescription */
  352. #define SLEEP_KEEP_RES_ON_THERM_KEEPON_MASK 0x80
  353. #define SLEEP_KEEP_RES_ON_THERM_KEEPON_SHIFT 7
  354. #define SLEEP_KEEP_RES_ON_CLKOUT32K_KEEPON_MASK 0x40
  355. #define SLEEP_KEEP_RES_ON_CLKOUT32K_KEEPON_SHIFT 6
  356. #define SLEEP_KEEP_RES_ON_VRTC_KEEPON_MASK 0x20
  357. #define SLEEP_KEEP_RES_ON_VRTC_KEEPON_SHIFT 5
  358. #define SLEEP_KEEP_RES_ON_I2CHS_KEEPON_MASK 0x10
  359. #define SLEEP_KEEP_RES_ON_I2CHS_KEEPON_SHIFT 4
  360. #define SLEEP_KEEP_RES_ON_VDD3_KEEPON_MASK 0x08
  361. #define SLEEP_KEEP_RES_ON_VDD3_KEEPON_SHIFT 3
  362. #define SLEEP_KEEP_RES_ON_VDD2_KEEPON_MASK 0x04
  363. #define SLEEP_KEEP_RES_ON_VDD2_KEEPON_SHIFT 2
  364. #define SLEEP_KEEP_RES_ON_VDD1_KEEPON_MASK 0x02
  365. #define SLEEP_KEEP_RES_ON_VDD1_KEEPON_SHIFT 1
  366. #define SLEEP_KEEP_RES_ON_VIO_KEEPON_MASK 0x01
  367. #define SLEEP_KEEP_RES_ON_VIO_KEEPON_SHIFT 0
  368. /*Register SLEEP_SET_LDO_OFF (0x80) register.RegisterDescription */
  369. #define SLEEP_SET_LDO_OFF_VDAC_SETOFF_MASK 0x80
  370. #define SLEEP_SET_LDO_OFF_VDAC_SETOFF_SHIFT 7
  371. #define SLEEP_SET_LDO_OFF_VPLL_SETOFF_MASK 0x40
  372. #define SLEEP_SET_LDO_OFF_VPLL_SETOFF_SHIFT 6
  373. #define SLEEP_SET_LDO_OFF_VAUX33_SETOFF_MASK 0x20
  374. #define SLEEP_SET_LDO_OFF_VAUX33_SETOFF_SHIFT 5
  375. #define SLEEP_SET_LDO_OFF_VAUX2_SETOFF_MASK 0x10
  376. #define SLEEP_SET_LDO_OFF_VAUX2_SETOFF_SHIFT 4
  377. #define SLEEP_SET_LDO_OFF_VAUX1_SETOFF_MASK 0x08
  378. #define SLEEP_SET_LDO_OFF_VAUX1_SETOFF_SHIFT 3
  379. #define SLEEP_SET_LDO_OFF_VDIG2_SETOFF_MASK 0x04
  380. #define SLEEP_SET_LDO_OFF_VDIG2_SETOFF_SHIFT 2
  381. #define SLEEP_SET_LDO_OFF_VDIG1_SETOFF_MASK 0x02
  382. #define SLEEP_SET_LDO_OFF_VDIG1_SETOFF_SHIFT 1
  383. #define SLEEP_SET_LDO_OFF_VMMC_SETOFF_MASK 0x01
  384. #define SLEEP_SET_LDO_OFF_VMMC_SETOFF_SHIFT 0
  385. /*Register SLEEP_SET_RES_OFF (0x80) register.RegisterDescription */
  386. #define SLEEP_SET_RES_OFF_DEFAULT_VOLT_MASK 0x80
  387. #define SLEEP_SET_RES_OFF_DEFAULT_VOLT_SHIFT 7
  388. #define SLEEP_SET_RES_OFF_RSVD_MASK 0x60
  389. #define SLEEP_SET_RES_OFF_RSVD_SHIFT 5
  390. #define SLEEP_SET_RES_OFF_SPARE_SETOFF_MASK 0x10
  391. #define SLEEP_SET_RES_OFF_SPARE_SETOFF_SHIFT 4
  392. #define SLEEP_SET_RES_OFF_VDD3_SETOFF_MASK 0x08
  393. #define SLEEP_SET_RES_OFF_VDD3_SETOFF_SHIFT 3
  394. #define SLEEP_SET_RES_OFF_VDD2_SETOFF_MASK 0x04
  395. #define SLEEP_SET_RES_OFF_VDD2_SETOFF_SHIFT 2
  396. #define SLEEP_SET_RES_OFF_VDD1_SETOFF_MASK 0x02
  397. #define SLEEP_SET_RES_OFF_VDD1_SETOFF_SHIFT 1
  398. #define SLEEP_SET_RES_OFF_VIO_SETOFF_MASK 0x01
  399. #define SLEEP_SET_RES_OFF_VIO_SETOFF_SHIFT 0
  400. /*Register EN1_LDO_ASS (0x80) register.RegisterDescription */
  401. #define EN1_LDO_ASS_VDAC_EN1_MASK 0x80
  402. #define EN1_LDO_ASS_VDAC_EN1_SHIFT 7
  403. #define EN1_LDO_ASS_VPLL_EN1_MASK 0x40
  404. #define EN1_LDO_ASS_VPLL_EN1_SHIFT 6
  405. #define EN1_LDO_ASS_VAUX33_EN1_MASK 0x20
  406. #define EN1_LDO_ASS_VAUX33_EN1_SHIFT 5
  407. #define EN1_LDO_ASS_VAUX2_EN1_MASK 0x10
  408. #define EN1_LDO_ASS_VAUX2_EN1_SHIFT 4
  409. #define EN1_LDO_ASS_VAUX1_EN1_MASK 0x08
  410. #define EN1_LDO_ASS_VAUX1_EN1_SHIFT 3
  411. #define EN1_LDO_ASS_VDIG2_EN1_MASK 0x04
  412. #define EN1_LDO_ASS_VDIG2_EN1_SHIFT 2
  413. #define EN1_LDO_ASS_VDIG1_EN1_MASK 0x02
  414. #define EN1_LDO_ASS_VDIG1_EN1_SHIFT 1
  415. #define EN1_LDO_ASS_VMMC_EN1_MASK 0x01
  416. #define EN1_LDO_ASS_VMMC_EN1_SHIFT 0
  417. /*Register EN1_SMPS_ASS (0x80) register.RegisterDescription */
  418. #define EN1_SMPS_ASS_RSVD_MASK 0xE0
  419. #define EN1_SMPS_ASS_RSVD_SHIFT 5
  420. #define EN1_SMPS_ASS_SPARE_EN1_MASK 0x10
  421. #define EN1_SMPS_ASS_SPARE_EN1_SHIFT 4
  422. #define EN1_SMPS_ASS_VDD3_EN1_MASK 0x08
  423. #define EN1_SMPS_ASS_VDD3_EN1_SHIFT 3
  424. #define EN1_SMPS_ASS_VDD2_EN1_MASK 0x04
  425. #define EN1_SMPS_ASS_VDD2_EN1_SHIFT 2
  426. #define EN1_SMPS_ASS_VDD1_EN1_MASK 0x02
  427. #define EN1_SMPS_ASS_VDD1_EN1_SHIFT 1
  428. #define EN1_SMPS_ASS_VIO_EN1_MASK 0x01
  429. #define EN1_SMPS_ASS_VIO_EN1_SHIFT 0
  430. /*Register EN2_LDO_ASS (0x80) register.RegisterDescription */
  431. #define EN2_LDO_ASS_VDAC_EN2_MASK 0x80
  432. #define EN2_LDO_ASS_VDAC_EN2_SHIFT 7
  433. #define EN2_LDO_ASS_VPLL_EN2_MASK 0x40
  434. #define EN2_LDO_ASS_VPLL_EN2_SHIFT 6
  435. #define EN2_LDO_ASS_VAUX33_EN2_MASK 0x20
  436. #define EN2_LDO_ASS_VAUX33_EN2_SHIFT 5
  437. #define EN2_LDO_ASS_VAUX2_EN2_MASK 0x10
  438. #define EN2_LDO_ASS_VAUX2_EN2_SHIFT 4
  439. #define EN2_LDO_ASS_VAUX1_EN2_MASK 0x08
  440. #define EN2_LDO_ASS_VAUX1_EN2_SHIFT 3
  441. #define EN2_LDO_ASS_VDIG2_EN2_MASK 0x04
  442. #define EN2_LDO_ASS_VDIG2_EN2_SHIFT 2
  443. #define EN2_LDO_ASS_VDIG1_EN2_MASK 0x02
  444. #define EN2_LDO_ASS_VDIG1_EN2_SHIFT 1
  445. #define EN2_LDO_ASS_VMMC_EN2_MASK 0x01
  446. #define EN2_LDO_ASS_VMMC_EN2_SHIFT 0
  447. /*Register EN2_SMPS_ASS (0x80) register.RegisterDescription */
  448. #define EN2_SMPS_ASS_RSVD_MASK 0xE0
  449. #define EN2_SMPS_ASS_RSVD_SHIFT 5
  450. #define EN2_SMPS_ASS_SPARE_EN2_MASK 0x10
  451. #define EN2_SMPS_ASS_SPARE_EN2_SHIFT 4
  452. #define EN2_SMPS_ASS_VDD3_EN2_MASK 0x08
  453. #define EN2_SMPS_ASS_VDD3_EN2_SHIFT 3
  454. #define EN2_SMPS_ASS_VDD2_EN2_MASK 0x04
  455. #define EN2_SMPS_ASS_VDD2_EN2_SHIFT 2
  456. #define EN2_SMPS_ASS_VDD1_EN2_MASK 0x02
  457. #define EN2_SMPS_ASS_VDD1_EN2_SHIFT 1
  458. #define EN2_SMPS_ASS_VIO_EN2_MASK 0x01
  459. #define EN2_SMPS_ASS_VIO_EN2_SHIFT 0
  460. /*Register EN3_LDO_ASS (0x80) register.RegisterDescription */
  461. #define EN3_LDO_ASS_VDAC_EN3_MASK 0x80
  462. #define EN3_LDO_ASS_VDAC_EN3_SHIFT 7
  463. #define EN3_LDO_ASS_VPLL_EN3_MASK 0x40
  464. #define EN3_LDO_ASS_VPLL_EN3_SHIFT 6
  465. #define EN3_LDO_ASS_VAUX33_EN3_MASK 0x20
  466. #define EN3_LDO_ASS_VAUX33_EN3_SHIFT 5
  467. #define EN3_LDO_ASS_VAUX2_EN3_MASK 0x10
  468. #define EN3_LDO_ASS_VAUX2_EN3_SHIFT 4
  469. #define EN3_LDO_ASS_VAUX1_EN3_MASK 0x08
  470. #define EN3_LDO_ASS_VAUX1_EN3_SHIFT 3
  471. #define EN3_LDO_ASS_VDIG2_EN3_MASK 0x04
  472. #define EN3_LDO_ASS_VDIG2_EN3_SHIFT 2
  473. #define EN3_LDO_ASS_VDIG1_EN3_MASK 0x02
  474. #define EN3_LDO_ASS_VDIG1_EN3_SHIFT 1
  475. #define EN3_LDO_ASS_VMMC_EN3_MASK 0x01
  476. #define EN3_LDO_ASS_VMMC_EN3_SHIFT 0
  477. /*Register SPARE (0x80) register.RegisterDescription */
  478. #define SPARE_SPARE_MASK 0xFF
  479. #define SPARE_SPARE_SHIFT 0
  480. #define TPS65910_INT_STS_RTC_PERIOD_IT_MASK 0x80
  481. #define TPS65910_INT_STS_RTC_PERIOD_IT_SHIFT 7
  482. #define TPS65910_INT_STS_RTC_ALARM_IT_MASK 0x40
  483. #define TPS65910_INT_STS_RTC_ALARM_IT_SHIFT 6
  484. #define TPS65910_INT_STS_HOTDIE_IT_MASK 0x20
  485. #define TPS65910_INT_STS_HOTDIE_IT_SHIFT 5
  486. #define TPS65910_INT_STS_PWRHOLD_F_IT_MASK 0x10
  487. #define TPS65910_INT_STS_PWRHOLD_F_IT_SHIFT 4
  488. #define TPS65910_INT_STS_PWRON_LP_IT_MASK 0x08
  489. #define TPS65910_INT_STS_PWRON_LP_IT_SHIFT 3
  490. #define TPS65910_INT_STS_PWRON_IT_MASK 0x04
  491. #define TPS65910_INT_STS_PWRON_IT_SHIFT 2
  492. #define TPS65910_INT_STS_VMBHI_IT_MASK 0x02
  493. #define TPS65910_INT_STS_VMBHI_IT_SHIFT 1
  494. #define TPS65910_INT_STS_VMBDCH_IT_MASK 0x01
  495. #define TPS65910_INT_STS_VMBDCH_IT_SHIFT 0
  496. #define TPS65910_INT_MSK_RTC_PERIOD_IT_MSK_MASK 0x80
  497. #define TPS65910_INT_MSK_RTC_PERIOD_IT_MSK_SHIFT 7
  498. #define TPS65910_INT_MSK_RTC_ALARM_IT_MSK_MASK 0x40
  499. #define TPS65910_INT_MSK_RTC_ALARM_IT_MSK_SHIFT 6
  500. #define TPS65910_INT_MSK_HOTDIE_IT_MSK_MASK 0x20
  501. #define TPS65910_INT_MSK_HOTDIE_IT_MSK_SHIFT 5
  502. #define TPS65910_INT_MSK_PWRHOLD_IT_MSK_MASK 0x10
  503. #define TPS65910_INT_MSK_PWRHOLD_IT_MSK_SHIFT 4
  504. #define TPS65910_INT_MSK_PWRON_LP_IT_MSK_MASK 0x08
  505. #define TPS65910_INT_MSK_PWRON_LP_IT_MSK_SHIFT 3
  506. #define TPS65910_INT_MSK_PWRON_IT_MSK_MASK 0x04
  507. #define TPS65910_INT_MSK_PWRON_IT_MSK_SHIFT 2
  508. #define TPS65910_INT_MSK_VMBHI_IT_MSK_MASK 0x02
  509. #define TPS65910_INT_MSK_VMBHI_IT_MSK_SHIFT 1
  510. #define TPS65910_INT_MSK_VMBDCH_IT_MSK_MASK 0x01
  511. #define TPS65910_INT_MSK_VMBDCH_IT_MSK_SHIFT 0
  512. #define TPS65910_INT_STS2_GPIO0_F_IT_SHIFT 2
  513. #define TPS65910_INT_STS2_GPIO0_F_IT_MASK 0x02
  514. #define TPS65910_INT_STS2_GPIO0_R_IT_SHIFT 1
  515. #define TPS65910_INT_STS2_GPIO0_R_IT_MASK 0x01
  516. #define TPS65910_INT_MSK2_GPIO0_F_IT_MSK_SHIFT 2
  517. #define TPS65910_INT_MSK2_GPIO0_F_IT_MSK_MASK 0x02
  518. #define TPS65910_INT_MSK2_GPIO0_R_IT_MSK_SHIFT 1
  519. #define TPS65910_INT_MSK2_GPIO0_R_IT_MSK_MASK 0x01
  520. /*Register INT_STS (0x80) register.RegisterDescription */
  521. #define INT_STS_RTC_PERIOD_IT_MASK 0x80
  522. #define INT_STS_RTC_PERIOD_IT_SHIFT 7
  523. #define INT_STS_RTC_ALARM_IT_MASK 0x40
  524. #define INT_STS_RTC_ALARM_IT_SHIFT 6
  525. #define INT_STS_HOTDIE_IT_MASK 0x20
  526. #define INT_STS_HOTDIE_IT_SHIFT 5
  527. #define INT_STS_PWRHOLD_R_IT_MASK 0x10
  528. #define INT_STS_PWRHOLD_R_IT_SHIFT 4
  529. #define INT_STS_PWRON_LP_IT_MASK 0x08
  530. #define INT_STS_PWRON_LP_IT_SHIFT 3
  531. #define INT_STS_PWRON_IT_MASK 0x04
  532. #define INT_STS_PWRON_IT_SHIFT 2
  533. #define INT_STS_VMBHI_IT_MASK 0x02
  534. #define INT_STS_VMBHI_IT_SHIFT 1
  535. #define INT_STS_PWRHOLD_F_IT_MASK 0x01
  536. #define INT_STS_PWRHOLD_F_IT_SHIFT 0
  537. /*Register INT_MSK (0x80) register.RegisterDescription */
  538. #define INT_MSK_RTC_PERIOD_IT_MSK_MASK 0x80
  539. #define INT_MSK_RTC_PERIOD_IT_MSK_SHIFT 7
  540. #define INT_MSK_RTC_ALARM_IT_MSK_MASK 0x40
  541. #define INT_MSK_RTC_ALARM_IT_MSK_SHIFT 6
  542. #define INT_MSK_HOTDIE_IT_MSK_MASK 0x20
  543. #define INT_MSK_HOTDIE_IT_MSK_SHIFT 5
  544. #define INT_MSK_PWRHOLD_R_IT_MSK_MASK 0x10
  545. #define INT_MSK_PWRHOLD_R_IT_MSK_SHIFT 4
  546. #define INT_MSK_PWRON_LP_IT_MSK_MASK 0x08
  547. #define INT_MSK_PWRON_LP_IT_MSK_SHIFT 3
  548. #define INT_MSK_PWRON_IT_MSK_MASK 0x04
  549. #define INT_MSK_PWRON_IT_MSK_SHIFT 2
  550. #define INT_MSK_VMBHI_IT_MSK_MASK 0x02
  551. #define INT_MSK_VMBHI_IT_MSK_SHIFT 1
  552. #define INT_MSK_PWRHOLD_F_IT_MSK_MASK 0x01
  553. #define INT_MSK_PWRHOLD_F_IT_MSK_SHIFT 0
  554. /*Register INT_STS2 (0x80) register.RegisterDescription */
  555. #define INT_STS2_GPIO3_F_IT_MASK 0x80
  556. #define INT_STS2_GPIO3_F_IT_SHIFT 7
  557. #define INT_STS2_GPIO3_R_IT_MASK 0x40
  558. #define INT_STS2_GPIO3_R_IT_SHIFT 6
  559. #define INT_STS2_GPIO2_F_IT_MASK 0x20
  560. #define INT_STS2_GPIO2_F_IT_SHIFT 5
  561. #define INT_STS2_GPIO2_R_IT_MASK 0x10
  562. #define INT_STS2_GPIO2_R_IT_SHIFT 4
  563. #define INT_STS2_GPIO1_F_IT_MASK 0x08
  564. #define INT_STS2_GPIO1_F_IT_SHIFT 3
  565. #define INT_STS2_GPIO1_R_IT_MASK 0x04
  566. #define INT_STS2_GPIO1_R_IT_SHIFT 2
  567. #define INT_STS2_GPIO0_F_IT_MASK 0x02
  568. #define INT_STS2_GPIO0_F_IT_SHIFT 1
  569. #define INT_STS2_GPIO0_R_IT_MASK 0x01
  570. #define INT_STS2_GPIO0_R_IT_SHIFT 0
  571. /*Register INT_MSK2 (0x80) register.RegisterDescription */
  572. #define INT_MSK2_GPIO3_F_IT_MSK_MASK 0x80
  573. #define INT_MSK2_GPIO3_F_IT_MSK_SHIFT 7
  574. #define INT_MSK2_GPIO3_R_IT_MSK_MASK 0x40
  575. #define INT_MSK2_GPIO3_R_IT_MSK_SHIFT 6
  576. #define INT_MSK2_GPIO2_F_IT_MSK_MASK 0x20
  577. #define INT_MSK2_GPIO2_F_IT_MSK_SHIFT 5
  578. #define INT_MSK2_GPIO2_R_IT_MSK_MASK 0x10
  579. #define INT_MSK2_GPIO2_R_IT_MSK_SHIFT 4
  580. #define INT_MSK2_GPIO1_F_IT_MSK_MASK 0x08
  581. #define INT_MSK2_GPIO1_F_IT_MSK_SHIFT 3
  582. #define INT_MSK2_GPIO1_R_IT_MSK_MASK 0x04
  583. #define INT_MSK2_GPIO1_R_IT_MSK_SHIFT 2
  584. #define INT_MSK2_GPIO0_F_IT_MSK_MASK 0x02
  585. #define INT_MSK2_GPIO0_F_IT_MSK_SHIFT 1
  586. #define INT_MSK2_GPIO0_R_IT_MSK_MASK 0x01
  587. #define INT_MSK2_GPIO0_R_IT_MSK_SHIFT 0
  588. /*Register INT_STS3 (0x80) register.RegisterDescription */
  589. #define INT_STS3_PWRDN_IT_MASK 0x80
  590. #define INT_STS3_PWRDN_IT_SHIFT 7
  591. #define INT_STS3_VMBCH2_L_IT_MASK 0x40
  592. #define INT_STS3_VMBCH2_L_IT_SHIFT 6
  593. #define INT_STS3_VMBCH2_H_IT_MASK 0x20
  594. #define INT_STS3_VMBCH2_H_IT_SHIFT 5
  595. #define INT_STS3_WTCHDG_IT_MASK 0x10
  596. #define INT_STS3_WTCHDG_IT_SHIFT 4
  597. #define INT_STS3_GPIO5_F_IT_MASK 0x08
  598. #define INT_STS3_GPIO5_F_IT_SHIFT 3
  599. #define INT_STS3_GPIO5_R_IT_MASK 0x04
  600. #define INT_STS3_GPIO5_R_IT_SHIFT 2
  601. #define INT_STS3_GPIO4_F_IT_MASK 0x02
  602. #define INT_STS3_GPIO4_F_IT_SHIFT 1
  603. #define INT_STS3_GPIO4_R_IT_MASK 0x01
  604. #define INT_STS3_GPIO4_R_IT_SHIFT 0
  605. /*Register INT_MSK3 (0x80) register.RegisterDescription */
  606. #define INT_MSK3_PWRDN_IT_MSK_MASK 0x80
  607. #define INT_MSK3_PWRDN_IT_MSK_SHIFT 7
  608. #define INT_MSK3_VMBCH2_L_IT_MSK_MASK 0x40
  609. #define INT_MSK3_VMBCH2_L_IT_MSK_SHIFT 6
  610. #define INT_MSK3_VMBCH2_H_IT_MSK_MASK 0x20
  611. #define INT_MSK3_VMBCH2_H_IT_MSK_SHIFT 5
  612. #define INT_MSK3_WTCHDG_IT_MSK_MASK 0x10
  613. #define INT_MSK3_WTCHDG_IT_MSK_SHIFT 4
  614. #define INT_MSK3_GPIO5_F_IT_MSK_MASK 0x08
  615. #define INT_MSK3_GPIO5_F_IT_MSK_SHIFT 3
  616. #define INT_MSK3_GPIO5_R_IT_MSK_MASK 0x04
  617. #define INT_MSK3_GPIO5_R_IT_MSK_SHIFT 2
  618. #define INT_MSK3_GPIO4_F_IT_MSK_MASK 0x02
  619. #define INT_MSK3_GPIO4_F_IT_MSK_SHIFT 1
  620. #define INT_MSK3_GPIO4_R_IT_MSK_MASK 0x01
  621. #define INT_MSK3_GPIO4_R_IT_MSK_SHIFT 0
  622. /*Register GPIO (0x80) register.RegisterDescription */
  623. #define GPIO_SLEEP_MASK 0x80
  624. #define GPIO_SLEEP_SHIFT 7
  625. #define GPIO_DEB_MASK 0x10
  626. #define GPIO_DEB_SHIFT 4
  627. #define GPIO_PUEN_MASK 0x08
  628. #define GPIO_PUEN_SHIFT 3
  629. #define GPIO_CFG_MASK 0x04
  630. #define GPIO_CFG_SHIFT 2
  631. #define GPIO_STS_MASK 0x02
  632. #define GPIO_STS_SHIFT 1
  633. #define GPIO_SET_MASK 0x01
  634. #define GPIO_SET_SHIFT 0
  635. /*Register JTAGVERNUM (0x80) register.RegisterDescription */
  636. #define JTAGVERNUM_VERNUM_MASK 0x0F
  637. #define JTAGVERNUM_VERNUM_SHIFT 0
  638. /* Register VDDCTRL (0x27) bit definitions */
  639. #define VDDCTRL_ST_MASK 0x03
  640. #define VDDCTRL_ST_SHIFT 0
  641. /*Register VDDCTRL_OP (0x28) bit definitios */
  642. #define VDDCTRL_OP_CMD_MASK 0x80
  643. #define VDDCTRL_OP_CMD_SHIFT 7
  644. #define VDDCTRL_OP_SEL_MASK 0x7F
  645. #define VDDCTRL_OP_SEL_SHIFT 0
  646. /*Register VDDCTRL_SR (0x29) bit definitions */
  647. #define VDDCTRL_SR_SEL_MASK 0x7F
  648. #define VDDCTRL_SR_SEL_SHIFT 0
  649. /* IRQ Definitions */
  650. #define TPS65910_IRQ_VBAT_VMBDCH 0
  651. #define TPS65910_IRQ_VBAT_VMHI 1
  652. #define TPS65910_IRQ_PWRON 2
  653. #define TPS65910_IRQ_PWRON_LP 3
  654. #define TPS65910_IRQ_PWRHOLD 4
  655. #define TPS65910_IRQ_HOTDIE 5
  656. #define TPS65910_IRQ_RTC_ALARM 6
  657. #define TPS65910_IRQ_RTC_PERIOD 7
  658. #define TPS65910_IRQ_GPIO_R 8
  659. #define TPS65910_IRQ_GPIO_F 9
  660. #define TPS65910_NUM_IRQ 10
  661. #define TPS65911_IRQ_PWRHOLD_F 0
  662. #define TPS65911_IRQ_VBAT_VMHI 1
  663. #define TPS65911_IRQ_PWRON 2
  664. #define TPS65911_IRQ_PWRON_LP 3
  665. #define TPS65911_IRQ_PWRHOLD_R 4
  666. #define TPS65911_IRQ_HOTDIE 5
  667. #define TPS65911_IRQ_RTC_ALARM 6
  668. #define TPS65911_IRQ_RTC_PERIOD 7
  669. #define TPS65911_IRQ_GPIO0_R 8
  670. #define TPS65911_IRQ_GPIO0_F 9
  671. #define TPS65911_IRQ_GPIO1_R 10
  672. #define TPS65911_IRQ_GPIO1_F 11
  673. #define TPS65911_IRQ_GPIO2_R 12
  674. #define TPS65911_IRQ_GPIO2_F 13
  675. #define TPS65911_IRQ_GPIO3_R 14
  676. #define TPS65911_IRQ_GPIO3_F 15
  677. #define TPS65911_IRQ_GPIO4_R 16
  678. #define TPS65911_IRQ_GPIO4_F 17
  679. #define TPS65911_IRQ_GPIO5_R 18
  680. #define TPS65911_IRQ_GPIO5_F 19
  681. #define TPS65911_IRQ_WTCHDG 20
  682. #define TPS65911_IRQ_VMBCH2_H 21
  683. #define TPS65911_IRQ_VMBCH2_L 22
  684. #define TPS65911_IRQ_PWRDN 23
  685. #define TPS65911_NUM_IRQ 24
  686. /* GPIO Register Definitions */
  687. #define TPS65910_GPIO_DEB BIT(2)
  688. #define TPS65910_GPIO_PUEN BIT(3)
  689. #define TPS65910_GPIO_CFG BIT(2)
  690. #define TPS65910_GPIO_STS BIT(1)
  691. #define TPS65910_GPIO_SET BIT(0)
  692. /* Max number of TPS65910/11 GPIOs */
  693. #define TPS65910_NUM_GPIO 6
  694. #define TPS65911_NUM_GPIO 9
  695. #define TPS6591X_MAX_NUM_GPIO 9
  696. /* Regulator Index Definitions */
  697. #define TPS65910_REG_VRTC 0
  698. #define TPS65910_REG_VIO 1
  699. #define TPS65910_REG_VDD1 2
  700. #define TPS65910_REG_VDD2 3
  701. #define TPS65910_REG_VDD3 4
  702. #define TPS65910_REG_VDIG1 5
  703. #define TPS65910_REG_VDIG2 6
  704. #define TPS65910_REG_VPLL 7
  705. #define TPS65910_REG_VDAC 8
  706. #define TPS65910_REG_VAUX1 9
  707. #define TPS65910_REG_VAUX2 10
  708. #define TPS65910_REG_VAUX33 11
  709. #define TPS65910_REG_VMMC 12
  710. #define TPS65910_REG_VBB 13
  711. #define TPS65911_REG_VDDCTRL 4
  712. #define TPS65911_REG_LDO1 5
  713. #define TPS65911_REG_LDO2 6
  714. #define TPS65911_REG_LDO3 7
  715. #define TPS65911_REG_LDO4 8
  716. #define TPS65911_REG_LDO5 9
  717. #define TPS65911_REG_LDO6 10
  718. #define TPS65911_REG_LDO7 11
  719. #define TPS65911_REG_LDO8 12
  720. /* Max number of TPS65910/11 regulators */
  721. #define TPS65910_NUM_REGS 14
  722. /* External sleep controls through EN1/EN2/EN3/SLEEP inputs */
  723. #define TPS65910_SLEEP_CONTROL_EXT_INPUT_EN1 0x1
  724. #define TPS65910_SLEEP_CONTROL_EXT_INPUT_EN2 0x2
  725. #define TPS65910_SLEEP_CONTROL_EXT_INPUT_EN3 0x4
  726. #define TPS65911_SLEEP_CONTROL_EXT_INPUT_SLEEP 0x8
  727. /*
  728. * Sleep keepon data: Maintains the state in sleep mode
  729. * @therm_keepon: Keep on the thermal monitoring in sleep state.
  730. * @clkout32k_keepon: Keep on the 32KHz clock output in sleep state.
  731. * @i2chs_keepon: Keep on high speed internal clock in sleep state.
  732. */
  733. struct tps65910_sleep_keepon_data {
  734. unsigned therm_keepon:1;
  735. unsigned clkout32k_keepon:1;
  736. unsigned i2chs_keepon:1;
  737. };
  738. /**
  739. * struct tps65910_board
  740. * Board platform data may be used to initialize regulators.
  741. */
  742. struct tps65910_board {
  743. int gpio_base;
  744. int irq;
  745. int irq_base;
  746. int vmbch_threshold;
  747. int vmbch2_threshold;
  748. bool en_ck32k_xtal;
  749. bool en_dev_slp;
  750. bool pm_off;
  751. struct tps65910_sleep_keepon_data *slp_keepon;
  752. bool en_gpio_sleep[TPS6591X_MAX_NUM_GPIO];
  753. unsigned long regulator_ext_sleep_control[TPS65910_NUM_REGS];
  754. struct regulator_init_data *tps65910_pmic_init_data[TPS65910_NUM_REGS];
  755. };
  756. /**
  757. * struct tps65910 - tps65910 sub-driver chip access routines
  758. */
  759. struct tps65910 {
  760. struct device *dev;
  761. struct i2c_client *i2c_client;
  762. struct regmap *regmap;
  763. unsigned long id;
  764. /* Client devices */
  765. struct tps65910_pmic *pmic;
  766. struct tps65910_rtc *rtc;
  767. struct tps65910_power *power;
  768. /* Device node parsed board data */
  769. struct tps65910_board *of_plat_data;
  770. /* IRQ Handling */
  771. int chip_irq;
  772. struct regmap_irq_chip_data *irq_data;
  773. };
  774. struct tps65910_platform_data {
  775. int irq;
  776. int irq_base;
  777. };
  778. static inline int tps65910_chip_id(struct tps65910 *tps65910)
  779. {
  780. return tps65910->id;
  781. }
  782. static inline int tps65910_reg_read(struct tps65910 *tps65910, u8 reg,
  783. unsigned int *val)
  784. {
  785. return regmap_read(tps65910->regmap, reg, val);
  786. }
  787. static inline int tps65910_reg_write(struct tps65910 *tps65910, u8 reg,
  788. unsigned int val)
  789. {
  790. return regmap_write(tps65910->regmap, reg, val);
  791. }
  792. static inline int tps65910_reg_set_bits(struct tps65910 *tps65910, u8 reg,
  793. u8 mask)
  794. {
  795. return regmap_update_bits(tps65910->regmap, reg, mask, mask);
  796. }
  797. static inline int tps65910_reg_clear_bits(struct tps65910 *tps65910, u8 reg,
  798. u8 mask)
  799. {
  800. return regmap_update_bits(tps65910->regmap, reg, mask, 0);
  801. }
  802. static inline int tps65910_reg_update_bits(struct tps65910 *tps65910, u8 reg,
  803. u8 mask, u8 val)
  804. {
  805. return regmap_update_bits(tps65910->regmap, reg, mask, val);
  806. }
  807. static inline int tps65910_irq_get_virq(struct tps65910 *tps65910, int irq)
  808. {
  809. return regmap_irq_get_virq(tps65910->irq_data, irq);
  810. }
  811. #endif /* __LINUX_MFD_TPS65910_H */