[PATCH] arm: imx: Enable always-on regulators using board specific workaround on DHCOM SoM

Marek Vasut marex at denx.de
Wed Sep 25 00:08:23 CEST 2024


U-Boot is currently unable to automatically enable regulators which
contain DT property regulator-always-on or regulator-boot-on. There
is an ongoing work to add this functionality to regulator core code,
but until the proper solution lands, add this awful workaround code
to force these regulators on. This is specifically needed to assure
the VIO regulator used to supply ethernet magnetics is enabled.

Signed-off-by: Marek Vasut <marex at denx.de>
---
NOTE: This is for 2024.10 as a bad temporary workaround
---
Cc: Andreas Geisreiter <ageisreiter at dh-electronics.de>
Cc: Christoph Niedermaier <cniedermaier at dh-electronics.com>
Cc: Fabio Estevam <festevam at denx.de>
Cc: Tom Rini <trini at konsulko.com>
Cc: u-boot at dh-electronics.com
Cc: u-boot at lists.denx.de
---
 board/dhelectronics/dh_imx6/dh_imx6.c             | 3 +++
 board/dhelectronics/dh_imx8mp/imx8mp_dhcom_pdk2.c | 3 +++
 2 files changed, 6 insertions(+)

diff --git a/board/dhelectronics/dh_imx6/dh_imx6.c b/board/dhelectronics/dh_imx6/dh_imx6.c
index c8dd30dfeaf..ada44e01424 100644
--- a/board/dhelectronics/dh_imx6/dh_imx6.c
+++ b/board/dhelectronics/dh_imx6/dh_imx6.c
@@ -30,6 +30,7 @@
 #include <fuse.h>
 #include <i2c_eeprom.h>
 #include <mmc.h>
+#include <power/regulator.h>
 #include <usb.h>
 #include <linux/delay.h>
 #include <usb/ehci-ci.h>
@@ -127,6 +128,8 @@ int board_init(void)
 
 	setup_fec_clock();
 
+	regulators_enable_boot_on(_DEBUG);
+
 	return 0;
 }
 
diff --git a/board/dhelectronics/dh_imx8mp/imx8mp_dhcom_pdk2.c b/board/dhelectronics/dh_imx8mp/imx8mp_dhcom_pdk2.c
index c635735d89c..a389ab3c2d9 100644
--- a/board/dhelectronics/dh_imx8mp/imx8mp_dhcom_pdk2.c
+++ b/board/dhelectronics/dh_imx8mp/imx8mp_dhcom_pdk2.c
@@ -14,6 +14,7 @@
 #include <malloc.h>
 #include <net.h>
 #include <miiphy.h>
+#include <power/regulator.h>
 
 #include "lpddr4_timing.h"
 #include "../common/dh_common.h"
@@ -111,6 +112,8 @@ int dh_setup_mac_address(void)
 
 int board_init(void)
 {
+	regulators_enable_boot_on(_DEBUG);
+
 	return 0;
 }
 
-- 
2.45.2



More information about the U-Boot mailing list