Hi all,

Ping on the patch series. I don't need it for my boards anymore but I still think this is a nice to have for everybody. I won't ping again if there's no interest/feedback.

Cheers,
Quentin

On 7/22/22 12:09, Quentin Schulz wrote:
From: Quentin Schulz <quentin.sch...@theobroma-systems.com>

This makes sure regulators that need to be turned on or off at boot are
turned on or off in the SPL.

This may be required for the SPL to do some operations, such as finding
possible loading media for U-Boot proper.

Cc: Quentin Schulz <foss+ub...@0leil.net>
Tested-by: Xavier Drudis Ferran <xdru...@tinet.cat>
Signed-off-by: Quentin Schulz <quentin.sch...@theobroma-systems.com>
---

v2:
  - added Tested-by,
  - fixed build for boards with SPL_DM_REGULATOR disabled by always
  included power/regulator.h and defining a dummy implementation for
  regulators_enable_boot_off,

  common/spl/spl.c          | 10 ++++++++++
  include/power/regulator.h |  5 +++++
  2 files changed, 15 insertions(+)

diff --git a/common/spl/spl.c b/common/spl/spl.c
index 29e0898f03..6ab997279d 100644
--- a/common/spl/spl.c
+++ b/common/spl/spl.c
@@ -39,6 +39,7 @@
  #include <fdt_support.h>
  #include <bootcount.h>
  #include <wdt.h>
+#include <power/regulator.h>
DECLARE_GLOBAL_DATA_PTR;
  DECLARE_BINMAN_MAGIC_SYM;
@@ -773,6 +774,15 @@ void board_init_r(gd_t *dummy1, ulong dummy2)
        if (CONFIG_IS_ENABLED(GPIO_HOG))
                gpio_hog_probe_all();
+ if (CONFIG_IS_ENABLED(DM_REGULATOR)) {
+               if (regulators_enable_boot_on(false))
+                       debug("%s: Cannot enable boot on regulator\n",
+                             __func__);
+               if (regulators_enable_boot_off(false))
+                       debug("%s: Cannot enable boot off regulator\n",
+                             __func__);
+       }
+
  #if CONFIG_IS_ENABLED(BOARD_INIT)
        spl_board_init();
  #endif
diff --git a/include/power/regulator.h b/include/power/regulator.h
index ff1bfc2435..4bce61dd9f 100644
--- a/include/power/regulator.h
+++ b/include/power/regulator.h
@@ -631,6 +631,11 @@ static inline int regulators_enable_boot_on(bool verbose)
        return -ENOSYS;
  }
+static inline int regulators_enable_boot_off(bool verbose)
+{
+       return -ENOSYS;
+}
+
  static inline int regulator_autoset(struct udevice *dev)
  {
        return -ENOSYS;

Reply via email to