[PATCH v2 1/2] spl: enable regulator-boot-on and disable regulator-force-boot-off
Kever Yang
kever.yang at rock-chips.com
Thu Sep 1 14:36:23 CEST 2022
Hi Quentin,
I don't think we need to add regulators_enable_boot_on/off callback
in SPL framework,
the rk3399-puma/Qseven is the only board need to do this in the SPL
right now.
The hardware design for SPI/eMMC should always power on the storage
which
need by very early which should also used by bootrom. And for more
device power
will be enabled in U-Boot proper.
Thanks,
- Kever
On 2022/7/22 18:09, Quentin Schulz wrote:
> From: Quentin Schulz <quentin.schulz at 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+uboot at 0leil.net>
> Tested-by: Xavier Drudis Ferran <xdrudis at tinet.cat>
> Signed-off-by: Quentin Schulz <quentin.schulz at 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;
More information about the U-Boot
mailing list