[PATCH 6/7] arm64: dts: monaco-evk: Force vreg_l8a always-on to protect UFS VCC

Balaji Selvanathan via U-Boot <[email protected]> Thu, 06 Aug 2026 21:42:23 +0530
Newsgroups gmane.comp.boot-loaders.u-boot
Message-ID <20260806-b4-monaco-v1-6-8d7b4e2f4fe1__38059.2110728443$1786032808$gmane$org@oss.qualcomm.com>
vreg_l8a is the shared VCC rail for UFS (ufs_mem_hc vcc-supply) and
eMMC (sdhc_1 vmmc-supply). UFS holds no regulator vote of its own in
U-Boot, so nothing stops other consumers from disabling the rail
while UFS still needs it.

eMMC's power-cycle runs after UFS has already linked up and started
transferring data. Its power-off fires a real disable vote on
vreg_l8a, glitching UFS VCC while the link is live. UFS has no
recovery from this: every following command fails (OCS errors, UTP
timeouts, "Card did not respond to voltage select! : -110").

Force the rail always-on so the disable vote is rejected in
regulator_set_enable() (-EACCES) before it reaches the RPMh driver.
eMMC is non-removable and does not need a real power-cycle.

Signed-off-by: Balaji Selvanathan <[email protected]>
---
 arch/arm/dts/monaco-evk-u-boot.dtsi | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/arch/arm/dts/monaco-evk-u-boot.dtsi b/arch/arm/dts/monaco-evk-u-boot.dtsi
index 5520d111864..8e9102eae4d 100644
--- a/arch/arm/dts/monaco-evk-u-boot.dtsi
+++ b/arch/arm/dts/monaco-evk-u-boot.dtsi
@@ -34,3 +34,7 @@
 		};
 	};
 };
+
+&vreg_l8a {
+	regulator-always-on;
+};

-- 
2.34.1
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.