Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

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

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>
Signed-off-by: Tony Lindgren <tony@atomide.com>

authored by

H. Nikolaus Schaller and committed by
Tony Lindgren
c68ef4ad 0162a996

+1 -8
+1 -8
arch/arm/boot/dts/omap5-board-common.dtsi
··· 30 30 regulator-max-microvolt = <5000000>; 31 31 }; 32 32 33 - vdds_1v8_main: fixedregulator-vdds_1v8_main { 34 - compatible = "regulator-fixed"; 35 - regulator-name = "vdds_1v8_main"; 36 - vin-supply = <&smps7_reg>; 37 - regulator-min-microvolt = <1800000>; 38 - regulator-max-microvolt = <1800000>; 39 - }; 40 - 41 33 vmmcsd_fixed: fixedregulator-mmcsd { 42 34 compatible = "regulator-fixed"; 43 35 regulator-name = "vmmcsd_fixed"; ··· 479 487 regulator-boot-on; 480 488 }; 481 489 490 + vdds_1v8_main: 482 491 smps7_reg: smps7 { 483 492 /* VDDS_1v8_OMAP over VDDS_1v8_MAIN */ 484 493 regulator-name = "smps7";