Make it possible to support devices with no buttons
authorPiotr Dymacz <pepe2k@gmail.com>
Thu, 22 Feb 2018 14:11:56 +0000 (15:11 +0100)
committerPiotr Dymacz <pepe2k@gmail.com>
Thu, 22 Feb 2018 14:16:24 +0000 (15:16 +0100)
Signed-off-by: Piotr Dymacz <pepe2k@gmail.com>
u-boot/Makefile
u-boot/board/ar7240/common/common.c
u-boot/common/cmd_custom.c
u-boot/common/main.c
u-boot/include/env_scripts.h

index fb9d8eeb0729fe512cd8054341716d19d3815afb..1801a87bca7f45401d511fb42f6d333b5c48af12 100644 (file)
@@ -157,9 +157,12 @@ define config_init
     $(call echo_yellow,  GPIO reset button:\tnot specified) \
   )
 
-  $(if $(filter $(5),1),
-    $(call echo_yellow,  Button active low:\tyes), \
-    $(call echo_yellow,  Button active low:\tno) \
+  $(if $(5),
+    $(if $(filter $(5),1),
+      $(call echo_yellow,  Button active low:\tyes), \
+      $(call echo_yellow,  Button active low:\tno) \
+    ), \
+    $(call echo_yellow,  Button active low:\tn/a) \
   )
 
   $(if $(filter $(COMPRESSED_UBOOT),1), \
index 941007515717c933042b78be9859cd9c4d3da5a9..1633bb8fb7054437850e7d65569fda09fa586ccb 100644 (file)
@@ -272,7 +272,7 @@ void macaddr_init(u8 *mac_addr)
  */
 int reset_button_status(void)
 {
-#ifdef CONFIG_GPIO_RESET_BTN
+#if defined(CONFIG_GPIO_RESET_BTN)
        u32 gpio;
 
        gpio = qca_soc_reg_read(QCA_GPIO_IN_REG);
index ee4afdde5ea3b552ed6c6895284f7da5665e322a..a1c9908c01d38057e83c01a9bf5a79c51407b1a5 100644 (file)
@@ -248,7 +248,8 @@ U_BOOT_CMD(defenv, 1, 0, do_default_env, "reset environment variables to their d
  * button && echo pressed!
  * button || echo not pressed!
  */
-#if defined(CONFIG_CMD_BUTTON)
+#if defined(CONFIG_CMD_BUTTON) &&\
+    defined(CONFIG_GPIO_RESET_BTN)
 int do_button(cmd_tbl_t * cmdtp, int flag, int argc, char *argv[])
 {
 #if defined(CFG_HUSH_PARSER)
@@ -267,7 +268,7 @@ int do_button(cmd_tbl_t * cmdtp, int flag, int argc, char *argv[])
 
 U_BOOT_CMD(button, 1, 1, do_button,
        "get reset button status\n", NULL);
-#endif /* CONFIG_CMD_BUTTON */
+#endif /* CONFIG_CMD_BUTTON && CONFIG_GPIO_RESET_BTN */
 
 /*
  * Allows to delay execution
index 2d87e62316084e6fd1d2420dd4e2411209fa127e..95cafdf6e45af2c668b11f1e47b791e5adecc645 100644 (file)
@@ -162,7 +162,8 @@ void main_loop(void)
        char *bootcmd;
        int rc = 0;
 
-#if defined(CONFIG_BTN_RECOVERY_SCRIPT)
+#if defined(CONFIG_BTN_RECOVERY_SCRIPT) &&\
+    defined(CONFIG_GPIO_RESET_BTN)
        int stop_boot;
        char *c;
 #endif
@@ -193,7 +194,8 @@ void main_loop(void)
 #endif
 
 /* Recovery mode before normal boot */
-#if defined(CONFIG_BTN_RECOVERY_SCRIPT)
+#if defined(CONFIG_BTN_RECOVERY_SCRIPT) &&\
+    defined(CONFIG_GPIO_RESET_BTN)
        if (reset_button_status()) {
                #if defined(CONFIG_SILENT_CONSOLE)
                if (gd->flags & GD_FLG_SILENT) {
@@ -256,7 +258,7 @@ void main_loop(void)
                         printf_err("recovery script is missing in env!\n\n");
                }
        }
-#endif /* CONFIG_RECOVERY_MODE */
+#endif /* CONFIG_BTN_RECOVERY_SCRIPT && CONFIG_GPIO_RESET_BTN */
 
 #if defined(CONFIG_BOOTDELAY) &&\
           (CONFIG_BOOTDELAY >= 0)
index 513b3ea913e941e0d43a3fb840bf6798adc487c1..ddd023205ce0e9634792125a6d9ddb032e8183b7 100644 (file)
 /*
  * Recovery
  */
-#if defined(CONFIG_BTN_RECOVERY_SCRIPT)
+#if defined(CONFIG_BTN_RECOVERY_SCRIPT) &&\
+    defined(CONFIG_GPIO_RESET_BTN)
 
        #if !defined(CONFIG_CMD_BUTTON) ||\
            !defined(CONFIG_CMD_SLEEP)  ||\
                #error "Commands setexpr, itest, sleep, button and led{on, off} are required for recovery"
        #endif
 
-       #if !defined(CONFIG_GPIO_RESET_BTN)
-               #error "Reset button definition is required for recovery"
-       #endif
-
        #if defined(CONFIG_CMD_HTTPD)
                #define SCRIPT_HTTP_PART_1      \
                "echo - 3s for web based recovery;"
                        "setenv cnt;" \
                "fi\0"
 
-#endif /* CONFIG_BTN_RECOVERY_SCRIPT */
+#endif /* CONFIG_BTN_RECOVERY_SCRIPT && CONFIG_GPIO_RESET_BTN */
 
 #endif /* _ENV_SCRIPTS_H_ */