ab8500.h 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152
  1. /*
  2. * Copyright (C) ST-Ericsson SA 2010
  3. *
  4. * License Terms: GNU General Public License v2
  5. *
  6. * Authors: Sundar Iyer <sundar.iyer@stericsson.com> for ST-Ericsson
  7. * Bengt Jonsson <bengt.g.jonsson@stericsson.com> for ST-Ericsson
  8. */
  9. #ifndef __LINUX_MFD_AB8500_REGULATOR_H
  10. #define __LINUX_MFD_AB8500_REGULATOR_H
  11. /* AB8500 regulators */
  12. enum ab8500_regulator_id {
  13. AB8500_LDO_AUX1,
  14. AB8500_LDO_AUX2,
  15. AB8500_LDO_AUX3,
  16. AB8500_LDO_INTCORE,
  17. AB8500_LDO_TVOUT,
  18. AB8500_LDO_USB,
  19. AB8500_LDO_AUDIO,
  20. AB8500_LDO_ANAMIC1,
  21. AB8500_LDO_ANAMIC2,
  22. AB8500_LDO_DMIC,
  23. AB8500_LDO_ANA,
  24. AB8500_NUM_REGULATORS,
  25. };
  26. /* AB9450 regulators */
  27. enum ab9540_regulator_id {
  28. AB9540_LDO_AUX1,
  29. AB9540_LDO_AUX2,
  30. AB9540_LDO_AUX3,
  31. AB9540_LDO_AUX4,
  32. AB9540_LDO_INTCORE,
  33. AB9540_LDO_TVOUT,
  34. AB9540_LDO_USB,
  35. AB9540_LDO_AUDIO,
  36. AB9540_LDO_ANAMIC1,
  37. AB9540_LDO_ANAMIC2,
  38. AB9540_LDO_DMIC,
  39. AB9540_LDO_ANA,
  40. AB9540_SYSCLKREQ_2,
  41. AB9540_SYSCLKREQ_4,
  42. AB9540_NUM_REGULATORS,
  43. };
  44. /* AB8500 and AB9540 register initialization */
  45. struct ab8500_regulator_reg_init {
  46. int id;
  47. u8 mask;
  48. u8 value;
  49. };
  50. #define INIT_REGULATOR_REGISTER(_id, _mask, _value) \
  51. { \
  52. .id = _id, \
  53. .mask = _mask, \
  54. .value = _value, \
  55. }
  56. /* AB8500 registers */
  57. enum ab8500_regulator_reg {
  58. AB8500_REGUREQUESTCTRL2,
  59. AB8500_REGUREQUESTCTRL3,
  60. AB8500_REGUREQUESTCTRL4,
  61. AB8500_REGUSYSCLKREQ1HPVALID1,
  62. AB8500_REGUSYSCLKREQ1HPVALID2,
  63. AB8500_REGUHWHPREQ1VALID1,
  64. AB8500_REGUHWHPREQ1VALID2,
  65. AB8500_REGUHWHPREQ2VALID1,
  66. AB8500_REGUHWHPREQ2VALID2,
  67. AB8500_REGUSWHPREQVALID1,
  68. AB8500_REGUSWHPREQVALID2,
  69. AB8500_REGUSYSCLKREQVALID1,
  70. AB8500_REGUSYSCLKREQVALID2,
  71. AB8500_REGUMISC1,
  72. AB8500_VAUDIOSUPPLY,
  73. AB8500_REGUCTRL1VAMIC,
  74. AB8500_VPLLVANAREGU,
  75. AB8500_VREFDDR,
  76. AB8500_EXTSUPPLYREGU,
  77. AB8500_VAUX12REGU,
  78. AB8500_VRF1VAUX3REGU,
  79. AB8500_VAUX1SEL,
  80. AB8500_VAUX2SEL,
  81. AB8500_VRF1VAUX3SEL,
  82. AB8500_REGUCTRL2SPARE,
  83. AB8500_REGUCTRLDISCH,
  84. AB8500_REGUCTRLDISCH2,
  85. AB8500_ARMREGU2, /* NOTE! PRCMU register */
  86. AB8500_VBBSEL1, /* NOTE! PRCMU register */
  87. AB8500_VBBSEL2, /* NOTE! PRCMU register */
  88. AB8500_VSMPS1REGU,
  89. AB8500_VSMPS2REGU,
  90. AB8500_VSMPS3REGU, /* NOTE! PRCMU register */
  91. AB8500_VSMPS1SEL1,
  92. AB8500_VSMPS3SEL1, /* NOTE! PRCMU register */
  93. AB8500_VSMPS3SEL2, /* NOTE! PRCMU register */
  94. AB8500_NUM_REGULATOR_REGISTERS,
  95. };
  96. /* AB9540 registers */
  97. enum ab9540_regulator_reg {
  98. AB9540_REGUREQUESTCTRL1,
  99. AB9540_REGUREQUESTCTRL2,
  100. AB9540_REGUREQUESTCTRL3,
  101. AB9540_REGUREQUESTCTRL4,
  102. AB9540_REGUSYSCLKREQ1HPVALID1,
  103. AB9540_REGUSYSCLKREQ1HPVALID2,
  104. AB9540_REGUHWHPREQ1VALID1,
  105. AB9540_REGUHWHPREQ1VALID2,
  106. AB9540_REGUHWHPREQ2VALID1,
  107. AB9540_REGUHWHPREQ2VALID2,
  108. AB9540_REGUSWHPREQVALID1,
  109. AB9540_REGUSWHPREQVALID2,
  110. AB9540_REGUSYSCLKREQVALID1,
  111. AB9540_REGUSYSCLKREQVALID2,
  112. AB9540_REGUVAUX4REQVALID,
  113. AB9540_REGUMISC1,
  114. AB9540_VAUDIOSUPPLY,
  115. AB9540_REGUCTRL1VAMIC,
  116. AB9540_VSMPS1REGU,
  117. AB9540_VSMPS2REGU,
  118. AB9540_VSMPS3REGU, /* NOTE! PRCMU register */
  119. AB9540_VPLLVANAREGU,
  120. AB9540_EXTSUPPLYREGU,
  121. AB9540_VAUX12REGU,
  122. AB9540_VRF1VAUX3REGU,
  123. AB9540_VSMPS1SEL1,
  124. AB9540_VSMPS1SEL2,
  125. AB9540_VSMPS1SEL3,
  126. AB9540_VSMPS2SEL1,
  127. AB9540_VSMPS2SEL2,
  128. AB9540_VSMPS2SEL3,
  129. AB9540_VSMPS3SEL1, /* NOTE! PRCMU register */
  130. AB9540_VSMPS3SEL2, /* NOTE! PRCMU register */
  131. AB9540_VAUX1SEL,
  132. AB9540_VAUX2SEL,
  133. AB9540_VRF1VAUX3SEL,
  134. AB9540_REGUCTRL2SPARE,
  135. AB9540_VAUX4REQCTRL,
  136. AB9540_VAUX4REGU,
  137. AB9540_VAUX4SEL,
  138. AB9540_REGUCTRLDISCH,
  139. AB9540_REGUCTRLDISCH2,
  140. AB9540_REGUCTRLDISCH3,
  141. AB9540_NUM_REGULATOR_REGISTERS,
  142. };
  143. #endif