[PATCH v2] Nokia RX-51: Enable CONFIG_WDT to remove deprecation warning

Pali Rohár pali at kernel.org
Tue Mar 9 21:19:15 CET 2021


Also convert CONFIG_HW_WATCHDOG to CONFIG_WATCHDOG.

Signed-off-by: Pali Rohár <pali at kernel.org>
---
This patch increase u-boot.bin binary size above maximal limit. So this
patch cannot be applied yet. But it can be applied on top of the LTO
patches. So please put this patch into the queue and include it into
U-Boot after LTO patches are merged.

Changes in v2:
* converted CONFIG_HW_WATCHDOG to CONFIG_WATCHDOG
---
 board/nokia/rx51/rx51.c      | 37 ++++++++++++++++++++++++++++++++----
 configs/nokia_rx51_defconfig |  2 ++
 include/configs/nokia_rx51.h |  3 ---
 3 files changed, 35 insertions(+), 7 deletions(-)

diff --git a/board/nokia/rx51/rx51.c b/board/nokia/rx51/rx51.c
index 7bd5fbd71520..fd3cec8358aa 100644
--- a/board/nokia/rx51/rx51.c
+++ b/board/nokia/rx51/rx51.c
@@ -26,6 +26,7 @@
 #include <env.h>
 #include <init.h>
 #include <watchdog.h>
+#include <wdt.h>
 #include <malloc.h>
 #include <twl4030.h>
 #include <i2c.h>
@@ -487,20 +488,20 @@ static unsigned long int twl_wd_time; /* last time of watchdog reset */
 static unsigned long int twl_i2c_lock;
 
 /*
- * Routine: hw_watchdog_reset
+ * Routine: rx51_watchdog_reset
  * Description: Reset timeout of twl4030 watchdog.
  */
-void hw_watchdog_reset(void)
+static int rx51_watchdog_reset(struct udevice *dev)
 {
 	u8 timeout = 0;
 
 	/* do not reset watchdog too often - max every 4s */
 	if (get_timer(twl_wd_time) < 4 * CONFIG_SYS_HZ)
-		return;
+		return 0;
 
 	/* localy lock twl4030 i2c bus */
 	if (test_and_set_bit(0, &twl_i2c_lock))
-		return;
+		return 0;
 
 	/* read actual watchdog timeout */
 	twl4030_i2c_read_u8(TWL4030_CHIP_PM_RECEIVER,
@@ -517,8 +518,32 @@ void hw_watchdog_reset(void)
 
 	/* localy unlock twl4030 i2c bus */
 	test_and_clear_bit(0, &twl_i2c_lock);
+
+	return 0;
+}
+
+static int rx51_watchdog_start(struct udevice *dev, u64 timeout_ms, ulong flags)
+{
+	return 0;
 }
 
+static int rx51_watchdog_probe(struct udevice *dev)
+{
+	return 0;
+}
+
+static const struct wdt_ops rx51_watchdog_ops = {
+	.start = rx51_watchdog_start,
+	.reset = rx51_watchdog_reset,
+};
+
+U_BOOT_DRIVER(rx51_watchdog) = {
+	.name = "rx51_watchdog",
+	.id = UCLASS_WDT,
+	.ops = &rx51_watchdog_ops,
+	.probe = rx51_watchdog_probe,
+};
+
 /*
  * TWL4030 keypad handler for cfb_console
  */
@@ -722,3 +747,7 @@ U_BOOT_DRVINFOS(rx51_i2c) = {
 	{ "i2c_omap", &rx51_i2c[1] },
 	{ "i2c_omap", &rx51_i2c[2] },
 };
+
+U_BOOT_DRVINFOS(rx51_watchdog) = {
+	{ "rx51_watchdog" },
+};
diff --git a/configs/nokia_rx51_defconfig b/configs/nokia_rx51_defconfig
index 312ca3a1a991..80b18e435105 100644
--- a/configs/nokia_rx51_defconfig
+++ b/configs/nokia_rx51_defconfig
@@ -67,4 +67,6 @@ CONFIG_CFB_CONSOLE=y
 CONFIG_CFB_CONSOLE_ANSI=y
 # CONFIG_VGA_AS_SINGLE_DEVICE is not set
 CONFIG_SPLASH_SCREEN=y
+CONFIG_WATCHDOG_TIMEOUT_MSECS=31000
+CONFIG_WDT=y
 # CONFIG_GZIP is not set
diff --git a/include/configs/nokia_rx51.h b/include/configs/nokia_rx51.h
index 23368de624e1..fe991ea03991 100644
--- a/include/configs/nokia_rx51.h
+++ b/include/configs/nokia_rx51.h
@@ -85,9 +85,6 @@
 
 #define CONFIG_SYS_ONENAND_BASE		ONENAND_MAP
 
-/* Watchdog support */
-#define CONFIG_HW_WATCHDOG
-
 /*
  * Framebuffer
  */
-- 
2.20.1



More information about the U-Boot mailing list