aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/regulator
diff options
context:
space:
mode:
authorMark Brown <broonie@sirena.org.uk>2013-04-27 21:13:41 -0400
committerMark Brown <broonie@sirena.org.uk>2013-04-27 21:13:41 -0400
commit329bd970d8aad338b182aa0ee31a29239897151f (patch)
tree1c2d51fa0b4b45c5a6d4f2e0cd78c61dc74c8064 /drivers/regulator
parent3dc06c1baf2b28e5365a1159755eac2e95142601 (diff)
parentb5366e5edc2014f0c86ed6fdad6fc9c24b7fad2c (diff)
Merge remote-tracking branch 'regulator/topic/lp8788' into v3.9-rc8
Diffstat (limited to 'drivers/regulator')
-rw-r--r--drivers/regulator/lp8788-ldo.c59
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
159static 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
174static 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
187static int lp8788_ldo_enable_time(struct regulator_dev *rdev) 159static 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
201static 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
218static struct regulator_ops lp8788_ldo_voltage_table_ops = { 173static 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
228static struct regulator_ops lp8788_ldo_voltage_fixed_ops = { 183static 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