Skip to content

Commit 2755646

Browse files
committed
Merge remote-tracking branch 'regulator/topic/qcom_spmi' into regulator-next
2 parents 73d8003 + 9d48533 commit 2755646

File tree

1 file changed

+31
-53
lines changed

1 file changed

+31
-53
lines changed

drivers/regulator/qcom_spmi-regulator.c

Lines changed: 31 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -486,24 +486,6 @@ static int spmi_vreg_update_bits(struct spmi_regulator *vreg, u16 addr, u8 val,
486486
return regmap_update_bits(vreg->regmap, vreg->base + addr, mask, val);
487487
}
488488

489-
static int spmi_regulator_common_is_enabled(struct regulator_dev *rdev)
490-
{
491-
struct spmi_regulator *vreg = rdev_get_drvdata(rdev);
492-
u8 reg;
493-
494-
spmi_vreg_read(vreg, SPMI_COMMON_REG_ENABLE, &reg, 1);
495-
496-
return (reg & SPMI_COMMON_ENABLE_MASK) == SPMI_COMMON_ENABLE;
497-
}
498-
499-
static int spmi_regulator_common_enable(struct regulator_dev *rdev)
500-
{
501-
struct spmi_regulator *vreg = rdev_get_drvdata(rdev);
502-
503-
return spmi_vreg_update_bits(vreg, SPMI_COMMON_REG_ENABLE,
504-
SPMI_COMMON_ENABLE, SPMI_COMMON_ENABLE_MASK);
505-
}
506-
507489
static int spmi_regulator_vs_enable(struct regulator_dev *rdev)
508490
{
509491
struct spmi_regulator *vreg = rdev_get_drvdata(rdev);
@@ -513,7 +495,7 @@ static int spmi_regulator_vs_enable(struct regulator_dev *rdev)
513495
vreg->vs_enable_time = ktime_get();
514496
}
515497

516-
return spmi_regulator_common_enable(rdev);
498+
return regulator_enable_regmap(rdev);
517499
}
518500

519501
static int spmi_regulator_vs_ocp(struct regulator_dev *rdev)
@@ -524,14 +506,6 @@ static int spmi_regulator_vs_ocp(struct regulator_dev *rdev)
524506
return spmi_vreg_write(vreg, SPMI_VS_REG_OCP, &reg, 1);
525507
}
526508

527-
static int spmi_regulator_common_disable(struct regulator_dev *rdev)
528-
{
529-
struct spmi_regulator *vreg = rdev_get_drvdata(rdev);
530-
531-
return spmi_vreg_update_bits(vreg, SPMI_COMMON_REG_ENABLE,
532-
SPMI_COMMON_DISABLE, SPMI_COMMON_ENABLE_MASK);
533-
}
534-
535509
static int spmi_regulator_select_voltage(struct spmi_regulator *vreg,
536510
int min_uV, int max_uV)
537511
{
@@ -1062,9 +1036,9 @@ static irqreturn_t spmi_regulator_vs_ocp_isr(int irq, void *data)
10621036
}
10631037

