Commit 726c9f61 authored by Wim Van Sebroeck's avatar Wim Van Sebroeck

[WATCHDOG] at32ap700x_wdt.c - timeout module parameter patch

integrate the timeout/heartbeat as a module parameter and not as
a CONFIG_* value.
Signed-off-by: default avatarHans-Christian Egtvedt <hcegtvedt@atmel.com>
Cc: Haavard Skinnemoen <hskinnemoen@atmel.com>
Signed-off-by: default avatarWim Van Sebroeck <wim@iguana.be>
Cc: Andrew Morton <akpm@linux-foundation.org>
parent c0ead7e0
...@@ -196,17 +196,6 @@ config AT32AP700X_WDT ...@@ -196,17 +196,6 @@ config AT32AP700X_WDT
Watchdog timer embedded into AT32AP700x devices. This will reboot Watchdog timer embedded into AT32AP700x devices. This will reboot
your system when the timeout is reached. your system when the timeout is reached.
config AT32AP700X_WDT_TIMEOUT
int "Timeout value for AT32AP700x watchdog"
depends on AT32AP700X_WDT
default "2"
range 1 2
help
Sets the timeout value for the watchdog in AT32AP700x devices.
Limited by hardware to be 1 or 2 seconds.
Set to 2 seconds by default.
# X86 (i386 + ia64 + x86_64) Architecture # X86 (i386 + ia64 + x86_64) Architecture
config ACQUIRE_WDT config ACQUIRE_WDT
......
...@@ -20,8 +20,15 @@ ...@@ -20,8 +20,15 @@
#include <linux/io.h> #include <linux/io.h>
#define TIMEOUT_MIN 1 #define TIMEOUT_MIN 1
#define TIMEOUT_DEFAULT CONFIG_AT32AP700X_WDT_TIMEOUT
#define TIMEOUT_MAX 2 #define TIMEOUT_MAX 2
#define TIMEOUT_DEFAULT TIMEOUT_MAX
/* module parameters */
static int timeout = TIMEOUT_DEFAULT;
module_param(timeout, int, 0);
MODULE_PARM_DESC(timeout,
"Timeout value. Limited to be 1 or 2 seconds. (default="
__MODULE_STRING(TIMEOUT_DEFAULT) ")");
/* Watchdog registers and write/read macro */ /* Watchdog registers and write/read macro */
#define WDT_CTRL 0x00 #define WDT_CTRL 0x00
...@@ -233,11 +240,11 @@ static int __init at32_wdt_probe(struct platform_device *pdev) ...@@ -233,11 +240,11 @@ static int __init at32_wdt_probe(struct platform_device *pdev)
wdt->miscdev.name = "watchdog"; wdt->miscdev.name = "watchdog";
wdt->miscdev.fops = &at32_wdt_fops; wdt->miscdev.fops = &at32_wdt_fops;
if (at32_wdt_settimeout(TIMEOUT_DEFAULT)) { if (at32_wdt_settimeout(timeout)) {
at32_wdt_settimeout(TIMEOUT_MAX); at32_wdt_settimeout(TIMEOUT_DEFAULT);
dev_dbg(&pdev->dev, dev_dbg(&pdev->dev,
"default timeout invalid, set to %d sec.\n", "default timeout invalid, set to %d sec.\n",
TIMEOUT_MAX); TIMEOUT_DEFAULT);
} }
ret = misc_register(&wdt->miscdev); ret = misc_register(&wdt->miscdev);
...@@ -248,7 +255,8 @@ static int __init at32_wdt_probe(struct platform_device *pdev) ...@@ -248,7 +255,8 @@ static int __init at32_wdt_probe(struct platform_device *pdev)
platform_set_drvdata(pdev, wdt); platform_set_drvdata(pdev, wdt);
wdt->miscdev.parent = &pdev->dev; wdt->miscdev.parent = &pdev->dev;
dev_info(&pdev->dev, "AT32AP700X WDT at 0x%p\n", wdt->regs); dev_info(&pdev->dev, "AT32AP700X WDT at 0x%p, timeout %d sec\n",
wdt->regs, wdt->timeout);
return 0; return 0;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment