sandbox_pmic.h 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144
  1. /* SPDX-License-Identifier: GPL-2.0+ */
  2. /*
  3. * Copyright (C) 2015 Samsung Electronics
  4. * Przemyslaw Marczak <p.marczak@samsung.com>
  5. */
  6. #ifndef _SANDBOX_PMIC_H_
  7. #define _SANDBOX_PMIC_H_
  8. #define SANDBOX_LDO_DRIVER "sandbox_ldo"
  9. #define SANDBOX_OF_LDO_PREFIX "ldo"
  10. #define SANDBOX_BUCK_DRIVER "sandbox_buck"
  11. #define SANDBOX_OF_BUCK_PREFIX "buck"
  12. #define SANDBOX_BUCK_COUNT 3
  13. #define SANDBOX_LDO_COUNT 2
  14. /*
  15. * Sandbox PMIC registers:
  16. * We have only 12 significant registers, but we alloc 16 for padding.
  17. */
  18. enum {
  19. SANDBOX_PMIC_REG_BUCK1_UV = 0,
  20. SANDBOX_PMIC_REG_BUCK1_UA,
  21. SANDBOX_PMIC_REG_BUCK1_OM,
  22. SANDBOX_PMIC_REG_BUCK2_UV,
  23. SANDBOX_PMIC_REG_BUCK2_UA,
  24. SANDBOX_PMIC_REG_BUCK2_OM,
  25. SANDBOX_PMIC_REG_LDO_OFFSET,
  26. SANDBOX_PMIC_REG_LDO1_UV = SANDBOX_PMIC_REG_LDO_OFFSET,
  27. SANDBOX_PMIC_REG_LDO1_UA,
  28. SANDBOX_PMIC_REG_LDO1_OM,
  29. SANDBOX_PMIC_REG_LDO2_UV,
  30. SANDBOX_PMIC_REG_LDO2_UA,
  31. SANDBOX_PMIC_REG_LDO2_OM,
  32. SANDBOX_PMIC_REG_COUNT = 16,
  33. };
  34. /* Register offset for output: micro Volts, micro Amps, Operation Mode */
  35. enum {
  36. OUT_REG_UV = 0,
  37. OUT_REG_UA,
  38. OUT_REG_OM,
  39. OUT_REG_COUNT,
  40. };
  41. /* Buck operation modes */
  42. enum {
  43. BUCK_OM_OFF = 0,
  44. BUCK_OM_ON,
  45. BUCK_OM_PWM,
  46. BUCK_OM_COUNT,
  47. };
  48. /* Ldo operation modes */
  49. enum {
  50. LDO_OM_OFF = 0,
  51. LDO_OM_ON,
  52. LDO_OM_SLEEP,
  53. LDO_OM_STANDBY,
  54. LDO_OM_COUNT,
  55. };
  56. /* BUCK1 Voltage: min: 0.8V, step: 25mV, max 2.4V */
  57. #define OUT_BUCK1_UV_MIN 800000
  58. #define OUT_BUCK1_UV_MAX 2400000
  59. #define OUT_BUCK1_UV_STEP 25000
  60. /* BUCK1 Amperage: min: 150mA, step: 25mA, max: 250mA */
  61. #define OUT_BUCK1_UA_MIN 150000
  62. #define OUT_BUCK1_UA_MAX 250000
  63. #define OUT_BUCK1_UA_STEP 25000
  64. /* BUCK2 Voltage: min: 0.75V, step: 50mV, max 3.95V */
  65. #define OUT_BUCK2_UV_MIN 750000
  66. #define OUT_BUCK2_UV_MAX 3950000
  67. #define OUT_BUCK2_UV_STEP 50000
  68. /* LDO1 Voltage: min: 0.8V, step: 25mV, max 2.4V */
  69. #define OUT_LDO1_UV_MIN 800000
  70. #define OUT_LDO1_UV_MAX 2400000
  71. #define OUT_LDO1_UV_STEP 25000
  72. /* LDO1 Amperage: min: 100mA, step: 50mA, max: 200mA */
  73. #define OUT_LDO1_UA_MIN 100000
  74. #define OUT_LDO1_UA_MAX 200000
  75. #define OUT_LDO1_UA_STEP 50000
  76. /* LDO2 Voltage: min: 0.75V, step: 50mV, max 3.95V */
  77. #define OUT_LDO2_UV_MIN 750000
  78. #define OUT_LDO2_UV_MAX 3950000
  79. #define OUT_LDO2_UV_STEP 50000
  80. /* register <-> value conversion */
  81. #define REG2VAL(min, step, reg) ((min) + ((step) * (reg)))
  82. #define VAL2REG(min, step, val) (((val) - (min)) / (step))
  83. /* Operation mode id -> register value conversion */
  84. #define OM2REG(x) (x)
  85. /* Test data for: test/dm/power.c */
  86. /* BUCK names */
  87. #define SANDBOX_BUCK1_DEVNAME "buck1"
  88. #define SANDBOX_BUCK1_PLATNAME "SUPPLY_1.2V"
  89. #define SANDBOX_BUCK2_DEVNAME "buck2"
  90. #define SANDBOX_BUCK2_PLATNAME "SUPPLY_3.3V"
  91. /* BUCK3: for testing fallback regulator prefix matching during bind */
  92. #define SANDBOX_BUCK3_DEVNAME "no_match_by_nodename"
  93. #define SANDBOX_BUCK3_PLATNAME "buck_SUPPLY_1.5V"
  94. /* LDO names */
  95. #define SANDBOX_LDO1_DEVNAME "ldo1"
  96. #define SANDBOX_LDO1_PLATNAME "VDD_EMMC_1.8V"
  97. #define SANDBOX_LDO2_DEVNAME "ldo2"
  98. #define SANDBOX_LDO2_PLATNAME "VDD_LCD_3.3V"
  99. /*
  100. * Expected regulators setup after call of:
  101. * - regulator_autoset_by_name()
  102. * - regulator_list_autoset()
  103. */
  104. /* BUCK1: for testing regulator_autoset_by_name() */
  105. #define SANDBOX_BUCK1_AUTOSET_EXPECTED_UV 1200000
  106. #define SANDBOX_BUCK1_AUTOSET_EXPECTED_UA 200000
  107. #define SANDBOX_BUCK1_AUTOSET_EXPECTED_ENABLE true
  108. /* BUCK2: for testing sandbox ADC's supply */
  109. #define SANDBOX_BUCK2_INITIAL_EXPECTED_UV 3000000
  110. #define SANDBOX_BUCK2_SET_UV 3300000
  111. /* LDO1/2 for testing regulator_list_autoset() */
  112. #define SANDBOX_LDO1_AUTOSET_EXPECTED_UV 1800000
  113. #define SANDBOX_LDO1_AUTOSET_EXPECTED_UA 100000
  114. #define SANDBOX_LDO1_AUTOSET_EXPECTED_ENABLE true
  115. #define SANDBOX_LDO2_AUTOSET_EXPECTED_UV 3000000
  116. #define SANDBOX_LDO2_AUTOSET_EXPECTED_UA -ENOSYS
  117. #define SANDBOX_LDO2_AUTOSET_EXPECTED_ENABLE false
  118. #endif