mirror of
https://source.denx.de/u-boot/u-boot.git
synced 2026-05-05 04:36:13 +02:00
board: st: stm32mp2: add user button support
Handle user button 2 to force boot with STM32CubeProgrammer. Signed-off-by: Patrick Delaunay <patrick.delaunay@foss.st.com> Signed-off-by: Patrice Chotard <patrice.chotard@foss.st.com>
This commit is contained in:
parent
0272e50b55
commit
331b4cecc2
@ -5,6 +5,7 @@
|
||||
|
||||
#define LOG_CATEGORY LOGC_BOARD
|
||||
|
||||
#include <button.h>
|
||||
#include <config.h>
|
||||
#include <env_internal.h>
|
||||
#include <fdt_support.h>
|
||||
@ -13,10 +14,12 @@
|
||||
#include <misc.h>
|
||||
#include <mmc.h>
|
||||
#include <asm/global_data.h>
|
||||
#include <asm/io.h>
|
||||
#include <asm/arch/sys_proto.h>
|
||||
#include <dm/device.h>
|
||||
#include <dm/ofnode.h>
|
||||
#include <dm/uclass.h>
|
||||
#include <linux/delay.h>
|
||||
|
||||
/*
|
||||
* Get a global data pointer
|
||||
@ -90,10 +93,33 @@ static int setup_led(enum led_state_t cmd)
|
||||
return ret;
|
||||
}
|
||||
|
||||
static void check_user_button(void)
|
||||
{
|
||||
struct udevice *button;
|
||||
int i;
|
||||
|
||||
if (!IS_ENABLED(CONFIG_CMD_STM32PROG) || !IS_ENABLED(CONFIG_BUTTON))
|
||||
return;
|
||||
|
||||
if (button_get_by_label("User-2", &button))
|
||||
return;
|
||||
|
||||
for (i = 0; i < 21; ++i) {
|
||||
if (button_get_state(button) != BUTTON_ON)
|
||||
return;
|
||||
if (i < 20)
|
||||
mdelay(50);
|
||||
}
|
||||
|
||||
log_notice("entering download mode...\n");
|
||||
clrsetbits_le32(TAMP_BOOT_CONTEXT, TAMP_BOOT_FORCED_MASK, BOOT_STM32PROG);
|
||||
}
|
||||
|
||||
/* board dependent setup after realloc */
|
||||
int board_init(void)
|
||||
{
|
||||
setup_led(LEDST_ON);
|
||||
check_user_button();
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -39,12 +39,14 @@ CONFIG_ENV_IS_IN_MMC=y
|
||||
CONFIG_SYS_MMC_ENV_DEV=-1
|
||||
CONFIG_NO_NET=y
|
||||
CONFIG_SYS_64BIT_LBA=y
|
||||
CONFIG_BUTTON=y
|
||||
CONFIG_BUTTON_GPIO=y
|
||||
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_SUPPORT_EMMC_BOOT=y
|
||||
CONFIG_STM32_SDMMC2=y
|
||||
CONFIG_MTD=y
|
||||
CONFIG_USE_SYS_MAX_FLASH_BANKS=y
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user