[PATCH] arm: dts: sun50i-h6-orangepi-3: disable aldo2 regulator

Maxim Karasev begs at disroot.org
Tue Sep 7 18:23:26 CEST 2021

Mainline TF-A has a broken behavior - it enables all used AXP regulator
outputs, without much reason.

It breaks PHY on Orange Pi 3 and other boards, because they a specific
power-on sequence is required. aldo2 which is enabled by TF-A is just a
half of PHY's power and the other half that is untouched by TF-A must be
enabled simultaneously (even a small difference may cause a break-down).
If not TF-A, kernel driver would do everything correctly.

However, some boards rely on this behavior, so it's impossible to get
rid of it.

TF-A recently started checking regulator status, and now it enables a
regulator only if it's status is "okay". Disabling regulator in U-Boot's
dts workarounds the problem.
 arch/arm/dts/sun50i-h6-orangepi-3.dts | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/arch/arm/dts/sun50i-h6-orangepi-3.dts b/arch/arm/dts/sun50i-h6-orangepi-3.dts
index 7e83f6146f..9f91e4ec88 100644
--- a/arch/arm/dts/sun50i-h6-orangepi-3.dts
+++ b/arch/arm/dts/sun50i-h6-orangepi-3.dts
@@ -207,6 +207,10 @@
 				regulator-min-microvolt = <3300000>;
 				regulator-max-microvolt = <3300000>;
 				regulator-name = "vcc33-audio-tv-ephy-mac";
+				/* This regulator must be enabled by the kernel,
+				 * not by u-boot or TF-A, otherwise power-on
+				 * sequence will be wrong and PHY won't work */
+				status = "disabled";
 			/* ALDO3 is shorted to CLDO1 */

More information about the U-Boot mailing list