From: Patrick Delaunay <patrick.delau...@foss.st.com> Add led support, force default state on U-Boot initialization and put on the Linux heartbeat led = "blue-led" during U-Boot execution.
Signed-off-by: Patrick Delaunay <patrick.delau...@foss.st.com> Signed-off-by: Patrice Chotard <patrice.chot...@foss.st.com> --- arch/arm/dts/stm32mp257f-ev1-u-boot.dtsi | 1 + board/st/stm32mp2/stm32mp2.c | 43 ++++++++++++++++++++++++ configs/stm32mp25_defconfig | 2 ++ 3 files changed, 46 insertions(+) diff --git a/arch/arm/dts/stm32mp257f-ev1-u-boot.dtsi b/arch/arm/dts/stm32mp257f-ev1-u-boot.dtsi index d4a75b2f03e..a9bd5e042fa 100644 --- a/arch/arm/dts/stm32mp257f-ev1-u-boot.dtsi +++ b/arch/arm/dts/stm32mp257f-ev1-u-boot.dtsi @@ -7,6 +7,7 @@ / { config { + u-boot,boot-led = "led-blue"; u-boot,mmc-env-partition = "u-boot-env"; }; diff --git a/board/st/stm32mp2/stm32mp2.c b/board/st/stm32mp2/stm32mp2.c index 8446b8fd3d6..576a958c783 100644 --- a/board/st/stm32mp2/stm32mp2.c +++ b/board/st/stm32mp2/stm32mp2.c @@ -8,6 +8,7 @@ #include <config.h> #include <env_internal.h> #include <fdt_support.h> +#include <led.h> #include <log.h> #include <misc.h> #include <mmc.h> @@ -54,9 +55,46 @@ int checkboard(void) return 0; } +static int get_led(struct udevice **dev, char *led_string) +{ + const char *led_name; + int ret; + + led_name = ofnode_conf_read_str(led_string); + if (!led_name) { + log_debug("could not find %s config string\n", led_string); + return -ENOENT; + } + ret = led_get_by_label(led_name, dev); + if (ret) { + log_debug("get=%d\n", ret); + return ret; + } + + return 0; +} + +static int setup_led(enum led_state_t cmd) +{ + struct udevice *dev; + int ret; + + if (!CONFIG_IS_ENABLED(LED)) + return 0; + + ret = get_led(&dev, "u-boot,boot-led"); + if (ret) + return ret; + + ret = led_set_state(dev, cmd); + return ret; +} + /* board dependent setup after realloc */ int board_init(void) { + setup_led(LEDST_ON); + return 0; } @@ -142,3 +180,8 @@ int board_late_init(void) return 0; } + +void board_quiesce_devices(void) +{ + setup_led(LEDST_OFF); +} diff --git a/configs/stm32mp25_defconfig b/configs/stm32mp25_defconfig index fd5c36ec3e2..3d6665335f5 100644 --- a/configs/stm32mp25_defconfig +++ b/configs/stm32mp25_defconfig @@ -43,6 +43,8 @@ CONFIG_GPIO_HOG=y CONFIG_DM_I2C=y CONFIG_SYS_I2C_STM32F7=y CONFIG_SUPPORT_EMMC_BOOT=y +CONFIG_LED=y +CONFIG_LED_GPIO=y CONFIG_STM32_SDMMC2=y CONFIG_MTD=y CONFIG_USE_SYS_MAX_FLASH_BANKS=y -- 2.25.1