summaryrefslogtreecommitdiff
path: root/drivers/power
diff options
context:
space:
mode:
authorLuca Weiss <[email protected]>2025-09-17 14:47:39 +0200
committerCasey Connolly <[email protected]>2025-10-29 12:27:33 +0100
commita6b78ac5d0a6f0f6d072dc9f3af3b6659aee47e9 (patch)
treec5493f242126e01d70ee04a088017d1309752c9f /drivers/power
parenta206bd063b828362457e9cf87332e7052eda7c44 (diff)
regulator: qcom-rpmh-regulator: add support for pm6150l regulators
Add the pm6150l regulator data found on the Qualcomm SM6350 platform. The tables are imported from the Linux driver. The SMPS regulators were not added now. Reviewed-by: Neil Armstrong <[email protected]> Signed-off-by: Luca Weiss <[email protected]>
Diffstat (limited to 'drivers/power')
-rw-r--r--drivers/power/regulator/qcom-rpmh-regulator.c31
1 files changed, 31 insertions, 0 deletions
diff --git a/drivers/power/regulator/qcom-rpmh-regulator.c b/drivers/power/regulator/qcom-rpmh-regulator.c
index 954deca5ed7..06466142560 100644
--- a/drivers/power/regulator/qcom-rpmh-regulator.c
+++ b/drivers/power/regulator/qcom-rpmh-regulator.c
@@ -456,6 +456,16 @@ static const struct rpmh_vreg_hw_data pmic5_pldo_lv = {
.n_modes = ARRAY_SIZE(pmic_mode_map_pmic5_ldo),
};
+static const struct rpmh_vreg_hw_data pmic5_nldo = {
+ .regulator_type = VRM,
+ .ops = &rpmh_regulator_vrm_drms_ops,
+ .voltage_range = REGULATOR_LINEAR_RANGE(320000, 0, 123, 8000),
+ .n_voltages = 124,
+ .hpm_min_load_uA = 30000,
+ .pmic_mode_map = pmic_mode_map_pmic5_ldo,
+ .n_modes = ARRAY_SIZE(pmic_mode_map_pmic5_ldo),
+};
+
static const struct rpmh_vreg_hw_data pmic5_nldo515 = {
.regulator_type = VRM,
.ops = &rpmh_regulator_vrm_drms_ops,
@@ -493,6 +503,23 @@ static const struct rpmh_vreg_hw_data pmic5_pldo515_mv = {
.supply_name = _supply_name, \
}
+static const struct rpmh_vreg_init_data pm6150l_vreg_data[] = {
+ /* smps1 - smps8 are not added to u-boot yet */
+ RPMH_VREG("ldo1", "ldo%s1", &pmic5_pldo_lv, "vdd-l1-l8"),
+ RPMH_VREG("ldo2", "ldo%s2", &pmic5_nldo, "vdd-l2-l3"),
+ RPMH_VREG("ldo3", "ldo%s3", &pmic5_nldo, "vdd-l2-l3"),
+ RPMH_VREG("ldo4", "ldo%s4", &pmic5_pldo, "vdd-l4-l5-l6"),
+ RPMH_VREG("ldo5", "ldo%s5", &pmic5_pldo, "vdd-l4-l5-l6"),
+ RPMH_VREG("ldo6", "ldo%s6", &pmic5_pldo, "vdd-l4-l5-l6"),
+ RPMH_VREG("ldo7", "ldo%s7", &pmic5_pldo, "vdd-l7-l11"),
+ RPMH_VREG("ldo8", "ldo%s8", &pmic5_pldo, "vdd-l1-l8"),
+ RPMH_VREG("ldo9", "ldo%s9", &pmic5_pldo, "vdd-l9-l10"),
+ RPMH_VREG("ldo10", "ldo%s10", &pmic5_pldo, "vdd-l9-l10"),
+ RPMH_VREG("ldo11", "ldo%s11", &pmic5_pldo, "vdd-l7-l11"),
+ RPMH_VREG("bob", "bob%s1", &pmic5_bob, "vdd-bob"),
+ {}
+};
+
static const struct rpmh_vreg_init_data pm8150_vreg_data[] = {
RPMH_VREG("ldo13", "ldo%s13", &pmic5_pldo, "vdd-l13-l16-l17"),
{}
@@ -706,6 +733,10 @@ static int rpmh_regulators_bind(struct udevice *dev)
static const struct udevice_id rpmh_regulator_ids[] = {
{
+ .compatible = "qcom,pm6150l-rpmh-regulators",
+ .data = (ulong)pm6150l_vreg_data,
+ },
+ {
.compatible = "qcom,pm8150-rpmh-regulators",
.data = (ulong)pm8150_vreg_data,
},