Commit 2654d368ea3dc7e04a78ff2531ffd886736ae374

Authored by Axel Lin
Committed by Mark Brown
1 parent 6145601b22

regulator: 88pm8607: Simplify pm8607_list_voltage implementation

Set volt_table filed then we can use regulator_list_voltage_table.
Since we have volt_table setting, now we can remove vol_table from
struct pm8607_regulator_info.

Signed-off-by: Axel Lin <axel.lin@ingics.com>
Signed-off-by: Mark Brown <broonie@kernel.org>

Showing 1 changed file with 10 additions and 9 deletions Side-by-side Diff

drivers/regulator/88pm8607.c
... ... @@ -27,7 +27,6 @@
27 27 struct i2c_client *i2c;
28 28 struct i2c_client *i2c_8606;
29 29  
30   - unsigned int *vol_table;
31 30 unsigned int *vol_suspend;
32 31  
33 32 int slope_double;
34 33  
... ... @@ -210,13 +209,15 @@
210 209 static int pm8607_list_voltage(struct regulator_dev *rdev, unsigned index)
211 210 {
212 211 struct pm8607_regulator_info *info = rdev_get_drvdata(rdev);
213   - int ret = -EINVAL;
  212 + int ret;
214 213  
215   - if (info->vol_table && (index < rdev->desc->n_voltages)) {
216   - ret = info->vol_table[index];
217   - if (info->slope_double)
218   - ret <<= 1;
219   - }
  214 + ret = regulator_list_voltage_table(rdev, index);
  215 + if (ret < 0)
  216 + return ret;
  217 +
  218 + if (info->slope_double)
  219 + ret <<= 1;
  220 +
220 221 return ret;
221 222 }
222 223  
... ... @@ -257,6 +258,7 @@
257 258 .type = REGULATOR_VOLTAGE, \
258 259 .id = PM8607_ID_##vreg, \
259 260 .owner = THIS_MODULE, \
  261 + .volt_table = vreg##_table, \
260 262 .n_voltages = ARRAY_SIZE(vreg##_table), \
261 263 .vsel_reg = PM8607_##vreg, \
262 264 .vsel_mask = ARRAY_SIZE(vreg##_table) - 1, \
... ... @@ -266,7 +268,6 @@
266 268 .enable_mask = 1 << (ebit), \
267 269 }, \
268 270 .slope_double = (0), \
269   - .vol_table = (unsigned int *)&vreg##_table, \
270 271 .vol_suspend = (unsigned int *)&vreg##_suspend_table, \
271 272 }
272 273  
... ... @@ -278,6 +279,7 @@
278 279 .type = REGULATOR_VOLTAGE, \
279 280 .id = PM8607_ID_LDO##_id, \
280 281 .owner = THIS_MODULE, \
  282 + .volt_table = LDO##_id##_table, \
281 283 .n_voltages = ARRAY_SIZE(LDO##_id##_table), \
282 284 .vsel_reg = PM8607_##vreg, \
283 285 .vsel_mask = (ARRAY_SIZE(LDO##_id##_table) - 1) << (shift), \
... ... @@ -285,7 +287,6 @@
285 287 .enable_mask = 1 << (ebit), \
286 288 }, \
287 289 .slope_double = (0), \
288   - .vol_table = (unsigned int *)&LDO##_id##_table, \
289 290 .vol_suspend = (unsigned int *)&LDO##_id##_suspend_table, \
290 291 }
291 292