Skip to content

Commit ecbfba6

Browse files
stephan-ghandersson
authored andcommitted
arm64: dts: qcom: msm8939-pm8916: Mark always-on regulators
Some of the regulators must be always-on to ensure correct operation of the system, e.g. PM8916 L2 for the LPDDR RAM, L5 for most digital I/O and L7 for the CPU PLL (strictly speaking the CPU PLL might only need an active-only vote but this is not supported for regulators in mainline currently). The RPM firmware seems to enforce that internally, these supplies stay on even if we vote for them to power off (and there is no other processor running). This means it's pointless to keep sending enable/disable requests because they will just be ignored. Also, drivers are much more likely to get a wrong impression of the regulator status, because regulator_is_enabled() will return false when there are no users, even though the regulator is always on. Describe this properly by marking the regulators as always-on. The same changes was already made for MSM8916 in commit 8bbd357 ("arm64: dts: qcom: msm8916-pm8916: Mark always-on regulators"). Signed-off-by: Stephan Gerhold <stephan@gerhold.net> Signed-off-by: Bjorn Andersson <andersson@kernel.org> Link: https://lore.kernel.org/r/20230530-msm8939-regulators-v1-8-a3c3ac833567@gerhold.net
1 parent 5cdab9a commit ecbfba6

1 file changed

Lines changed: 5 additions & 0 deletions

File tree

arch/arm64/boot/dts/qcom/msm8939-pm8916.dtsi

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,10 +51,12 @@
5151
pm8916_s3: s3 {
5252
regulator-min-microvolt = <1250000>;
5353
regulator-max-microvolt = <1350000>;
54+
regulator-always-on; /* Needed for L2 */
5455
};
5556
pm8916_s4: s4 {
5657
regulator-min-microvolt = <1850000>;
5758
regulator-max-microvolt = <2150000>;
59+
regulator-always-on; /* Needed for L5/L7 */
5860
};
5961

6062
/*
@@ -71,6 +73,7 @@
7173
pm8916_l2: l2 {
7274
regulator-min-microvolt = <1200000>;
7375
regulator-max-microvolt = <1200000>;
76+
regulator-always-on; /* Needed for LPDDR RAM */
7477
};
7578

7679
/* pm8916_l3 is managed by rpmpd (MSM8939_VDDMX) */
@@ -80,6 +83,7 @@
8083
pm8916_l5: l5 {
8184
regulator-min-microvolt = <1800000>;
8285
regulator-max-microvolt = <1800000>;
86+
regulator-always-on; /* Needed for most digital I/O */
8387
};
8488

8589
pm8916_l6: l6 {
@@ -90,6 +94,7 @@
9094
pm8916_l7: l7 {
9195
regulator-min-microvolt = <1800000>;
9296
regulator-max-microvolt = <1800000>;
97+
regulator-always-on; /* Needed for CPU PLL */
9398
};
9499

95100
pm8916_l8: l8 {

0 commit comments

Comments
 (0)