17 #include <linux/module.h>
19 #include <linux/types.h>
20 #include <linux/kernel.h>
22 #include <linux/watchdog.h>
24 #include <linux/bitops.h>
28 #include <linux/slab.h>
30 #define DEFAULT_HEARTBEAT 60
31 #define MAX_HEARTBEAT 60
40 #define MAX6369_WDSET (7 << 0)
41 #define MAX6369_WDI (1 << 3)
96 if (value <= table->
twd) {
97 if (nodelay && table->
tdelay == 0)
141 max63xx_wdt_ping(wdd);
162 .identity =
"max63xx Watchdog",
167 .start = max63xx_wdt_start,
168 .stop = max63xx_wdt_stop,
169 .ping = max63xx_wdt_ping,
173 .info = &max63xx_wdt_info,
174 .ops = &max63xx_wdt_ops,
188 current_timeout = max63xx_select_timeout(table,
heartbeat);
190 if (!current_timeout) {
191 dev_err(&pdev->
dev,
"unable to satisfy heartbeat request\n");
195 dev_info(&pdev->
dev,
"using %ds heartbeat with %ds initial delay\n",
196 current_timeout->
twd, current_timeout->
tdelay);
206 watchdog_set_nowayout(&max63xx_wdt_dev, nowayout);
207 watchdog_set_drvdata(&max63xx_wdt_dev, current_timeout);
230 .probe = max63xx_wdt_probe,
232 .id_table = max63xx_id_table,
234 .
name =
"max63xx_wdt",
246 "Watchdog heartbeat period in seconds from 1 to "
251 MODULE_PARM_DESC(nowayout,
"Watchdog cannot be stopped once started (default="
256 "Force selection of a timeout setting without initial delay "
257 "(max6373/74 only, default=0)");