aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/regulator/da9052-regulator.c16
1 files changed, 11 insertions, 5 deletions
diff --git a/drivers/regulator/da9052-regulator.c b/drivers/regulator/da9052-regulator.c
index bdb43757d7c7..f2840b522cde 100644
--- a/drivers/regulator/da9052-regulator.c
+++ b/drivers/regulator/da9052-regulator.c
@@ -505,18 +505,23 @@ static inline struct da9052_regulator_info *find_regulator_info(u8 chip_id,
505 struct da9052_regulator_info *info; 505 struct da9052_regulator_info *info;
506 int i; 506 int i;
507 507
508 if (chip_id == DA9052) { 508 switch (chip_id) {
509 case DA9052:
509 for (i = 0; i < ARRAY_SIZE(da9052_regulator_info); i++) { 510 for (i = 0; i < ARRAY_SIZE(da9052_regulator_info); i++) {
510 info = &da9052_regulator_info[i]; 511 info = &da9052_regulator_info[i];
511 if (info->reg_desc.id == id) 512 if (info->reg_desc.id == id)
512 return info; 513 return info;
513 } 514 }
514 } else { 515 break;
516 case DA9053_AA:
517 case DA9053_BA:
518 case DA9053_BB:
515 for (i = 0; i < ARRAY_SIZE(da9053_regulator_info); i++) { 519 for (i = 0; i < ARRAY_SIZE(da9053_regulator_info); i++) {
516 info = &da9053_regulator_info[i]; 520 info = &da9053_regulator_info[i];
517 if (info->reg_desc.id == id) 521 if (info->reg_desc.id == id)
518 return info; 522 return info;
519 } 523 }
524 break;
520 } 525 }
521 526
522 return NULL; 527 return NULL;
@@ -529,7 +534,8 @@ static int __devinit da9052_regulator_probe(struct platform_device *pdev)
529 struct da9052_pdata *pdata; 534 struct da9052_pdata *pdata;
530 int ret; 535 int ret;
531 536
532 regulator = kzalloc(sizeof(struct da9052_regulator), GFP_KERNEL); 537 regulator = devm_kzalloc(&pdev->dev, sizeof(struct da9052_regulator),
538 GFP_KERNEL);
533 if (!regulator) 539 if (!regulator)
534 return -ENOMEM; 540 return -ENOMEM;
535 541
@@ -559,7 +565,7 @@ static int __devinit da9052_regulator_probe(struct platform_device *pdev)
559 565
560 return 0; 566 return 0;
561err: 567err:
562 kfree(regulator); 568 devm_kfree(&pdev->dev, regulator);
563 return ret; 569 return ret;
564} 570}
565 571
@@ -568,7 +574,7 @@ static int __devexit da9052_regulator_remove(struct platform_device *pdev)
568 struct da9052_regulator *regulator = platform_get_drvdata(pdev); 574 struct da9052_regulator *regulator = platform_get_drvdata(pdev);
569 575
570 regulator_unregister(regulator->rdev); 576 regulator_unregister(regulator->rdev);
571 kfree(regulator); 577 devm_kfree(&pdev->dev, regulator);
572 578
573 return 0; 579 return 0;
574} 580}