summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark Brown <broonie@kernel.org>2026-07-28 19:54:28 +0100
committerMark Brown <broonie@kernel.org>2026-07-28 19:54:28 +0100
commit8d62dd89736f09a3e093b1490ceb075472abec6c (patch)
treeb59ceb17054fca2a96bbc75c28eac8a0b6337d6c
parentf5098b6bae761e346ebcd9da7f95622c04733cff (diff)
parent6753251cfc9622a90feedc0c0883e3b0a6fcde8a (diff)
downloadlinux-next-8d62dd89736f09a3e093b1490ceb075472abec6c.tar.gz
linux-next-8d62dd89736f09a3e093b1490ceb075472abec6c.zip
regulator: PM8350B LDO support
Esteban Urrutia <esteuwu@proton.me> says: The PM8350B PMIC has an LDO regulator which seems to be mostly used for powering display driver ICs. On my device's schematics, vdd-l1-supply is represented as VIN_DDIC, and vdd-l1 is represented as VREG_DDIC. Downstream this LDO is of type pmic5-ldo and I assume it should be of type pmic5_nldo upstream, since this is the type of regulator with the least margin error for the reference voltage, which is 1250-1296mV for my device. Link: https://patch.msgid.link/20260723-pm8350b-ldo-v1-0-42b5428a0d3f@proton.me
-rw-r--r--Documentation/devicetree/bindings/regulator/qcom,rpmh-regulator.yaml11
-rw-r--r--drivers/regulator/qcom-rpmh-regulator.c9
2 files changed, 20 insertions, 0 deletions
diff --git a/Documentation/devicetree/bindings/regulator/qcom,rpmh-regulator.yaml b/Documentation/devicetree/bindings/regulator/qcom,rpmh-regulator.yaml
index d93594304651..eed2ce7fa861 100644
--- a/Documentation/devicetree/bindings/regulator/qcom,rpmh-regulator.yaml
+++ b/Documentation/devicetree/bindings/regulator/qcom,rpmh-regulator.yaml
@@ -47,6 +47,7 @@ description: |
For PM8150, smps1 - smps10, ldo1 - ldo18
For PM8150L, smps1 - smps8, ldo1 - ldo11, bob, flash, rgb
For PM8350, smps1 - smps12, ldo1 - ldo10
+ For PM8350B, ldo1
For PM8350C, smps1 - smps10, ldo1 - ldo13, bob
For PM8450, smps1 - smps6, ldo1 - ldo4
For PM8550, smps1 - smps6, ldo1 - ldo17, bob1 - bob2
@@ -82,6 +83,7 @@ properties:
- qcom,pm8150-rpmh-regulators
- qcom,pm8150l-rpmh-regulators
- qcom,pm8350-rpmh-regulators
+ - qcom,pm8350b-rpmh-regulators
- qcom,pm8350c-rpmh-regulators
- qcom,pm8450-rpmh-regulators
- qcom,pm8550-rpmh-regulators
@@ -341,6 +343,15 @@ allOf:
properties:
compatible:
enum:
+ - qcom,pm8350b-rpmh-regulators
+ then:
+ properties:
+ vdd-l1-supply: true
+
+ - if:
+ properties:
+ compatible:
+ enum:
- qcom,pm8350c-rpmh-regulators
then:
properties:
diff --git a/drivers/regulator/qcom-rpmh-regulator.c b/drivers/regulator/qcom-rpmh-regulator.c
index 756a4201225e..73856e3df337 100644
--- a/drivers/regulator/qcom-rpmh-regulator.c
+++ b/drivers/regulator/qcom-rpmh-regulator.c
@@ -1269,6 +1269,11 @@ static const struct rpmh_vreg_init_data pm8350_vreg_data[] = {
{}
};
+static const struct rpmh_vreg_init_data pm8350b_vreg_data[] = {
+ RPMH_VREG("ldo1", LDO, 1, &pmic5_nldo, "vdd-l1"),
+ {}
+};
+
static const struct rpmh_vreg_init_data pm8350c_vreg_data[] = {
RPMH_VREG("smps1", SMPS, 1, &pmic5_hfsmps515, "vdd-s1"),
RPMH_VREG("smps2", SMPS, 2, &pmic5_ftsmps510, "vdd-s2"),
@@ -1869,6 +1874,10 @@ static const struct of_device_id __maybe_unused rpmh_regulator_match_table[] = {
.data = pm8350_vreg_data,
},
{
+ .compatible = "qcom,pm8350b-rpmh-regulators",
+ .data = pm8350b_vreg_data,
+ },
+ {
.compatible = "qcom,pm8350c-rpmh-regulators",
.data = pm8350c_vreg_data,
},