Re: [PATCH 4/4] arm64: dts: qcom: sm7225-fairphone-fp4: Add parent supply for regulators
From: Luca Weiss
Date: Fri Sep 18 2026 - 10:42:25 EST
Hi Bjorn,
On Thu Sep 3, 2026 at 5:01 PM CEST, Bjorn Andersson wrote:
> On Tue, Sep 01, 2026 at 10:58:59AM +0200, Luca Weiss wrote:
>> Add the vdd-*-supply properties to the rpmh-regulators nodes, so that
>> the parent regulators can be enabled when needed.
>>
>
> https://docs.kernel.org/process/submitting-patches.html#describe-your-changes
> starts with "Describe your problem.". Is there an actual problem observed?
No, this was noticed just in 'code', that other (also rpmh) devices have
the -supply properties, but not this device.
> I've been told that rpmh will have your back here, so you should not
> need to explicitly vote for these resources from Linux.
Then, this change still makes
/sys/kernel/debug/regulator/regulator_summary have a nice hierachy of
regulators and not all of them parented to regulator-dummy.
Shall I send a v2 with this justification in the commit message? Or is
it okay to pick it up as-is?
Regards
Luca
>
> Regards,
> Bjorn
>
>> The regulators s4a and s6a are a bit special. They feed back into
>> PM6350, but are not modelled as regulators (or anything else?), so they
>> also can't be added as vdd-*-supply. It would seem to be possible to add
>> them with their "Default on booting voltage" from the PM6350 Data Sheet
>> in the dts, but I'm not sure this is desired.
>>
>> And document what the "missing" regulators are used for.
>>
>> Signed-off-by: Luca Weiss <luca.weiss@xxxxxxxxxxxxx>
>> ---
>> arch/arm64/boot/dts/qcom/sm7225-fairphone-fp4.dts | 46 +++++++++++++++++++++++
>> 1 file changed, 46 insertions(+)
>>
>> diff --git a/arch/arm64/boot/dts/qcom/sm7225-fairphone-fp4.dts b/arch/arm64/boot/dts/qcom/sm7225-fairphone-fp4.dts
>> index 5d20ad93b0c5..a1556d802a8b 100644
>> --- a/arch/arm64/boot/dts/qcom/sm7225-fairphone-fp4.dts
>> +++ b/arch/arm64/boot/dts/qcom/sm7225-fairphone-fp4.dts
>> @@ -78,6 +78,17 @@ lcdb_dummy: regulator-lcdb-dummy {
>> regulator-max-microvolt = <5500000>;
>> };
>>
>> + vph_pwr: regulator-vph-pwr {
>> + compatible = "regulator-fixed";
>> +
>> + regulator-name = "vph_pwr";
>> + regulator-min-microvolt = <3700000>;
>> + regulator-max-microvolt = <3700000>;
>> +
>> + regulator-always-on;
>> + regulator-boot-on;
>> + };
>> +
>> reserved-memory {
>> /*
>> * The rmtfs memory region in downstream is 'dynamically allocated'
>> @@ -296,6 +307,15 @@ &adsp {
>> &apps_rsc {
>> regulators-0 {
>> compatible = "qcom,pm6350-rpmh-regulators";
>> +
>> + vdd-l2-l5-l7-supply = <&vreg_s2a>;
>> + vdd-l3-l6-l8-l9-l10-supply = <&vreg_bob>;
>> + vdd-l11-supply = <&vreg_s2a>;
>> + vdd-l12-l14-supply = <&vreg_s2a>;
>> + vdd-l15-l19-l22-supply = <&vreg_s8e>;
>> + vdd-s1-supply = <&vph_pwr>;
>> + vdd-s2-supply = <&vph_pwr>;
>> +
>> qcom,pmic-id = "a";
>>
>> vreg_s1a: smps1 {
>> @@ -310,6 +330,14 @@ vreg_s2a: smps2 {
>> regulator-max-microvolt = <2048000>;
>> };
>>
>> + /*
>> + * s3a (smps3) is gfx.lvl
>> + * s4a (smps4) is supply for vdd-l4 & vdd-l13
>> + * s5a (smps5) is mx.lvl
>> + * s6a (smps6) is supply for vdd-l16 & vdd-l18-l20-l21
>> + * l1a (ldo1) is lcx.lvl
>> + */
>> +
>> vreg_l2a: ldo2 {
>> regulator-name = "vreg_l2a";
>> regulator-min-microvolt = <1503000>;
>> @@ -408,6 +436,8 @@ vreg_l16a: ldo16 {
>> regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
>> };
>>
>> + /* l17a (ldo17) is lmx.lvl */
>> +
>> vreg_l18a: ldo18 {
>> regulator-name = "vreg_l18a";
>> regulator-min-microvolt = <788000>;
>> @@ -446,8 +476,24 @@ vreg_l22a: ldo22 {
>>
>> regulators-1 {
>> compatible = "qcom,pm6150l-rpmh-regulators";
>> +
>> + vdd-bob-supply = <&vph_pwr>;
>> + vdd-l1-l8-supply = <&vreg_s2a>;
>> + vdd-l2-l3-supply = <&vreg_s8e>;
>> + vdd-l4-l5-l6-supply = <&vreg_bob>;
>> + vdd-l7-l11-supply = <&vreg_bob>;
>> + vdd-l9-l10-supply = <&vreg_bob>;
>> + vdd-s8-supply = <&vph_pwr>;
>> +
>> qcom,pmic-id = "e";
>>
>> + /*
>> + * s1e-s2e (smps1-smps2) is cx.lvl
>> + * s3e-s4e (smps3-smps4) is VDD_APC1
>> + * s5e (smps5) is VDD_APC0
>> + * s6e-s7e (smps6-smps7) is mss.lvl
>> + */
>> +
>> vreg_s8e: smps8 {
>> regulator-name = "vreg_s8e";
>> regulator-min-microvolt = <313000>;
>>
>> --
>> 2.55.0
>>