From: Gireesh Hiremath <gireesh.hirem...@in.bosch.com> read boot mode gpio and set the swi status
Signed-off-by: Gireesh Hiremath <gireesh.hirem...@in.bosch.com> --- board/bosch/guardian/board.c | 16 ++++++++++++++-- include/configs/am335x_guardian.h | 2 +- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/board/bosch/guardian/board.c b/board/bosch/guardian/board.c index 12d047b74b..f14ceaa1f9 100644 --- a/board/bosch/guardian/board.c +++ b/board/bosch/guardian/board.c @@ -15,6 +15,7 @@ #include <i2c.h> #include <led.h> #include <panel.h> +#include <linux/delay.h> #include <asm/global_data.h> #include <power/tps65217.h> #include <spl.h> @@ -205,8 +206,19 @@ static void set_bootmode_env(void) goto err; } - value = dm_gpio_get_value(&boot_mode_desc); - value ? env_set("swi_status", "0") : env_set("swi_status", "1"); + dm_gpio_set_dir_flags(&boot_mode_desc, GPIOD_IS_IN); + udelay(10); + + ret = dm_gpio_get_value(&boot_mode_desc); + if (ret == 0) { + env_set("swi_status", "1"); + } else if (ret == 1) { + env_set("swi_status", "0"); + } else { + printf("swi status gpio error\n"); + goto err; + } + return; err: diff --git a/include/configs/am335x_guardian.h b/include/configs/am335x_guardian.h index 814048bf86..c76f9b26fb 100644 --- a/include/configs/am335x_guardian.h +++ b/include/configs/am335x_guardian.h @@ -64,13 +64,13 @@ "setenv rootflags \"bulk_read,chk_data_crc\"; " \ "setenv ethact usb_ether; " \ "if test \"${swi_status}\" -eq 1; then " \ - "setenv extrabootargs \"swi_attached\"; " \ "if dhcp; then " \ "sleep 1; " \ "if tftp \"${tftp_load_addr}\" \"bootscript.scr\"; then " \ "source \"${tftp_load_addr}\"; " \ "fi; " \ "fi; " \ + "setenv extrabootargs $extrabootargs \"swi_attached\"; " \ "fi;" \ "run bootcmd_ubifs0;\0" \ "altbootcmd=" \ -- 2.20.1