Skip to content

Commit d83ec4a

Browse files
committed
Merge tag 'regulator-fix-v6.13-merge-window' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator
Pull regulator fixes from Mark Brown: "A couple of fixes that came in during the merge window, plus documetation of a new device ID for the Qualcomm LABIBB driver. There's a core fix for the rarely used current constraints and a fix for the Qualcomm RPMH driver which had described only one of the two voltage ranges that the hardware could control, creating a potential incompatibility with the configuration left by firmware" * tag 'regulator-fix-v6.13-merge-window' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator: regulator: core: Ignore unset max_uA constraints in current limit check dt-bindings: regulator: qcom-labibb-regulator: document the pmi8950 labibb regulator regulator: qcom-rpmh: Update ranges for FTSMPS525
2 parents 448ecd5 + 351f2bf commit d83ec4a

File tree

3 files changed

+44
-49
lines changed

3 files changed

+44
-49
lines changed

Documentation/devicetree/bindings/regulator/qcom-labibb-regulator.yaml

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,12 @@ description:
1616

1717
properties:
1818
compatible:
19-
const: qcom,pmi8998-lab-ibb
19+
oneOf:
20+
- const: qcom,pmi8998-lab-ibb
21+
- items:
22+
- enum:
23+
- qcom,pmi8950-lab-ibb
24+
- const: qcom,pmi8998-lab-ibb
2025

2126
lab:
2227
type: object

drivers/regulator/core.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -497,7 +497,8 @@ static int regulator_check_current_limit(struct regulator_dev *rdev,
497497
return -EPERM;
498498
}
499499

500-
if (*max_uA > rdev->constraints->max_uA)
500+
if (*max_uA > rdev->constraints->max_uA &&
501+
rdev->constraints->max_uA)
501502
*max_uA = rdev->constraints->max_uA;
502503
if (*min_uA < rdev->constraints->min_uA)
503504
*min_uA = rdev->constraints->min_uA;

drivers/regulator/qcom-rpmh-regulator.c

Lines changed: 36 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -843,26 +843,15 @@ static const struct rpmh_vreg_hw_data pmic5_ftsmps520 = {
843843
.of_map_mode = rpmh_regulator_pmic4_smps_of_map_mode,
844844
};
845845

