diff --git a/boot/nuttx/include/mcuboot_config/mcuboot_config.h b/boot/nuttx/include/mcuboot_config/mcuboot_config.h
index 6a8eb22..286a387 100644
--- a/boot/nuttx/include/mcuboot_config/mcuboot_config.h
+++ b/boot/nuttx/include/mcuboot_config/mcuboot_config.h
@@ -181,6 +181,15 @@
  */
 
 #ifdef CONFIG_MCUBOOT_WATCHDOG
+
+#ifndef CONFIG_MCUBOOT_WATCHDOG_DEVPATH
+#  define CONFIG_MCUBOOT_WATCHDOG_DEVPATH "/dev/watchdog0"
+#endif
+
+#ifndef CONFIG_MCUBOOT_WATCHDOG_TIMEOUT
+#  define CONFIG_MCUBOOT_WATCHDOG_TIMEOUT 10000      /* Watchdog timeout in ms */
+#endif
+
 #  define MCUBOOT_WATCHDOG_FEED()       do                           \
                                           {                          \
                                             mcuboot_watchdog_feed(); \
diff --git a/boot/nuttx/include/watchdog/watchdog.h b/boot/nuttx/include/watchdog/watchdog.h
index 01cf31d..b75b7f6 100644
--- a/boot/nuttx/include/watchdog/watchdog.h
+++ b/boot/nuttx/include/watchdog/watchdog.h
@@ -41,4 +41,25 @@
 
 void mcuboot_watchdog_feed(void);
 
+/****************************************************************************
+ * Public Function Prototypes
+ ****************************************************************************/
+
+/****************************************************************************
+ * Name: mcuboot_watchdog_init
+ *
+ * Description:
+ *   Initialize the watchdog timer by setting the trigger timeout and 
+ *   starting it.
+ *
+ * Input Parameters:
+ *   None.
+ *
+ * Returned Value:
+ *   OK on success, ERROR if not.
+ *
+ ****************************************************************************/
+
+int mcuboot_watchdog_init(void);
+
 #endif /* __BOOT_NUTTX_INCLUDE_WATCHDOG_WATCHDOG_H */
diff --git a/boot/nuttx/main.c b/boot/nuttx/main.c
index 8973053..7921aa6 100644
--- a/boot/nuttx/main.c
+++ b/boot/nuttx/main.c
@@ -114,6 +114,15 @@
 
   syslog(LOG_INFO, "*** Booting MCUboot build %s ***\n", CONFIG_MCUBOOT_VERSION);
 
+#ifdef CONFIG_MCUBOOT_WATCHDOG
+  int ret = mcuboot_watchdog_init();
+  if (ret < 0)
+  {
+    syslog(LOG_ERR, "Unable to initialize the watchdog timer\n");
+    FIH_PANIC;
+  }
+#endif
+
   FIH_CALL(boot_go, fih_rc, &rsp);
 
   if (fih_not_eq(fih_rc, FIH_SUCCESS))
diff --git a/boot/nuttx/src/watchdog/watchdog.c b/boot/nuttx/src/watchdog/watchdog.c
index 12f2aee..59f4587 100644
--- a/boot/nuttx/src/watchdog/watchdog.c
+++ b/boot/nuttx/src/watchdog/watchdog.c
@@ -74,3 +74,57 @@
 
   close(fd);
 }
+
+/****************************************************************************
+ * Name: mcuboot_watchdog_init
+ *
+ * Description:
+ *   Initialize the watchdog timer by setting the trigger timeout and 
+ *   starting it.
+ *
+ * Input Parameters:
+ *   None.
+ *
+ * Returned Value:
+ *   OK on success, ERROR if not.
+ *
+ ****************************************************************************/
+
+int mcuboot_watchdog_init(void)
+{
+  int fd;
+  int ret;
+
+  fd = open(CONFIG_MCUBOOT_WATCHDOG_DEVPATH, O_RDONLY);
+  if (fd < 0)
+    {
+      BOOT_LOG_ERR("Failed to open %s", CONFIG_MCUBOOT_WATCHDOG_DEVPATH);
+      goto errout;
+    }
+
+  ret = ioctl(fd, WDIOC_SETTIMEOUT, (unsigned long)CONFIG_MCUBOOT_WATCHDOG_TIMEOUT);
+  if (ret < 0)
+    {
+      int errcode = errno;
+
+      BOOT_LOG_ERR("Failed to set timeout in watchdog device: %d", errcode);
+      goto errout_with_dev;
+    }
+
+  ret = ioctl(fd, WDIOC_START, 0);
+  if (ret < 0)
+    {
+      int errcode = errno;
+
+      BOOT_LOG_ERR("Failed to start watchdog device: %d", errcode);
+      goto errout_with_dev;
+    }
+
+  close(fd);
+  return OK;
+  
+errout_with_dev:
+  close(fd);
+errout:
+  return ERROR;
+}
