Re: [PATCH 4/4] arm64: dts: qcom: sm7225-fairphone-fp4: Add parent supply for regulators
From: Bjorn Andersson
Date: Thu Sep 03 2026 - 12:48:16 EST
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?
I've been told that rpmh will have your back here, so you should not
need to explicitly vote for these resources from Linux.
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
>