[v2] omap5-board-common: remove not physically existing vdds_1v8_main fixed-regulator

Message ID e836d5d98b028bdbb8805bcf79489e0df28add6c.1625148021.git.hns@goldelico.com
State New
Headers show
Series
  • [v2] omap5-board-common: remove not physically existing vdds_1v8_main fixed-regulator
Related show

Commit Message

H. Nikolaus Schaller July 1, 2021, 2 p.m.
This device tree include file describes a fixed-regulator
connecting smps7_reg output (1.8V) to some 1.8V rail and
consumers (vdds_1v8_main).

This regulator does not physically exist.

I assume it was introduced as a wrapper around smps7_reg
to provide a speaking signal name "vdds_1v8_main" as label.

This fixed-regulator without real function was not an issue
in driver code until

  Commit 98e48cd9283d ("regulator: core: resolve supply for boot-on/always-on regulators")

introduced a new check for regulator initialization which
makes Palmas regulator registration fail:

[    5.407712] ldo1: supplied by vsys_cobra
[    5.412748] ldo2: supplied by vsys_cobra
[    5.417603] palmas-pmic 48070000.i2c:palmas@48:palmas_pmic: failed to register 48070000.i2c:palmas@48:palmas_pmic regulator

The reason is that the supply-chain of regulators is too
long and goes from ldo3 through the virtual vdds_1v8_main
regulator and then back to smps7. This adds a cross-dependency
of probing Palmas regulators and the fixed-regulator which
leads to probe deferral by the new check and is no longer
resolved.

Since we do not control what device tree files including this
one reference (either &vdds_1v8_main or &smps7_reg or both)
we keep both labels for smps7 for compatibility.

Fixes: 98e48cd9283d ("regulator: core: resolve supply for boot-on/always-on regulators")
Signed-off-by: H. Nikolaus Schaller <hns@goldelico.com>
---
 arch/arm/boot/dts/omap5-board-common.dtsi | 9 +--------
 1 file changed, 1 insertion(+), 8 deletions(-)

Comments

H. Nikolaus Schaller July 14, 2021, 7:32 a.m. | #1
Any comments?

> Am 01.07.2021 um 16:00 schrieb H. Nikolaus Schaller <hns@goldelico.com>:

> 

> This device tree include file describes a fixed-regulator

> connecting smps7_reg output (1.8V) to some 1.8V rail and

> consumers (vdds_1v8_main).

> 

> This regulator does not physically exist.

> 

> I assume it was introduced as a wrapper around smps7_reg

> to provide a speaking signal name "vdds_1v8_main" as label.

> 

> This fixed-regulator without real function was not an issue

> in driver code until

> 

>  Commit 98e48cd9283d ("regulator: core: resolve supply for boot-on/always-on regulators")

> 

> introduced a new check for regulator initialization which

> makes Palmas regulator registration fail:

> 

> [    5.407712] ldo1: supplied by vsys_cobra

> [    5.412748] ldo2: supplied by vsys_cobra

> [    5.417603] palmas-pmic 48070000.i2c:palmas@48:palmas_pmic: failed to register 48070000.i2c:palmas@48:palmas_pmic regulator

> 

> The reason is that the supply-chain of regulators is too

> long and goes from ldo3 through the virtual vdds_1v8_main

> regulator and then back to smps7. This adds a cross-dependency

> of probing Palmas regulators and the fixed-regulator which

> leads to probe deferral by the new check and is no longer

> resolved.

> 

> Since we do not control what device tree files including this

> one reference (either &vdds_1v8_main or &smps7_reg or both)

> we keep both labels for smps7 for compatibility.

> 

> Fixes: 98e48cd9283d ("regulator: core: resolve supply for boot-on/always-on regulators")

> Signed-off-by: H. Nikolaus Schaller <hns@goldelico.com>

> ---

> arch/arm/boot/dts/omap5-board-common.dtsi | 9 +--------

> 1 file changed, 1 insertion(+), 8 deletions(-)

> 

> diff --git a/arch/arm/boot/dts/omap5-board-common.dtsi b/arch/arm/boot/dts/omap5-board-common.dtsi

> index d8f13626cfd1..3a8f10231475 100644

> --- a/arch/arm/boot/dts/omap5-board-common.dtsi

> +++ b/arch/arm/boot/dts/omap5-board-common.dtsi

> @@ -30,14 +30,6 @@ vsys_cobra: fixedregulator-vsys_cobra {

> 		regulator-max-microvolt = <5000000>;

> 	};

> 

> -	vdds_1v8_main: fixedregulator-vdds_1v8_main {

> -		compatible = "regulator-fixed";

> -		regulator-name = "vdds_1v8_main";

> -		vin-supply = <&smps7_reg>;

> -		regulator-min-microvolt = <1800000>;

> -		regulator-max-microvolt = <1800000>;

> -	};

> -

> 	vmmcsd_fixed: fixedregulator-mmcsd {

> 		compatible = "regulator-fixed";

> 		regulator-name = "vmmcsd_fixed";

> @@ -487,6 +479,7 @@ smps6_reg: smps6 {

> 					regulator-boot-on;

> 				};

> 

> +				vdds_1v8_main:

> 				smps7_reg: smps7 {

> 					/* VDDS_1v8_OMAP over VDDS_1v8_MAIN */

> 					regulator-name = "smps7";

> -- 

> 2.31.1

>
Tony Lindgren July 27, 2021, 8:15 a.m. | #2
* H. Nikolaus Schaller <hns@goldelico.com> [210714 07:33]:
> Any comments?


Seems like the way to go, applying into fixes.

Thanks,

Tony

Patch

diff --git a/arch/arm/boot/dts/omap5-board-common.dtsi b/arch/arm/boot/dts/omap5-board-common.dtsi
index d8f13626cfd1..3a8f10231475 100644
--- a/arch/arm/boot/dts/omap5-board-common.dtsi
+++ b/arch/arm/boot/dts/omap5-board-common.dtsi
@@ -30,14 +30,6 @@  vsys_cobra: fixedregulator-vsys_cobra {
 		regulator-max-microvolt = <5000000>;
 	};
 
-	vdds_1v8_main: fixedregulator-vdds_1v8_main {
-		compatible = "regulator-fixed";
-		regulator-name = "vdds_1v8_main";
-		vin-supply = <&smps7_reg>;
-		regulator-min-microvolt = <1800000>;
-		regulator-max-microvolt = <1800000>;
-	};
-
 	vmmcsd_fixed: fixedregulator-mmcsd {
 		compatible = "regulator-fixed";
 		regulator-name = "vmmcsd_fixed";
@@ -487,6 +479,7 @@  smps6_reg: smps6 {
 					regulator-boot-on;
 				};
 
+				vdds_1v8_main:
 				smps7_reg: smps7 {
 					/* VDDS_1v8_OMAP over VDDS_1v8_MAIN */
 					regulator-name = "smps7";