846-
static const struct rpmh_vreg_hw_data pmic5_ftsmps525_lv = {
846+
static const struct rpmh_vreg_hw_data pmic5_ftsmps525 = {
847847
.regulator_type = VRM,
848848
.ops = &rpmh_regulator_vrm_ops,
849849
.voltage_ranges = (struct linear_range[]) {
850850
REGULATOR_LINEAR_RANGE(300000, 0, 267, 4000),
851+
REGULATOR_LINEAR_RANGE(1376000, 268, 438, 8000),
851852
},
852-
.n_linear_ranges = 1,
853-
.n_voltages = 268,
854-
.pmic_mode_map = pmic_mode_map_pmic5_smps,
855-
.of_map_mode = rpmh_regulator_pmic4_smps_of_map_mode,
856-
};
857-
858-
static const struct rpmh_vreg_hw_data pmic5_ftsmps525_mv = {
859-
.regulator_type = VRM,
860-
.ops = &rpmh_regulator_vrm_ops,
861-
.voltage_ranges = (struct linear_range[]) {
862-
REGULATOR_LINEAR_RANGE(600000, 0, 267, 8000),
863-
},
864-
.n_linear_ranges = 1,
865-
.n_voltages = 268,
853+
.n_linear_ranges = 2,
854+
.n_voltages = 439,
866855
.pmic_mode_map = pmic_mode_map_pmic5_smps,
867856
.of_map_mode = rpmh_regulator_pmic4_smps_of_map_mode,
868857
};
@@ -1190,42 +1179,42 @@ static const struct rpmh_vreg_init_data pm8550_vreg_data[] = {
11901179
};
11911180

11921181
static const struct rpmh_vreg_init_data pm8550vs_vreg_data[] = {
1193-
RPMH_VREG("smps1", "smp%s1", &pmic5_ftsmps525_lv, "vdd-s1"),
1194-
RPMH_VREG("smps2", "smp%s2", &pmic5_ftsmps525_lv, "vdd-s2"),
1195-
RPMH_VREG("smps3", "smp%s3", &pmic5_ftsmps525_lv, "vdd-s3"),
1196-
RPMH_VREG("smps4", "smp%s4", &pmic5_ftsmps525_lv, "vdd-s4"),
1197-
RPMH_VREG("smps5", "smp%s5", &pmic5_ftsmps525_lv, "vdd-s5"),
1198-
RPMH_VREG("smps6", "smp%s6", &pmic5_ftsmps525_mv, "vdd-s6"),
1182+
RPMH_VREG("smps1", "smp%s1", &pmic5_ftsmps525, "vdd-s1"),
1183+
RPMH_VREG("smps2", "smp%s2", &pmic5_ftsmps525, "vdd-s2"),
1184+
RPMH_VREG("smps3", "smp%s3", &pmic5_ftsmps525, "vdd-s3"),
1185+
RPMH_VREG("smps4", "smp%s4", &pmic5_ftsmps525, "vdd-s4"),
1186+
RPMH_VREG("smps5", "smp%s5", &pmic5_ftsmps525, "vdd-s5"),
1187+
RPMH_VREG("smps6", "smp%s6", &pmic5_ftsmps525, "vdd-s6"),
11991188
RPMH_VREG("ldo1", "ldo%s1", &pmic5_nldo515, "vdd-l1"),
12001189
RPMH_VREG("ldo2", "ldo%s2", &pmic5_nldo515, "vdd-l2"),
12011190
RPMH_VREG("ldo3", "ldo%s3", &pmic5_nldo515, "vdd-l3"),
12021191
{}
12031192
};
12041193

12051194
static const struct rpmh_vreg_init_data pm8550ve_vreg_data[] = {
1206-
RPMH_VREG("smps1", "smp%s1", &pmic5_ftsmps525_lv, "vdd-s1"),
1207-
RPMH_VREG("smps2", "smp%s2", &pmic5_ftsmps525_lv, "vdd-s2"),
1208-
RPMH_VREG("smps3", "smp%s3", &pmic5_ftsmps525_lv, "vdd-s3"),
1209-
RPMH_VREG("smps4", "smp%s4", &pmic5_ftsmps525_mv, "vdd-s4"),
1210-
RPMH_VREG("smps5", "smp%s5", &pmic5_ftsmps525_lv, "vdd-s5"),
1211-
RPMH_VREG("smps6", "smp%s6", &pmic5_ftsmps525_lv, "vdd-s6"),
1212-
RPMH_VREG("smps7", "smp%s7", &pmic5_ftsmps525_lv, "vdd-s7"),
1213-
RPMH_VREG("smps8", "smp%s8", &pmic5_ftsmps525_lv, "vdd-s8"),
1195+
RPMH_VREG("smps1", "smp%s1", &pmic5_ftsmps525, "vdd-s1"),
1196+
RPMH_VREG("smps2", "smp%s2", &pmic5_ftsmps525, "vdd-s2"),
1197+
RPMH_VREG("smps3", "smp%s3", &pmic5_ftsmps525, "vdd-s3"),
1198+
RPMH_VREG("smps4", "smp%s4", &pmic5_ftsmps525, "vdd-s4"),
1199+
RPMH_VREG("smps5", "smp%s5", &pmic5_ftsmps525, "vdd-s5"),
1200+
RPMH_VREG("smps6", "smp%s6", &pmic5_ftsmps525, "vdd-s6"),
1201+
RPMH_VREG("smps7", "smp%s7", &pmic5_ftsmps525, "vdd-s7"),
1202+
RPMH_VREG("smps8", "smp%s8", &pmic5_ftsmps525, "vdd-s8"),
12141203
RPMH_VREG("ldo1", "ldo%s1", &pmic5_nldo515, "vdd-l1"),
12151204
RPMH_VREG("ldo2", "ldo%s2", &pmic5_nldo515, "vdd-l2"),
12161205
RPMH_VREG("ldo3", "ldo%s3", &pmic5_nldo515, "vdd-l3"),
12171206
{}
12181207
};
12191208

12201209
static const struct rpmh_vreg_init_data pmc8380_vreg_data[] = {
1221-
RPMH_VREG("smps1", "smp%s1", &pmic5_ftsmps525_lv, "vdd-s1"),
1222-
RPMH_VREG("smps2", "smp%s2", &pmic5_ftsmps525_lv, "vdd-s2"),
1223-
RPMH_VREG("smps3", "smp%s3", &pmic5_ftsmps525_lv, "vdd-s3"),
1224-
RPMH_VREG("smps4", "smp%s4", &pmic5_ftsmps525_mv, "vdd-s4"),
1225-
RPMH_VREG("smps5", "smp%s5", &pmic5_ftsmps525_lv, "vdd-s5"),
1226-
RPMH_VREG("smps6", "smp%s6", &pmic5_ftsmps525_lv, "vdd-s6"),
1227-
RPMH_VREG("smps7", "smp%s7", &pmic5_ftsmps525_lv, "vdd-s7"),
1228-
RPMH_VREG("smps8", "smp%s8", &pmic5_ftsmps525_lv, "vdd-s8"),
1210+
RPMH_VREG("smps1", "smp%s1", &pmic5_ftsmps525, "vdd-s1"),
1211+
RPMH_VREG("smps2", "smp%s2", &pmic5_ftsmps525, "vdd-s2"),
1212+
RPMH_VREG("smps3", "smp%s3", &pmic5_ftsmps525, "vdd-s3"),
1213+
RPMH_VREG("smps4", "smp%s4", &pmic5_ftsmps525, "vdd-s4"),
1214+
RPMH_VREG("smps5", "smp%s5", &pmic5_ftsmps525, "vdd-s5"),
1215+
RPMH_VREG("smps6", "smp%s6", &pmic5_ftsmps525, "vdd-s6"),
1216+
RPMH_VREG("smps7", "smp%s7", &pmic5_ftsmps525, "vdd-s7"),
1217+
RPMH_VREG("smps8", "smp%s8", &pmic5_ftsmps525, "vdd-s8"),
12291218
RPMH_VREG("ldo1", "ldo%s1", &pmic5_nldo515, "vdd-l1"),
12301219
RPMH_VREG("ldo2", "ldo%s2", &pmic5_nldo515, "vdd-l2"),
12311220
RPMH_VREG("ldo3", "ldo%s3", &pmic5_nldo515, "vdd-l3"),
@@ -1409,16 +1398,16 @@ static const struct rpmh_vreg_init_data pmx65_vreg_data[] = {
14091398
};
14101399

14111400
static const struct rpmh_vreg_init_data pmx75_vreg_data[] = {
1412-
RPMH_VREG("smps1", "smp%s1", &pmic5_ftsmps525_lv, "vdd-s1"),
1413-
RPMH_VREG("smps2", "smp%s2", &pmic5_ftsmps525_lv, "vdd-s2"),
1414-
RPMH_VREG("smps3", "smp%s3", &pmic5_ftsmps525_lv, "vdd-s3"),
1415-
RPMH_VREG("smps4", "smp%s4", &pmic5_ftsmps525_mv, "vdd-s4"),
1416-
RPMH_VREG("smps5", "smp%s5", &pmic5_ftsmps525_lv, "vdd-s5"),
1417-
RPMH_VREG("smps6", "smp%s6", &pmic5_ftsmps525_lv, "vdd-s6"),
1418-
RPMH_VREG("smps7", "smp%s7", &pmic5_ftsmps525_lv, "vdd-s7"),
1419-
RPMH_VREG("smps8", "smp%s8", &pmic5_ftsmps525_lv, "vdd-s8"),
1420-
RPMH_VREG("smps9", "smp%s9", &pmic5_ftsmps525_lv, "vdd-s9"),
1421-
RPMH_VREG("smps10", "smp%s10", &pmic5_ftsmps525_lv, "vdd-s10"),
1401+
RPMH_VREG("smps1", "smp%s1", &pmic5_ftsmps525, "vdd-s1"),
1402+
RPMH_VREG("smps2", "smp%s2", &pmic5_ftsmps525, "vdd-s2"),
1403+
RPMH_VREG("smps3", "smp%s3", &pmic5_ftsmps525, "vdd-s3"),
1404+
RPMH_VREG("smps4", "smp%s4", &pmic5_ftsmps525, "vdd-s4"),
1405+
RPMH_VREG("smps5", "smp%s5", &pmic5_ftsmps525, "vdd-s5"),
1406+
RPMH_VREG("smps6", "smp%s6", &pmic5_ftsmps525, "vdd-s6"),
1407+
RPMH_VREG("smps7", "smp%s7", &pmic5_ftsmps525, "vdd-s7"),
1408+
RPMH_VREG("smps8", "smp%s8", &pmic5_ftsmps525, "vdd-s8"),
1409+
RPMH_VREG("smps9", "smp%s9", &pmic5_ftsmps525, "vdd-s9"),
1410+
RPMH_VREG("smps10", "smp%s10", &pmic5_ftsmps525, "vdd-s10"),
14221411
RPMH_VREG("ldo1", "ldo%s1", &pmic5_nldo515, "vdd-l1"),
14231412
RPMH_VREG("ldo2", "ldo%s2", &pmic5_nldo515, "vdd-l2-18"),
14241413
RPMH_VREG("ldo3", "ldo%s3", &pmic5_nldo515, "vdd-l3"),

0 commit comments

Comments
 (0)