aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNishanth Menon <nm@ti.com>2014-06-30 11:57:36 -0400
committerMark Brown <broonie@linaro.org>2014-07-03 10:25:55 -0400
commitcf910b6b7101dae5eabaf2249b427e7698095abd (patch)
tree133873df72d8041420962c358516038f8c6b2a81
parente7cf34ef396d6ceaa776661830d4ce332da650f0 (diff)
regulator: palmas: Simplify code by using pointer to palmas_reg_info
Palmas register information is part of the ddata pointer which is used through out the code by indexing off the driver data array. Instead, just do the indexing once and use the pointer to further reference structure fields. This simplifies code and prevents errors by accessing wrong variables. Signed-off-by: Nishanth Menon <nm@ti.com> Tested-by: Stephen Warren <swarren@nvidia.com> Tested-by: Keerthy <j-keerthy@ti.com> Signed-off-by: Mark Brown <broonie@linaro.org>
-rw-r--r--drivers/regulator/palmas-regulator.c109
1 files changed, 56 insertions, 53 deletions
diff --git a/drivers/regulator/palmas-regulator.c b/drivers/regulator/palmas-regulator.c
index 05f11b96e17f..f75fb90d7db3 100644
--- a/drivers/regulator/palmas-regulator.c
+++ b/drivers/regulator/palmas-regulator.c
@@ -434,14 +434,14 @@ static int palmas_ldo_write(struct palmas *palmas, unsigned int reg,
434 434
435static int palmas_set_mode_smps(struct regulator_dev *dev, unsigned int mode) 435static int palmas_set_mode_smps(struct regulator_dev *dev, unsigned int mode)
436{ 436{
437 int id = rdev_get_id(dev);
437 struct palmas_pmic *pmic = rdev_get_drvdata(dev); 438 struct palmas_pmic *pmic = rdev_get_drvdata(dev);
438 struct palmas_pmic_driver_data *ddata = pmic->palmas->pmic_ddata; 439 struct palmas_pmic_driver_data *ddata = pmic->palmas->pmic_ddata;
439 int id = rdev_get_id(dev); 440 struct palmas_regs_info *rinfo = &ddata->palmas_regs_info[id];
440 unsigned int reg; 441 unsigned int reg;
441 bool rail_enable = true; 442 bool rail_enable = true;
442 443
443 palmas_smps_read(pmic->palmas, ddata->palmas_regs_info[id].ctrl_addr, 444 palmas_smps_read(pmic->palmas, rinfo->ctrl_addr, &reg);
444 &reg);
445 445
446 reg &= ~PALMAS_SMPS12_CTRL_MODE_ACTIVE_MASK; 446 reg &= ~PALMAS_SMPS12_CTRL_MODE_ACTIVE_MASK;
447 447
@@ -464,8 +464,7 @@ static int palmas_set_mode_smps(struct regulator_dev *dev, unsigned int mode)
464 464
465 pmic->current_reg_mode[id] = reg & PALMAS_SMPS12_CTRL_MODE_ACTIVE_MASK; 465 pmic->current_reg_mode[id] = reg & PALMAS_SMPS12_CTRL_MODE_ACTIVE_MASK;
466 if (rail_enable) 466 if (rail_enable)
467 palmas_smps_write(pmic->palmas, 467 palmas_smps_write(pmic->palmas, rinfo->ctrl_addr, reg);
468 ddata->palmas_regs_info[id].ctrl_addr, reg);
469 468
470 /* Switch the enable value to ensure this is used for enable */ 469 /* Switch the enable value to ensure this is used for enable */
471 pmic->desc[id].enable_val = pmic->current_reg_mode[id]; 470 pmic->desc[id].enable_val = pmic->current_reg_mode[id];
@@ -496,11 +495,11 @@ static unsigned int palmas_get_mode_smps(struct regulator_dev *dev)
496static int palmas_smps_set_ramp_delay(struct regulator_dev *rdev, 495static int palmas_smps_set_ramp_delay(struct regulator_dev *rdev,
497 int ramp_delay) 496 int ramp_delay)
498{ 497{
498 int id = rdev_get_id(rdev);
499 struct palmas_pmic *pmic = rdev_get_drvdata(rdev); 499 struct palmas_pmic *pmic = rdev_get_drvdata(rdev);
500 struct palmas_pmic_driver_data *ddata = pmic->palmas->pmic_ddata; 500 struct palmas_pmic_driver_data *ddata = pmic->palmas->pmic_ddata;
501 int id = rdev_get_id(rdev); 501 struct palmas_regs_info *rinfo = &ddata->palmas_regs_info[id];
502 unsigned int reg = 0; 502 unsigned int reg = 0;
503 unsigned int addr = ddata->palmas_regs_info[id].tstep_addr;
504 int ret; 503 int ret;
505 504
506 /* SMPS3 and SMPS7 do not have tstep_addr setting */ 505 /* SMPS3 and SMPS7 do not have tstep_addr setting */
@@ -519,7 +518,7 @@ static int palmas_smps_set_ramp_delay(struct regulator_dev *rdev,
519 else 518 else
520 reg = 1; 519 reg = 1;
521 520
522 ret = palmas_smps_write(pmic->palmas, addr, reg); 521 ret = palmas_smps_write(pmic->palmas, rinfo->tstep_addr, reg);
523 if (ret < 0) { 522 if (ret < 0) {
524 dev_err(pmic->palmas->dev, "TSTEP write failed: %d\n", ret); 523 dev_err(pmic->palmas->dev, "TSTEP write failed: %d\n", ret);
525 return ret; 524 return ret;
@@ -590,13 +589,13 @@ static struct regulator_ops tps65917_ops_ext_control_smps = {
590 589
591static int palmas_is_enabled_ldo(struct regulator_dev *dev) 590static int palmas_is_enabled_ldo(struct regulator_dev *dev)
592{ 591{
592 int id = rdev_get_id(dev);
593 struct palmas_pmic *pmic = rdev_get_drvdata(dev); 593 struct palmas_pmic *pmic = rdev_get_drvdata(dev);
594 struct palmas_pmic_driver_data *ddata = pmic->palmas->pmic_ddata; 594 struct palmas_pmic_driver_data *ddata = pmic->palmas->pmic_ddata;
595 int id = rdev_get_id(dev); 595 struct palmas_regs_info *rinfo = &ddata->palmas_regs_info[id];
596 unsigned int reg; 596 unsigned int reg;
597 597
598 palmas_ldo_read(pmic->palmas, 598 palmas_ldo_read(pmic->palmas, rinfo->ctrl_addr, &reg);
599 ddata->palmas_regs_info[id].ctrl_addr, &reg);
600 599
601 reg &= PALMAS_LDO1_CTRL_STATUS; 600 reg &= PALMAS_LDO1_CTRL_STATUS;
602 601
@@ -643,11 +642,12 @@ static struct regulator_ops tps65917_ops_ldo = {
643static int palmas_regulator_config_external(struct palmas *palmas, int id, 642static int palmas_regulator_config_external(struct palmas *palmas, int id,
644 struct palmas_reg_init *reg_init) 643 struct palmas_reg_init *reg_init)
645{ 644{
646 int sleep_id = palmas_regs_info[id].sleep_id; 645 struct palmas_pmic_driver_data *ddata = palmas->pmic_ddata;
646 struct palmas_regs_info *rinfo = &ddata->palmas_regs_info[id];
647 int ret; 647 int ret;
648 648
649 ret = palmas_ext_control_req_config(palmas, sleep_id, 649 ret = palmas_ext_control_req_config(palmas, rinfo->sleep_id,
650 reg_init->roof_floor, true); 650 reg_init->roof_floor, true);
651 if (ret < 0) 651 if (ret < 0)
652 dev_err(palmas->dev, 652 dev_err(palmas->dev,
653 "Ext control config for regulator %d failed %d\n", 653 "Ext control config for regulator %d failed %d\n",
@@ -665,12 +665,10 @@ static int palmas_smps_init(struct palmas *palmas, int id,
665 struct palmas_reg_init *reg_init) 665 struct palmas_reg_init *reg_init)
666{ 666{
667 unsigned int reg; 667 unsigned int reg;
668 unsigned int addr;
669 int ret; 668 int ret;
670
671 struct palmas_pmic_driver_data *ddata = palmas->pmic_ddata; 669 struct palmas_pmic_driver_data *ddata = palmas->pmic_ddata;
672 670 struct palmas_regs_info *rinfo = &ddata->palmas_regs_info[id];
673 addr = ddata->palmas_regs_info[id].ctrl_addr; 671 unsigned int addr = rinfo->ctrl_addr;
674 672
675 ret = palmas_smps_read(palmas, addr, &reg); 673 ret = palmas_smps_read(palmas, addr, &reg);
676 if (ret) 674 if (ret)
@@ -705,12 +703,11 @@ static int palmas_smps_init(struct palmas *palmas, int id,
705 if (ret) 703 if (ret)
706 return ret; 704 return ret;
707 705
708 if (ddata->palmas_regs_info[id].vsel_addr && reg_init->vsel) { 706 if (rinfo->vsel_addr && reg_init->vsel) {
709 addr = ddata->palmas_regs_info[id].vsel_addr;
710 707
711 reg = reg_init->vsel; 708 reg = reg_init->vsel;
712 709
713 ret = palmas_smps_write(palmas, addr, reg); 710 ret = palmas_smps_write(palmas, rinfo->vsel_addr, reg);
714 if (ret) 711 if (ret)
715 return ret; 712 return ret;
716 } 713 }
@@ -718,7 +715,6 @@ static int palmas_smps_init(struct palmas *palmas, int id,
718 if (reg_init->roof_floor && (id != PALMAS_REG_SMPS10_OUT1) && 715 if (reg_init->roof_floor && (id != PALMAS_REG_SMPS10_OUT1) &&
719 (id != PALMAS_REG_SMPS10_OUT2)) { 716 (id != PALMAS_REG_SMPS10_OUT2)) {
720 /* Enable externally controlled regulator */ 717 /* Enable externally controlled regulator */
721 addr = ddata->palmas_regs_info[id].ctrl_addr;
722 ret = palmas_smps_read(palmas, addr, &reg); 718 ret = palmas_smps_read(palmas, addr, &reg);
723 if (ret < 0) 719 if (ret < 0)
724 return ret; 720 return ret;
@@ -740,10 +736,10 @@ static int palmas_ldo_init(struct palmas *palmas, int id,
740 unsigned int reg; 736 unsigned int reg;
741 unsigned int addr; 737 unsigned int addr;
742 int ret; 738 int ret;
743
744 struct palmas_pmic_driver_data *ddata = palmas->pmic_ddata; 739 struct palmas_pmic_driver_data *ddata = palmas->pmic_ddata;
740 struct palmas_regs_info *rinfo = &ddata->palmas_regs_info[id];
745 741
746 addr = ddata->palmas_regs_info[id].ctrl_addr; 742 addr = rinfo->ctrl_addr;
747 743
748 ret = palmas_ldo_read(palmas, addr, &reg); 744 ret = palmas_ldo_read(palmas, addr, &reg);
749 if (ret) 745 if (ret)
@@ -765,7 +761,6 @@ static int palmas_ldo_init(struct palmas *palmas, int id,
765 761
766 if (reg_init->roof_floor) { 762 if (reg_init->roof_floor) {
767 /* Enable externally controlled regulator */ 763 /* Enable externally controlled regulator */
768 addr = ddata->palmas_regs_info[id].ctrl_addr;
769 ret = palmas_update_bits(palmas, PALMAS_LDO_BASE, 764 ret = palmas_update_bits(palmas, PALMAS_LDO_BASE,
770 addr, PALMAS_LDO1_CTRL_MODE_ACTIVE, 765 addr, PALMAS_LDO1_CTRL_MODE_ACTIVE,
771 PALMAS_LDO1_CTRL_MODE_ACTIVE); 766 PALMAS_LDO1_CTRL_MODE_ACTIVE);
@@ -786,10 +781,10 @@ static int palmas_extreg_init(struct palmas *palmas, int id,
786 unsigned int addr; 781 unsigned int addr;
787 int ret; 782 int ret;
788 unsigned int val = 0; 783 unsigned int val = 0;
789
790 struct palmas_pmic_driver_data *ddata = palmas->pmic_ddata; 784 struct palmas_pmic_driver_data *ddata = palmas->pmic_ddata;
785 struct palmas_regs_info *rinfo = &ddata->palmas_regs_info[id];
791 786
792 addr = ddata->palmas_regs_info[id].ctrl_addr; 787 addr = rinfo->ctrl_addr;
793 788
794 if (reg_init->mode_sleep) 789 if (reg_init->mode_sleep)
795 val = PALMAS_REGEN1_CTRL_MODE_SLEEP; 790 val = PALMAS_REGEN1_CTRL_MODE_SLEEP;
@@ -804,7 +799,6 @@ static int palmas_extreg_init(struct palmas *palmas, int id,
804 799
805 if (reg_init->roof_floor) { 800 if (reg_init->roof_floor) {
806 /* Enable externally controlled regulator */ 801 /* Enable externally controlled regulator */
807 addr = ddata->palmas_regs_info[id].ctrl_addr;
808 ret = palmas_update_bits(palmas, PALMAS_RESOURCE_BASE, 802 ret = palmas_update_bits(palmas, PALMAS_RESOURCE_BASE,
809 addr, PALMAS_REGEN1_CTRL_MODE_ACTIVE, 803 addr, PALMAS_REGEN1_CTRL_MODE_ACTIVE,
810 PALMAS_REGEN1_CTRL_MODE_ACTIVE); 804 PALMAS_REGEN1_CTRL_MODE_ACTIVE);
@@ -824,10 +818,11 @@ static void palmas_enable_ldo8_track(struct palmas *palmas)
824 unsigned int reg; 818 unsigned int reg;
825 unsigned int addr; 819 unsigned int addr;
826 int ret; 820 int ret;
827
828 struct palmas_pmic_driver_data *ddata = palmas->pmic_ddata; 821 struct palmas_pmic_driver_data *ddata = palmas->pmic_ddata;
822 struct palmas_regs_info *rinfo;
829 823
830 addr = ddata->palmas_regs_info[PALMAS_REG_LDO8].ctrl_addr; 824 rinfo = &ddata->palmas_regs_info[PALMAS_REG_LDO8];
825 addr = rinfo->ctrl_addr;
831 826
832 ret = palmas_ldo_read(palmas, addr, &reg); 827 ret = palmas_ldo_read(palmas, addr, &reg);
833 if (ret) { 828 if (ret) {
@@ -846,7 +841,7 @@ static void palmas_enable_ldo8_track(struct palmas *palmas)
846 * output is defined by the LDO8_VOLTAGE.VSEL register divided by two, 841 * output is defined by the LDO8_VOLTAGE.VSEL register divided by two,
847 * and can be set from 0.45 to 1.65 V. 842 * and can be set from 0.45 to 1.65 V.
848 */ 843 */
849 addr = ddata->palmas_regs_info[PALMAS_REG_LDO8].vsel_addr; 844 addr = rinfo->vsel_addr;
850 ret = palmas_ldo_read(palmas, addr, &reg); 845 ret = palmas_ldo_read(palmas, addr, &reg);
851 if (ret) { 846 if (ret) {
852 dev_err(palmas->dev, "Error in reading ldo8 voltage reg\n"); 847 dev_err(palmas->dev, "Error in reading ldo8 voltage reg\n");
@@ -870,6 +865,7 @@ static int palmas_ldo_registration(struct palmas_pmic *pmic,
870 int id, ret; 865 int id, ret;
871 struct regulator_dev *rdev; 866 struct regulator_dev *rdev;
872 struct palmas_reg_init *reg_init; 867 struct palmas_reg_init *reg_init;
868 struct palmas_regs_info *rinfo;
873 869
874 for (id = ddata->ldo_begin; id < ddata->max_reg; id++) { 870 for (id = ddata->ldo_begin; id < ddata->max_reg; id++) {
875 if (pdata && pdata->reg_init[id]) 871 if (pdata && pdata->reg_init[id])
@@ -877,12 +873,13 @@ static int palmas_ldo_registration(struct palmas_pmic *pmic,
877 else 873 else
878 reg_init = NULL; 874 reg_init = NULL;
879 875
876 rinfo = &ddata->palmas_regs_info[id];
880 /* Miss out regulators which are not available due 877 /* Miss out regulators which are not available due
881 * to alternate functions. 878 * to alternate functions.
882 */ 879 */
883 880
884 /* Register the regulators */ 881 /* Register the regulators */
885 pmic->desc[id].name = ddata->palmas_regs_info[id].name; 882 pmic->desc[id].name = rinfo->name;
886 pmic->desc[id].id = id; 883 pmic->desc[id].id = id;
887 pmic->desc[id].type = REGULATOR_VOLTAGE; 884 pmic->desc[id].type = REGULATOR_VOLTAGE;
888 pmic->desc[id].owner = THIS_MODULE; 885 pmic->desc[id].owner = THIS_MODULE;
@@ -900,12 +897,12 @@ static int palmas_ldo_registration(struct palmas_pmic *pmic,
900 pmic->desc[id].enable_time = 500; 897 pmic->desc[id].enable_time = 500;
901 pmic->desc[id].vsel_reg = 898 pmic->desc[id].vsel_reg =
902 PALMAS_BASE_TO_REG(PALMAS_LDO_BASE, 899 PALMAS_BASE_TO_REG(PALMAS_LDO_BASE,
903 ddata->palmas_regs_info[id].vsel_addr); 900 rinfo->vsel_addr);
904 pmic->desc[id].vsel_mask = 901 pmic->desc[id].vsel_mask =
905 PALMAS_LDO1_VOLTAGE_VSEL_MASK; 902 PALMAS_LDO1_VOLTAGE_VSEL_MASK;
906 pmic->desc[id].enable_reg = 903 pmic->desc[id].enable_reg =
907 PALMAS_BASE_TO_REG(PALMAS_LDO_BASE, 904 PALMAS_BASE_TO_REG(PALMAS_LDO_BASE,
908 ddata->palmas_regs_info[id].ctrl_addr); 905 rinfo->ctrl_addr);
909 pmic->desc[id].enable_mask = 906 pmic->desc[id].enable_mask =
910 PALMAS_LDO1_CTRL_MODE_ACTIVE; 907 PALMAS_LDO1_CTRL_MODE_ACTIVE;
911 908
@@ -930,7 +927,7 @@ static int palmas_ldo_registration(struct palmas_pmic *pmic,
930 pmic->desc[id].ops = &palmas_ops_extreg; 927 pmic->desc[id].ops = &palmas_ops_extreg;
931 pmic->desc[id].enable_reg = 928 pmic->desc[id].enable_reg =
932 PALMAS_BASE_TO_REG(PALMAS_RESOURCE_BASE, 929 PALMAS_BASE_TO_REG(PALMAS_RESOURCE_BASE,
933 ddata->palmas_regs_info[id].ctrl_addr); 930 rinfo->ctrl_addr);
934 pmic->desc[id].enable_mask = 931 pmic->desc[id].enable_mask =
935 PALMAS_REGEN1_CTRL_MODE_ACTIVE; 932 PALMAS_REGEN1_CTRL_MODE_ACTIVE;
936 } 933 }
@@ -940,7 +937,7 @@ static int palmas_ldo_registration(struct palmas_pmic *pmic,
940 else 937 else
941 config.init_data = NULL; 938 config.init_data = NULL;
942 939
943 pmic->desc[id].supply_name = ddata->palmas_regs_info[id].sname; 940 pmic->desc[id].supply_name = rinfo->sname;
944 config.of_node = ddata->palmas_matches[id].of_node; 941 config.of_node = ddata->palmas_matches[id].of_node;
945 942
946 rdev = devm_regulator_register(pmic->dev, &pmic->desc[id], 943 rdev = devm_regulator_register(pmic->dev, &pmic->desc[id],
@@ -983,6 +980,7 @@ static int tps65917_ldo_registration(struct palmas_pmic *pmic,
983 int id, ret; 980 int id, ret;
984 struct regulator_dev *rdev; 981 struct regulator_dev *rdev;
985 struct palmas_reg_init *reg_init; 982 struct palmas_reg_init *reg_init;
983 struct palmas_regs_info *rinfo;
986 984
987 for (id = ddata->ldo_begin; id < ddata->max_reg; id++) { 985 for (id = ddata->ldo_begin; id < ddata->max_reg; id++) {
988 if (pdata && pdata->reg_init[id]) 986 if (pdata && pdata->reg_init[id])
@@ -993,9 +991,10 @@ static int tps65917_ldo_registration(struct palmas_pmic *pmic,
993 /* Miss out regulators which are not available due 991 /* Miss out regulators which are not available due
994 * to alternate functions. 992 * to alternate functions.
995 */ 993 */
994 rinfo = &ddata->palmas_regs_info[id];
996 995
997 /* Register the regulators */ 996 /* Register the regulators */
998 pmic->desc[id].name = ddata->palmas_regs_info[id].name; 997 pmic->desc[id].name = rinfo->name;
999 pmic->desc[id].id = id; 998 pmic->desc[id].id = id;
1000 pmic->desc[id].type = REGULATOR_VOLTAGE; 999 pmic->desc[id].type = REGULATOR_VOLTAGE;
1001 pmic->desc[id].owner = THIS_MODULE; 1000 pmic->desc[id].owner = THIS_MODULE;
@@ -1013,12 +1012,12 @@ static int tps65917_ldo_registration(struct palmas_pmic *pmic,
1013 pmic->desc[id].enable_time = 500; 1012 pmic->desc[id].enable_time = 500;
1014 pmic->desc[id].vsel_reg = 1013 pmic->desc[id].vsel_reg =
1015 PALMAS_BASE_TO_REG(PALMAS_LDO_BASE, 1014 PALMAS_BASE_TO_REG(PALMAS_LDO_BASE,
1016 ddata->palmas_regs_info[id].vsel_addr); 1015 rinfo->vsel_addr);
1017 pmic->desc[id].vsel_mask = 1016 pmic->desc[id].vsel_mask =
1018 PALMAS_LDO1_VOLTAGE_VSEL_MASK; 1017 PALMAS_LDO1_VOLTAGE_VSEL_MASK;
1019 pmic->desc[id].enable_reg = 1018 pmic->desc[id].enable_reg =
1020 PALMAS_BASE_TO_REG(PALMAS_LDO_BASE, 1019 PALMAS_BASE_TO_REG(PALMAS_LDO_BASE,
1021 ddata->palmas_regs_info[id].ctrl_addr); 1020 rinfo->ctrl_addr);
1022 pmic->desc[id].enable_mask = 1021 pmic->desc[id].enable_mask =
1023 PALMAS_LDO1_CTRL_MODE_ACTIVE; 1022 PALMAS_LDO1_CTRL_MODE_ACTIVE;
1024 /* 1023 /*
@@ -1035,7 +1034,7 @@ static int tps65917_ldo_registration(struct palmas_pmic *pmic,
1035 pmic->desc[id].ops = &palmas_ops_extreg; 1034 pmic->desc[id].ops = &palmas_ops_extreg;
1036 pmic->desc[id].enable_reg = 1035 pmic->desc[id].enable_reg =
1037 PALMAS_BASE_TO_REG(PALMAS_RESOURCE_BASE, 1036 PALMAS_BASE_TO_REG(PALMAS_RESOURCE_BASE,
1038 ddata->palmas_regs_info[id].ctrl_addr); 1037 rinfo->ctrl_addr);
1039 pmic->desc[id].enable_mask = 1038 pmic->desc[id].enable_mask =
1040 PALMAS_REGEN1_CTRL_MODE_ACTIVE; 1039 PALMAS_REGEN1_CTRL_MODE_ACTIVE;
1041 } 1040 }
@@ -1045,7 +1044,7 @@ static int tps65917_ldo_registration(struct palmas_pmic *pmic,
1045 else 1044 else
1046 config.init_data = NULL; 1045 config.init_data = NULL;
1047 1046
1048 pmic->desc[id].supply_name = ddata->palmas_regs_info[id].sname; 1047 pmic->desc[id].supply_name = rinfo->sname;
1049 config.of_node = ddata->palmas_matches[id].of_node; 1048 config.of_node = ddata->palmas_matches[id].of_node;
1050 1049
1051 rdev = devm_regulator_register(pmic->dev, &pmic->desc[id], 1050 rdev = devm_regulator_register(pmic->dev, &pmic->desc[id],
@@ -1089,6 +1088,7 @@ static int palmas_smps_registration(struct palmas_pmic *pmic,
1089 unsigned int addr, reg; 1088 unsigned int addr, reg;
1090 struct regulator_dev *rdev; 1089 struct regulator_dev *rdev;
1091 struct palmas_reg_init *reg_init; 1090 struct palmas_reg_init *reg_init;
1091 struct palmas_regs_info *rinfo;
1092 1092
1093 for (id = ddata->smps_start; id <= ddata->smps_end; id++) { 1093 for (id = ddata->smps_start; id <= ddata->smps_end; id++) {
1094 bool ramp_delay_support = false; 1094 bool ramp_delay_support = false;
@@ -1127,12 +1127,13 @@ static int palmas_smps_registration(struct palmas_pmic *pmic,
1127 if (!PALMAS_PMIC_HAS(pmic->palmas, SMPS10_BOOST)) 1127 if (!PALMAS_PMIC_HAS(pmic->palmas, SMPS10_BOOST))
1128 continue; 1128 continue;
1129 } 1129 }
1130 rinfo = &ddata->palmas_regs_info[id];
1130 1131
1131 if ((id == PALMAS_REG_SMPS6) || (id == PALMAS_REG_SMPS8)) 1132 if ((id == PALMAS_REG_SMPS6) || (id == PALMAS_REG_SMPS8))
1132 ramp_delay_support = true; 1133 ramp_delay_support = true;
1133 1134
1134 if (ramp_delay_support) { 1135 if (ramp_delay_support) {
1135 addr = ddata->palmas_regs_info[id].tstep_addr; 1136 addr = rinfo->tstep_addr;
1136 ret = palmas_smps_read(pmic->palmas, addr, &reg); 1137 ret = palmas_smps_read(pmic->palmas, addr, &reg);
1137 if (ret < 0) { 1138 if (ret < 0) {
1138 dev_err(pmic->dev, 1139 dev_err(pmic->dev,
@@ -1155,7 +1156,7 @@ static int palmas_smps_registration(struct palmas_pmic *pmic,
1155 } 1156 }
1156 1157
1157 /* Register the regulators */ 1158 /* Register the regulators */
1158 pmic->desc[id].name = ddata->palmas_regs_info[id].name; 1159 pmic->desc[id].name = rinfo->name;
1159 pmic->desc[id].id = id; 1160 pmic->desc[id].id = id;
1160 1161
1161 switch (id) { 1162 switch (id) {
@@ -1188,7 +1189,7 @@ static int palmas_smps_registration(struct palmas_pmic *pmic,
1188 * otherwise we error in probe with unsupportable 1189 * otherwise we error in probe with unsupportable
1189 * ranges. Read the current smps mode for later use. 1190 * ranges. Read the current smps mode for later use.
1190 */ 1191 */
1191 addr = palmas_regs_info[id].vsel_addr; 1192 addr = rinfo->vsel_addr;
1192 pmic->desc[id].n_linear_ranges = 3; 1193 pmic->desc[id].n_linear_ranges = 3;
1193 1194
1194 ret = palmas_smps_read(pmic->palmas, addr, &reg); 1195 ret = palmas_smps_read(pmic->palmas, addr, &reg);
@@ -1209,12 +1210,12 @@ static int palmas_smps_registration(struct palmas_pmic *pmic,
1209 pmic->desc[id].n_voltages = PALMAS_SMPS_NUM_VOLTAGES; 1210 pmic->desc[id].n_voltages = PALMAS_SMPS_NUM_VOLTAGES;
1210 pmic->desc[id].vsel_reg = 1211 pmic->desc[id].vsel_reg =
1211 PALMAS_BASE_TO_REG(PALMAS_SMPS_BASE, 1212 PALMAS_BASE_TO_REG(PALMAS_SMPS_BASE,
1212 palmas_regs_info[id].vsel_addr); 1213 rinfo->vsel_addr);
1213 pmic->desc[id].vsel_mask = 1214 pmic->desc[id].vsel_mask =
1214 PALMAS_SMPS12_VOLTAGE_VSEL_MASK; 1215 PALMAS_SMPS12_VOLTAGE_VSEL_MASK;
1215 1216
1216 /* Read the smps mode for later use. */ 1217 /* Read the smps mode for later use. */
1217 addr = palmas_regs_info[id].ctrl_addr; 1218 addr = rinfo->ctrl_addr;
1218 ret = palmas_smps_read(pmic->palmas, addr, &reg); 1219 ret = palmas_smps_read(pmic->palmas, addr, &reg);
1219 if (ret) 1220 if (ret)
1220 return ret; 1221 return ret;
@@ -1223,7 +1224,7 @@ static int palmas_smps_registration(struct palmas_pmic *pmic,
1223 1224
1224 pmic->desc[id].enable_reg = 1225 pmic->desc[id].enable_reg =
1225 PALMAS_BASE_TO_REG(PALMAS_SMPS_BASE, 1226 PALMAS_BASE_TO_REG(PALMAS_SMPS_BASE,
1226 palmas_regs_info[id].ctrl_addr); 1227 rinfo->ctrl_addr);
1227 pmic->desc[id].enable_mask = 1228 pmic->desc[id].enable_mask =
1228 PALMAS_SMPS12_CTRL_MODE_ACTIVE_MASK; 1229 PALMAS_SMPS12_CTRL_MODE_ACTIVE_MASK;
1229 /* set_mode overrides this value */ 1230 /* set_mode overrides this value */
@@ -1238,7 +1239,7 @@ static int palmas_smps_registration(struct palmas_pmic *pmic,
1238 else 1239 else
1239 config.init_data = NULL; 1240 config.init_data = NULL;
1240 1241
1241 pmic->desc[id].supply_name = ddata->palmas_regs_info[id].sname; 1242 pmic->desc[id].supply_name = rinfo->sname;
1242 config.of_node = ddata->palmas_matches[id].of_node; 1243 config.of_node = ddata->palmas_matches[id].of_node;
1243 1244
1244 rdev = devm_regulator_register(pmic->dev, &pmic->desc[id], 1245 rdev = devm_regulator_register(pmic->dev, &pmic->desc[id],
@@ -1267,6 +1268,7 @@ static int tps65917_smps_registration(struct palmas_pmic *pmic,
1267 unsigned int addr, reg; 1268 unsigned int addr, reg;
1268 struct regulator_dev *rdev; 1269 struct regulator_dev *rdev;
1269 struct palmas_reg_init *reg_init; 1270 struct palmas_reg_init *reg_init;
1271 struct palmas_regs_info *rinfo;
1270 1272
1271 for (id = ddata->smps_start; id <= ddata->smps_end; id++) { 1273 for (id = ddata->smps_start; id <= ddata->smps_end; id++) {
1272 /* 1274 /*
@@ -1286,9 +1288,10 @@ static int tps65917_smps_registration(struct palmas_pmic *pmic,
1286 } else { 1288 } else {
1287 reg_init = NULL; 1289 reg_init = NULL;
1288 } 1290 }
1291 rinfo = &ddata->palmas_regs_info[id];
1289 1292
1290 /* Register the regulators */ 1293 /* Register the regulators */
1291 pmic->desc[id].name = ddata->palmas_regs_info[id].name; 1294 pmic->desc[id].name = rinfo->name;
1292 pmic->desc[id].id = id; 1295 pmic->desc[id].id = id;
1293 1296
1294 /* 1297 /*
@@ -1297,7 +1300,7 @@ static int tps65917_smps_registration(struct palmas_pmic *pmic,
1297 * otherwise we error in probe with unsupportable 1300 * otherwise we error in probe with unsupportable
1298 * ranges. Read the current smps mode for later use. 1301 * ranges. Read the current smps mode for later use.
1299 */ 1302 */
1300 addr = ddata->palmas_regs_info[id].vsel_addr; 1303 addr = rinfo->vsel_addr;
1301 1304
1302 ret = palmas_smps_read(pmic->palmas, addr, &reg); 1305 ret = palmas_smps_read(pmic->palmas, addr, &reg);
1303 if (ret) 1306 if (ret)
@@ -1319,14 +1322,14 @@ static int tps65917_smps_registration(struct palmas_pmic *pmic,
1319 pmic->desc[id].n_voltages = PALMAS_SMPS_NUM_VOLTAGES; 1322 pmic->desc[id].n_voltages = PALMAS_SMPS_NUM_VOLTAGES;
1320 pmic->desc[id].vsel_reg = 1323 pmic->desc[id].vsel_reg =
1321 PALMAS_BASE_TO_REG(PALMAS_SMPS_BASE, 1324 PALMAS_BASE_TO_REG(PALMAS_SMPS_BASE,
1322 tps65917_regs_info[id].vsel_addr); 1325 rinfo->vsel_addr);
1323 pmic->desc[id].vsel_mask = 1326 pmic->desc[id].vsel_mask =
1324 PALMAS_SMPS12_VOLTAGE_VSEL_MASK; 1327 PALMAS_SMPS12_VOLTAGE_VSEL_MASK;
1325 1328
1326 pmic->desc[id].ramp_delay = 2500; 1329 pmic->desc[id].ramp_delay = 2500;
1327 1330
1328 /* Read the smps mode for later use. */ 1331 /* Read the smps mode for later use. */
1329 addr = ddata->palmas_regs_info[id].ctrl_addr; 1332 addr = rinfo->ctrl_addr;
1330 ret = palmas_smps_read(pmic->palmas, addr, &reg); 1333 ret = palmas_smps_read(pmic->palmas, addr, &reg);
1331 if (ret) 1334 if (ret)
1332 return ret; 1335 return ret;
@@ -1341,7 +1344,7 @@ static int tps65917_smps_registration(struct palmas_pmic *pmic,
1341 else 1344 else
1342 config.init_data = NULL; 1345 config.init_data = NULL;
1343 1346
1344 pmic->desc[id].supply_name = ddata->palmas_regs_info[id].sname; 1347 pmic->desc[id].supply_name = rinfo->sname;
1345 config.of_node = ddata->palmas_matches[id].of_node; 1348 config.of_node = ddata->palmas_matches[id].of_node;
1346 1349
1347 rdev = devm_regulator_register(pmic->dev, &pmic->desc[id], 1350 rdev = devm_regulator_register(pmic->dev, &pmic->desc[id],