Skip to content

Commit 911ce7c

Browse files
flamingradianbroonie
authored andcommitted
regulator: qcom-rpmh: add pm660 and pm660l pmics
The SDM630 and SDM660 both use RPM (not RPMh) for managing the PM660 and PM660L. The SDM670 uses RPMh to manage them as PMIC 4s. To support the SDM670, add the PM660 and PM660L to the RPMh regulator driver. Link: https://android.googlesource.com/kernel/msm/+/58064f13c0a436a82c35f2e3b5a122d874ae5846%5E%21/#F0 Link: https://android.googlesource.com/kernel/msm/+/f676d3d24f9d802bfe63369167c4a8cc162b8950%5E%21/#F3 Signed-off-by: Richard Acayan <mailingradian@gmail.com> Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> Link: https://lore.kernel.org/r/20220920223331.150635-3-mailingradian@gmail.com Signed-off-by: Mark Brown <broonie@kernel.org>
1 parent 7ec12d1 commit 911ce7c

File tree

1 file changed

+54
-0
lines changed

1 file changed

+54
-0
lines changed

drivers/regulator/qcom-rpmh-regulator.c

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1198,6 +1198,52 @@ static const struct rpmh_vreg_init_data pmr735a_vreg_data[] = {
11981198
{}
11991199
};
12001200

1201+
static const struct rpmh_vreg_init_data pm660_vreg_data[] = {
1202+
RPMH_VREG("smps1", "smp%s1", &pmic4_ftsmps426, "vdd-s1"),
1203+
RPMH_VREG("smps2", "smp%s2", &pmic4_ftsmps426, "vdd-s2"),
1204+
RPMH_VREG("smps3", "smp%s3", &pmic4_ftsmps426, "vdd-s3"),
1205+
RPMH_VREG("smps4", "smp%s4", &pmic4_hfsmps3, "vdd-s4"),
1206+
RPMH_VREG("smps5", "smp%s5", &pmic4_hfsmps3, "vdd-s5"),
1207+
RPMH_VREG("smps6", "smp%s6", &pmic4_hfsmps3, "vdd-s6"),
1208+
RPMH_VREG("ldo1", "ldo%s1", &pmic4_nldo, "vdd-l1-l6-l7"),
1209+
RPMH_VREG("ldo2", "ldo%s2", &pmic4_nldo, "vdd-l2-l3"),
1210+
RPMH_VREG("ldo3", "ldo%s3", &pmic4_nldo, "vdd-l2-l3"),
1211+
/* ldo4 is inaccessible on PM660 */
1212+
RPMH_VREG("ldo5", "ldo%s5", &pmic4_nldo, "vdd-l5"),
1213+
RPMH_VREG("ldo6", "ldo%s6", &pmic4_nldo, "vdd-l1-l6-l7"),
1214+
RPMH_VREG("ldo7", "ldo%s7", &pmic4_nldo, "vdd-l1-l6-l7"),
1215+
RPMH_VREG("ldo8", "ldo%s8", &pmic4_pldo_lv, "vdd-l8-l9-l10-l11-l12-l13-l14"),
1216+
RPMH_VREG("ldo9", "ldo%s9", &pmic4_pldo_lv, "vdd-l8-l9-l10-l11-l12-l13-l14"),
1217+
RPMH_VREG("ldo10", "ldo%s10", &pmic4_pldo_lv, "vdd-l8-l9-l10-l11-l12-l13-l14"),
1218+
RPMH_VREG("ldo11", "ldo%s11", &pmic4_pldo_lv, "vdd-l8-l9-l10-l11-l12-l13-l14"),
1219+
RPMH_VREG("ldo12", "ldo%s12", &pmic4_pldo_lv, "vdd-l8-l9-l10-l11-l12-l13-l14"),
1220+
RPMH_VREG("ldo13", "ldo%s13", &pmic4_pldo_lv, "vdd-l8-l9-l10-l11-l12-l13-l14"),
1221+
RPMH_VREG("ldo14", "ldo%s14", &pmic4_pldo_lv, "vdd-l8-l9-l10-l11-l12-l13-l14"),
1222+
RPMH_VREG("ldo15", "ldo%s15", &pmic4_pldo, "vdd-l15-l16-l17-l18-l19"),
1223+
RPMH_VREG("ldo16", "ldo%s16", &pmic4_pldo, "vdd-l15-l16-l17-l18-l19"),
1224+
RPMH_VREG("ldo17", "ldo%s17", &pmic4_pldo, "vdd-l15-l16-l17-l18-l19"),
1225+
RPMH_VREG("ldo18", "ldo%s18", &pmic4_pldo, "vdd-l15-l16-l17-l18-l19"),
1226+
RPMH_VREG("ldo19", "ldo%s19", &pmic4_pldo, "vdd-l15-l16-l17-l18-l19"),
1227+
{}
1228+
};
1229+
1230+
static const struct rpmh_vreg_init_data pm660l_vreg_data[] = {
1231+
RPMH_VREG("smps1", "smp%s1", &pmic4_ftsmps426, "vdd-s1"),
1232+
RPMH_VREG("smps2", "smp%s2", &pmic4_ftsmps426, "vdd-s2"),
1233+
RPMH_VREG("smps3", "smp%s3", &pmic4_ftsmps426, "vdd-s3-s4"),
1234+
RPMH_VREG("smps5", "smp%s5", &pmic4_ftsmps426, "vdd-s5"),
1235+
RPMH_VREG("ldo1", "ldo%s1", &pmic4_nldo, "vdd-l1-l9-l10"),
1236+
RPMH_VREG("ldo2", "ldo%s2", &pmic4_pldo, "vdd-l2"),
1237+
RPMH_VREG("ldo3", "ldo%s3", &pmic4_pldo, "vdd-l3-l5-l7-l8"),
1238+
RPMH_VREG("ldo4", "ldo%s4", &pmic4_pldo, "vdd-l4-l6"),
1239+
RPMH_VREG("ldo5", "ldo%s5", &pmic4_pldo, "vdd-l3-l5-l7-l8"),
1240+
RPMH_VREG("ldo6", "ldo%s6", &pmic4_pldo, "vdd-l4-l6"),
1241+
RPMH_VREG("ldo7", "ldo%s7", &pmic4_pldo, "vdd-l3-l5-l7-l8"),
1242+
RPMH_VREG("ldo8", "ldo%s8", &pmic4_pldo, "vdd-l3-l5-l7-l8"),
1243+
RPMH_VREG("bob", "bob%s1", &pmic4_bob, "vdd-bob"),
1244+
{}
1245+
};
1246+
12011247
static int rpmh_regulator_probe(struct platform_device *pdev)
12021248
{
12031249
struct device *dev = &pdev->dev;
@@ -1320,6 +1366,14 @@ static const struct of_device_id __maybe_unused rpmh_regulator_match_table[] = {
13201366
.compatible = "qcom,pmr735a-rpmh-regulators",
13211367
.data = pmr735a_vreg_data,
13221368
},
1369+
{
1370+
.compatible = "qcom,pm660-rpmh-regulators",
1371+
.data = pm660_vreg_data,
1372+
},
1373+
{
1374+
.compatible = "qcom,pm660l-rpmh-regulators",
1375+
.data = pm660l_vreg_data,
1376+
},
13231377
{}
13241378
};
13251379
MODULE_DEVICE_TABLE(of, rpmh_regulator_match_table);

0 commit comments

Comments
 (0)