Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

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>

authored by

Richard Acayan and committed by
Mark Brown
911ce7cf 7ec12d15

+54
+54
drivers/regulator/qcom-rpmh-regulator.c
··· 1198 1198 {} 1199 1199 }; 1200 1200 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 + 1201 1247 static int rpmh_regulator_probe(struct platform_device *pdev) 1202 1248 { 1203 1249 struct device *dev = &pdev->dev; ··· 1365 1319 { 1366 1320 .compatible = "qcom,pmr735a-rpmh-regulators", 1367 1321 .data = pmr735a_vreg_data, 1322 + }, 1323 + { 1324 + .compatible = "qcom,pm660-rpmh-regulators", 1325 + .data = pm660_vreg_data, 1326 + }, 1327 + { 1328 + .compatible = "qcom,pm660l-rpmh-regulators", 1329 + .data = pm660l_vreg_data, 1368 1330 }, 1369 1331 {} 1370 1332 };