10641038
static struct regulator_ops spmi_smps_ops = {
1065-
.enable = spmi_regulator_common_enable,
1066-
.disable = spmi_regulator_common_disable,
1067-
.is_enabled = spmi_regulator_common_is_enabled,
1039+
.enable = regulator_enable_regmap,
1040+
.disable = regulator_disable_regmap,
1041+
.is_enabled = regulator_is_enabled_regmap,
10681042
.set_voltage_sel = spmi_regulator_common_set_voltage,
10691043
.set_voltage_time_sel = spmi_regulator_set_voltage_time_sel,
10701044
.get_voltage_sel = spmi_regulator_common_get_voltage,
@@ -1077,9 +1051,9 @@ static struct regulator_ops spmi_smps_ops = {
10771051
};
10781052

10791053
static struct regulator_ops spmi_ldo_ops = {
1080-
.enable = spmi_regulator_common_enable,
1081-
.disable = spmi_regulator_common_disable,
1082-
.is_enabled = spmi_regulator_common_is_enabled,
1054+
.enable = regulator_enable_regmap,
1055+
.disable = regulator_disable_regmap,
1056+
.is_enabled = regulator_is_enabled_regmap,
10831057
.set_voltage_sel = spmi_regulator_common_set_voltage,
10841058
.get_voltage_sel = spmi_regulator_common_get_voltage,
10851059
.map_voltage = spmi_regulator_common_map_voltage,
@@ -1094,9 +1068,9 @@ static struct regulator_ops spmi_ldo_ops = {
10941068
};
10951069

10961070
static struct regulator_ops spmi_ln_ldo_ops = {
1097-
.enable = spmi_regulator_common_enable,
1098-
.disable = spmi_regulator_common_disable,
1099-
.is_enabled = spmi_regulator_common_is_enabled,
1071+
.enable = regulator_enable_regmap,
1072+
.disable = regulator_disable_regmap,
1073+
.is_enabled = regulator_is_enabled_regmap,
11001074
.set_voltage_sel = spmi_regulator_common_set_voltage,
11011075
.get_voltage_sel = spmi_regulator_common_get_voltage,
11021076
.map_voltage = spmi_regulator_common_map_voltage,
@@ -1107,8 +1081,8 @@ static struct regulator_ops spmi_ln_ldo_ops = {
11071081

11081082
static struct regulator_ops spmi_vs_ops = {
11091083
.enable = spmi_regulator_vs_enable,
1110-
.disable = spmi_regulator_common_disable,
1111-
.is_enabled = spmi_regulator_common_is_enabled,
1084+
.disable = regulator_disable_regmap,
1085+
.is_enabled = regulator_is_enabled_regmap,
11121086
.set_pull_down = spmi_regulator_common_set_pull_down,
11131087
.set_soft_start = spmi_regulator_common_set_soft_start,
11141088
.set_over_current_protection = spmi_regulator_vs_ocp,
@@ -1117,9 +1091,9 @@ static struct regulator_ops spmi_vs_ops = {
11171091
};
11181092

11191093
static struct regulator_ops spmi_boost_ops = {
1120-
.enable = spmi_regulator_common_enable,
1121-
.disable = spmi_regulator_common_disable,
1122-
.is_enabled = spmi_regulator_common_is_enabled,
1094+
.enable = regulator_enable_regmap,
1095+
.disable = regulator_disable_regmap,
1096+
.is_enabled = regulator_is_enabled_regmap,
11231097
.set_voltage_sel = spmi_regulator_single_range_set_voltage,
11241098
.get_voltage_sel = spmi_regulator_single_range_get_voltage,
11251099
.map_voltage = spmi_regulator_single_map_voltage,
@@ -1128,9 +1102,9 @@ static struct regulator_ops spmi_boost_ops = {
11281102
};
11291103

11301104
static struct regulator_ops spmi_ftsmps_ops = {
1131-
.enable = spmi_regulator_common_enable,
1132-
.disable = spmi_regulator_common_disable,
1133-
.is_enabled = spmi_regulator_common_is_enabled,
1105+
.enable = regulator_enable_regmap,
1106+
.disable = regulator_disable_regmap,
1107+
.is_enabled = regulator_is_enabled_regmap,
11341108
.set_voltage_sel = spmi_regulator_common_set_voltage,
11351109
.set_voltage_time_sel = spmi_regulator_set_voltage_time_sel,
11361110
.get_voltage_sel = spmi_regulator_common_get_voltage,
@@ -1143,9 +1117,9 @@ static struct regulator_ops spmi_ftsmps_ops = {
11431117
};
11441118

11451119
static struct regulator_ops spmi_ult_lo_smps_ops = {
1146-
.enable = spmi_regulator_common_enable,
1147-
.disable = spmi_regulator_common_disable,
1148-
.is_enabled = spmi_regulator_common_is_enabled,
1120+
.enable = regulator_enable_regmap,
1121+
.disable = regulator_disable_regmap,
1122+
.is_enabled = regulator_is_enabled_regmap,
11491123
.set_voltage_sel = spmi_regulator_ult_lo_smps_set_voltage,
11501124
.set_voltage_time_sel = spmi_regulator_set_voltage_time_sel,
11511125
.get_voltage_sel = spmi_regulator_ult_lo_smps_get_voltage,
@@ -1157,9 +1131,9 @@ static struct regulator_ops spmi_ult_lo_smps_ops = {
11571131
};
11581132

11591133
static struct regulator_ops spmi_ult_ho_smps_ops = {
1160-
.enable = spmi_regulator_common_enable,
1161-
.disable = spmi_regulator_common_disable,
1162-
.is_enabled = spmi_regulator_common_is_enabled,
1134+
.enable = regulator_enable_regmap,
1135+
.disable = regulator_disable_regmap,
1136+
.is_enabled = regulator_is_enabled_regmap,
11631137
.set_voltage_sel = spmi_regulator_single_range_set_voltage,
11641138
.set_voltage_time_sel = spmi_regulator_set_voltage_time_sel,
11651139
.get_voltage_sel = spmi_regulator_single_range_get_voltage,
@@ -1172,9 +1146,9 @@ static struct regulator_ops spmi_ult_ho_smps_ops = {
11721146
};
11731147

11741148
static struct regulator_ops spmi_ult_ldo_ops = {
1175-
.enable = spmi_regulator_common_enable,
1176-
.disable = spmi_regulator_common_disable,
1177-
.is_enabled = spmi_regulator_common_is_enabled,
1149+
.enable = regulator_enable_regmap,
1150+
.disable = regulator_disable_regmap,
1151+
.is_enabled = regulator_is_enabled_regmap,
11781152
.set_voltage_sel = spmi_regulator_single_range_set_voltage,
11791153
.get_voltage_sel = spmi_regulator_single_range_get_voltage,
11801154
.map_voltage = spmi_regulator_single_map_voltage,
@@ -1711,6 +1685,9 @@ static int qcom_spmi_regulator_probe(struct platform_device *pdev)
17111685
vreg->desc.id = -1;
17121686
vreg->desc.owner = THIS_MODULE;
17131687
vreg->desc.type = REGULATOR_VOLTAGE;
1688+
vreg->desc.enable_reg = reg->base + SPMI_COMMON_REG_ENABLE;
1689+
vreg->desc.enable_mask = SPMI_COMMON_ENABLE_MASK;
1690+
vreg->desc.enable_val = SPMI_COMMON_ENABLE;
17141691
vreg->desc.name = name = reg->name;
17151692
vreg->desc.supply_name = reg->supply;
17161693
vreg->desc.of_match = reg->name;
@@ -1723,6 +1700,7 @@ static int qcom_spmi_regulator_probe(struct platform_device *pdev)
17231700

17241701
config.dev = dev;
17251702
config.driver_data = vreg;
1703+
config.regmap = regmap;
17261704
rdev = devm_regulator_register(dev, &vreg->desc, &config);
17271705
if (IS_ERR(rdev)) {
17281706
dev_err(dev, "failed to register %s\n", name);

0 commit comments

Comments
 (0)