diff options
| -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 | ||
