From d364926da3f9680cbaaabc7f976efe05b62d8c76 Mon Sep 17 00:00:00 2001 From: Gireesh Hiremath Date: Fri, 11 Jun 2021 16:13:43 +0000 Subject: [PATCH] am335x, guardian: update swi logic read boot mode gpio and set the swi status Signed-off-by: Gireesh Hiremath Signed-off-by: Lokesh Vutla Link: https://lore.kernel.org/r/20210611161350.2141-12-Gireesh.Hiremath@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 #include #include +#include #include #include #include @@ -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.39.5