max8952.h 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118
  1. /* SPDX-License-Identifier: GPL-2.0-or-later */
  2. /*
  3. * max8952.h - Voltage regulation for the Maxim 8952
  4. *
  5. * Copyright (C) 2010 Samsung Electrnoics
  6. * MyungJoo Ham <[email protected]>
  7. */
  8. #ifndef REGULATOR_MAX8952
  9. #define REGULATOR_MAX8952
  10. #include <linux/regulator/machine.h>
  11. enum {
  12. MAX8952_DVS_MODE0,
  13. MAX8952_DVS_MODE1,
  14. MAX8952_DVS_MODE2,
  15. MAX8952_DVS_MODE3,
  16. };
  17. enum {
  18. MAX8952_DVS_770mV = 0,
  19. MAX8952_DVS_780mV,
  20. MAX8952_DVS_790mV,
  21. MAX8952_DVS_800mV,
  22. MAX8952_DVS_810mV,
  23. MAX8952_DVS_820mV,
  24. MAX8952_DVS_830mV,
  25. MAX8952_DVS_840mV,
  26. MAX8952_DVS_850mV,
  27. MAX8952_DVS_860mV,
  28. MAX8952_DVS_870mV,
  29. MAX8952_DVS_880mV,
  30. MAX8952_DVS_890mV,
  31. MAX8952_DVS_900mV,
  32. MAX8952_DVS_910mV,
  33. MAX8952_DVS_920mV,
  34. MAX8952_DVS_930mV,
  35. MAX8952_DVS_940mV,
  36. MAX8952_DVS_950mV,
  37. MAX8952_DVS_960mV,
  38. MAX8952_DVS_970mV,
  39. MAX8952_DVS_980mV,
  40. MAX8952_DVS_990mV,
  41. MAX8952_DVS_1000mV,
  42. MAX8952_DVS_1010mV,
  43. MAX8952_DVS_1020mV,
  44. MAX8952_DVS_1030mV,
  45. MAX8952_DVS_1040mV,
  46. MAX8952_DVS_1050mV,
  47. MAX8952_DVS_1060mV,
  48. MAX8952_DVS_1070mV,
  49. MAX8952_DVS_1080mV,
  50. MAX8952_DVS_1090mV,
  51. MAX8952_DVS_1100mV,
  52. MAX8952_DVS_1110mV,
  53. MAX8952_DVS_1120mV,
  54. MAX8952_DVS_1130mV,
  55. MAX8952_DVS_1140mV,
  56. MAX8952_DVS_1150mV,
  57. MAX8952_DVS_1160mV,
  58. MAX8952_DVS_1170mV,
  59. MAX8952_DVS_1180mV,
  60. MAX8952_DVS_1190mV,
  61. MAX8952_DVS_1200mV,
  62. MAX8952_DVS_1210mV,
  63. MAX8952_DVS_1220mV,
  64. MAX8952_DVS_1230mV,
  65. MAX8952_DVS_1240mV,
  66. MAX8952_DVS_1250mV,
  67. MAX8952_DVS_1260mV,
  68. MAX8952_DVS_1270mV,
  69. MAX8952_DVS_1280mV,
  70. MAX8952_DVS_1290mV,
  71. MAX8952_DVS_1300mV,
  72. MAX8952_DVS_1310mV,
  73. MAX8952_DVS_1320mV,
  74. MAX8952_DVS_1330mV,
  75. MAX8952_DVS_1340mV,
  76. MAX8952_DVS_1350mV,
  77. MAX8952_DVS_1360mV,
  78. MAX8952_DVS_1370mV,
  79. MAX8952_DVS_1380mV,
  80. MAX8952_DVS_1390mV,
  81. MAX8952_DVS_1400mV,
  82. };
  83. enum {
  84. MAX8952_SYNC_FREQ_26MHZ, /* Default */
  85. MAX8952_SYNC_FREQ_13MHZ,
  86. MAX8952_SYNC_FREQ_19_2MHZ,
  87. };
  88. enum {
  89. MAX8952_RAMP_32mV_us = 0, /* Default */
  90. MAX8952_RAMP_16mV_us,
  91. MAX8952_RAMP_8mV_us,
  92. MAX8952_RAMP_4mV_us,
  93. MAX8952_RAMP_2mV_us,
  94. MAX8952_RAMP_1mV_us,
  95. MAX8952_RAMP_0_5mV_us,
  96. MAX8952_RAMP_0_25mV_us,
  97. };
  98. #define MAX8952_NUM_DVS_MODE 4
  99. struct max8952_platform_data {
  100. u32 default_mode;
  101. u32 dvs_mode[MAX8952_NUM_DVS_MODE]; /* MAX8952_DVS_MODEx_XXXXmV */
  102. u32 sync_freq;
  103. u32 ramp_speed;
  104. struct regulator_init_data *reg_data;
  105. };
  106. #endif /* REGULATOR_MAX8952 */