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> Signed-off-by: Quentin Schulz <quentin.sch...@theobroma-systems.com> --- - RFC because only tested on Puma Haikou RK3399 common/spl/spl.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/common/spl/spl.c b/common/spl/spl.c index c8c463f80b..762e9918c7 100644 --- a/common/spl/spl.c +++ b/common/spl/spl.c @@ -37,6 +37,9 @@ #include <fdt_support.h> #include <bootcount.h> #include <wdt.h> +#if CONFIG_IS_ENABLED(DM_REGULATOR) +#include <power/regulator.h> +#endif DECLARE_GLOBAL_DATA_PTR; @@ -766,6 +769,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 -- 2.36.1