diff options
author | Mark Brown <broonie@sirena.org.uk> | 2013-04-27 21:13:41 -0400 |
---|---|---|
committer | Mark Brown <broonie@sirena.org.uk> | 2013-04-27 21:13:41 -0400 |
commit | 329bd970d8aad338b182aa0ee31a29239897151f (patch) | |
tree | 1c2d51fa0b4b45c5a6d4f2e0cd78c61dc74c8064 /drivers/regulator | |
parent | 3dc06c1baf2b28e5365a1159755eac2e95142601 (diff) | |
parent | b5366e5edc2014f0c86ed6fdad6fc9c24b7fad2c (diff) |
Merge remote-tracking branch 'regulator/topic/lp8788' into v3.9-rc8
Diffstat (limited to 'drivers/regulator')
-rw-r--r-- | drivers/regulator/lp8788-ldo.c | 59 |
1 files changed, 11 insertions, 48 deletions
diff --git a/drivers/regulator/lp8788-ldo.c b/drivers/regulator/lp8788-ldo.c index fcba90a4c26c..0ce2c4c194b3 100644 --- a/drivers/regulator/lp8788-ldo.c +++ b/drivers/regulator/lp8788-ldo.c | |||
@@ -156,34 +156,6 @@ static const int lp8788_aldo7_vtbl[] = { | |||
156 | 1200000, 1300000, 1400000, 1500000, 1600000, 1700000, 1800000, 1800000, | 156 | 1200000, 1300000, 1400000, 1500000, 1600000, 1700000, 1800000, 1800000, |
157 | }; | 157 | }; |
158 | 158 | ||
159 | static enum lp8788_ldo_id lp8788_dldo_id[] = { | ||
160 | DLDO1, | ||
161 | DLDO2, | ||
162 | DLDO3, | ||
163 | DLDO4, | ||
164 | DLDO5, | ||
165 | DLDO6, | ||
166 | DLDO7, | ||
167 | DLDO8, | ||
168 | DLDO9, | ||
169 | DLDO10, | ||
170 | DLDO11, | ||
171 | DLDO12, | ||
172 | }; | ||
173 | |||
174 | static enum lp8788_ldo_id lp8788_aldo_id[] = { | ||
175 | ALDO1, | ||
176 | ALDO2, | ||
177 | ALDO3, | ||
178 | ALDO4, | ||
179 | ALDO5, | ||
180 | ALDO6, | ||
181 | ALDO7, | ||
182 | ALDO8, | ||
183 | ALDO9, | ||
184 | ALDO10, | ||
185 | }; | ||
186 | |||
187 | static int lp8788_ldo_enable_time(struct regulator_dev *rdev) | 159 | static int lp8788_ldo_enable_time(struct regulator_dev *rdev) |
188 | { | 160 | { |
189 | struct lp8788_ldo *ldo = rdev_get_drvdata(rdev); | 161 | struct lp8788_ldo *ldo = rdev_get_drvdata(rdev); |
@@ -198,23 +170,6 @@ static int lp8788_ldo_enable_time(struct regulator_dev *rdev) | |||
198 | return ENABLE_TIME_USEC * val; | 170 | return ENABLE_TIME_USEC * val; |
199 | } | 171 | } |
200 | 172 | ||
201 | static int lp8788_ldo_fixed_get_voltage(struct regulator_dev *rdev) | ||
202 | { | ||
203 | enum lp8788_ldo_id id = rdev_get_id(rdev); | ||
204 | |||
205 | switch (id) { | ||
206 | case ALDO2 ... ALDO5: | ||
207 | return 2850000; | ||
208 | case DLDO12: | ||
209 | case ALDO8 ... ALDO9: | ||
210 | return 2500000; | ||
211 | case ALDO10: | ||
212 | return 1100000; | ||
213 | default: | ||
214 | return -EINVAL; | ||
215 | } | ||
216 | } | ||
217 | |||
218 | static struct regulator_ops lp8788_ldo_voltage_table_ops = { | 173 | static struct regulator_ops lp8788_ldo_voltage_table_ops = { |
219 | .list_voltage = regulator_list_voltage_table, | 174 | .list_voltage = regulator_list_voltage_table, |
220 | .set_voltage_sel = regulator_set_voltage_sel_regmap, | 175 | .set_voltage_sel = regulator_set_voltage_sel_regmap, |
@@ -226,7 +181,7 @@ static struct regulator_ops lp8788_ldo_voltage_table_ops = { | |||
226 | }; | 181 | }; |
227 | 182 | ||
228 | static struct regulator_ops lp8788_ldo_voltage_fixed_ops = { | 183 | static struct regulator_ops lp8788_ldo_voltage_fixed_ops = { |
229 | .get_voltage = lp8788_ldo_fixed_get_voltage, | 184 | .list_voltage = regulator_list_voltage_linear, |
230 | .enable = regulator_enable_regmap, | 185 | .enable = regulator_enable_regmap, |
231 | .disable = regulator_disable_regmap, | 186 | .disable = regulator_disable_regmap, |
232 | .is_enabled = regulator_is_enabled_regmap, | 187 | .is_enabled = regulator_is_enabled_regmap, |
@@ -386,6 +341,7 @@ static struct regulator_desc lp8788_dldo_desc[] = { | |||
386 | .owner = THIS_MODULE, | 341 | .owner = THIS_MODULE, |
387 | .enable_reg = LP8788_EN_LDO_B, | 342 | .enable_reg = LP8788_EN_LDO_B, |
388 | .enable_mask = LP8788_EN_DLDO12_M, | 343 | .enable_mask = LP8788_EN_DLDO12_M, |
344 | .min_uV = 2500000, | ||
389 | }, | 345 | }, |
390 | }; | 346 | }; |
391 | 347 | ||
@@ -412,6 +368,7 @@ static struct regulator_desc lp8788_aldo_desc[] = { | |||
412 | .owner = THIS_MODULE, | 368 | .owner = THIS_MODULE, |
413 | .enable_reg = LP8788_EN_LDO_B, | 369 | .enable_reg = LP8788_EN_LDO_B, |
414 | .enable_mask = LP8788_EN_ALDO2_M, | 370 | .enable_mask = LP8788_EN_ALDO2_M, |
371 | .min_uV = 2850000, | ||
415 | }, | 372 | }, |
416 | { | 373 | { |
417 | .name = "aldo3", | 374 | .name = "aldo3", |
@@ -422,6 +379,7 @@ static struct regulator_desc lp8788_aldo_desc[] = { | |||
422 | .owner = THIS_MODULE, | 379 | .owner = THIS_MODULE, |
423 | .enable_reg = LP8788_EN_LDO_B, | 380 | .enable_reg = LP8788_EN_LDO_B, |
424 | .enable_mask = LP8788_EN_ALDO3_M, | 381 | .enable_mask = LP8788_EN_ALDO3_M, |
382 | .min_uV = 2850000, | ||
425 | }, | 383 | }, |
426 | { | 384 | { |
427 | .name = "aldo4", | 385 | .name = "aldo4", |
@@ -432,6 +390,7 @@ static struct regulator_desc lp8788_aldo_desc[] = { | |||
432 | .owner = THIS_MODULE, | 390 | .owner = THIS_MODULE, |
433 | .enable_reg = LP8788_EN_LDO_B, | 391 | .enable_reg = LP8788_EN_LDO_B, |
434 | .enable_mask = LP8788_EN_ALDO4_M, | 392 | .enable_mask = LP8788_EN_ALDO4_M, |
393 | .min_uV = 2850000, | ||
435 | }, | 394 | }, |
436 | { | 395 | { |
437 | .name = "aldo5", | 396 | .name = "aldo5", |
@@ -442,6 +401,7 @@ static struct regulator_desc lp8788_aldo_desc[] = { | |||
442 | .owner = THIS_MODULE, | 401 | .owner = THIS_MODULE, |
443 | .enable_reg = LP8788_EN_LDO_C, | 402 | .enable_reg = LP8788_EN_LDO_C, |
444 | .enable_mask = LP8788_EN_ALDO5_M, | 403 | .enable_mask = LP8788_EN_ALDO5_M, |
404 | .min_uV = 2850000, | ||
445 | }, | 405 | }, |
446 | { | 406 | { |
447 | .name = "aldo6", | 407 | .name = "aldo6", |
@@ -478,6 +438,7 @@ static struct regulator_desc lp8788_aldo_desc[] = { | |||
478 | .owner = THIS_MODULE, | 438 | .owner = THIS_MODULE, |
479 | .enable_reg = LP8788_EN_LDO_C, | 439 | .enable_reg = LP8788_EN_LDO_C, |
480 | .enable_mask = LP8788_EN_ALDO8_M, | 440 | .enable_mask = LP8788_EN_ALDO8_M, |
441 | .min_uV = 2500000, | ||
481 | }, | 442 | }, |
482 | { | 443 | { |
483 | .name = "aldo9", | 444 | .name = "aldo9", |
@@ -488,6 +449,7 @@ static struct regulator_desc lp8788_aldo_desc[] = { | |||
488 | .owner = THIS_MODULE, | 449 | .owner = THIS_MODULE, |
489 | .enable_reg = LP8788_EN_LDO_C, | 450 | .enable_reg = LP8788_EN_LDO_C, |
490 | .enable_mask = LP8788_EN_ALDO9_M, | 451 | .enable_mask = LP8788_EN_ALDO9_M, |
452 | .min_uV = 2500000, | ||
491 | }, | 453 | }, |
492 | { | 454 | { |
493 | .name = "aldo10", | 455 | .name = "aldo10", |
@@ -498,6 +460,7 @@ static struct regulator_desc lp8788_aldo_desc[] = { | |||
498 | .owner = THIS_MODULE, | 460 | .owner = THIS_MODULE, |
499 | .enable_reg = LP8788_EN_LDO_C, | 461 | .enable_reg = LP8788_EN_LDO_C, |
500 | .enable_mask = LP8788_EN_ALDO10_M, | 462 | .enable_mask = LP8788_EN_ALDO10_M, |
463 | .min_uV = 1100000, | ||
501 | }, | 464 | }, |
502 | }; | 465 | }; |
503 | 466 | ||
@@ -566,7 +529,7 @@ static int lp8788_dldo_probe(struct platform_device *pdev) | |||
566 | return -ENOMEM; | 529 | return -ENOMEM; |
567 | 530 | ||
568 | ldo->lp = lp; | 531 | ldo->lp = lp; |
569 | ret = lp8788_config_ldo_enable_mode(pdev, ldo, lp8788_dldo_id[id]); | 532 | ret = lp8788_config_ldo_enable_mode(pdev, ldo, id); |
570 | if (ret) | 533 | if (ret) |
571 | return ret; | 534 | return ret; |
572 | 535 | ||
@@ -627,7 +590,7 @@ static int lp8788_aldo_probe(struct platform_device *pdev) | |||
627 | return -ENOMEM; | 590 | return -ENOMEM; |
628 | 591 | ||
629 | ldo->lp = lp; | 592 | ldo->lp = lp; |
630 | ret = lp8788_config_ldo_enable_mode(pdev, ldo, lp8788_aldo_id[id]); | 593 | ret = lp8788_config_ldo_enable_mode(pdev, ldo, id + ALDO1); |
631 | if (ret) | 594 | if (ret) |
632 | return ret; | 595 | return ret; |
633 | 596 | ||