Lines Matching +full:watchdog +full:- +full:timeout +full:- +full:ms
1 // SPDX-License-Identifier: GPL-2.0-only
3 * Intel Atom E6xx Watchdog driver
6 * <alexander.stein@systec-electronic.com>
15 #include <linux/watchdog.h>
48 static unsigned int timeout = DEFAULT_TIME; variable
49 module_param(timeout, uint, 0);
50 MODULE_PARM_DESC(timeout,
51 "Default Watchdog timer setting ("
58 "Watchdog cannot be stopped once started (default="
101 /* Watchdog clock is PCI Clock (33MHz) */ in ie6xx_wdt_set_timeout()
109 preload -= 1; in ie6xx_wdt_set_timeout()
113 /* Set ResetMode & Enable prescaler for range 10ms to 10 min */ in ie6xx_wdt_set_timeout()
128 wdd->timeout = t; in ie6xx_wdt_set_timeout()
134 ie6xx_wdt_set_timeout(wdd, wdd->timeout); in ie6xx_wdt_start()
136 /* Enable the watchdog timer */ in ie6xx_wdt_start()
147 return -1; in ie6xx_wdt_stop()
149 /* Disable the watchdog timer */ in ie6xx_wdt_stop()
158 .identity = "Intel Atom E6xx Watchdog",
232 return -ENODEV; in ie6xx_wdt_probe()
234 if (!request_region(res->start, resource_size(res), pdev->name)) { in ie6xx_wdt_probe()
235 dev_err(&pdev->dev, "Watchdog region 0x%llx already in use!\n", in ie6xx_wdt_probe()
236 (u64)res->start); in ie6xx_wdt_probe()
237 return -EBUSY; in ie6xx_wdt_probe()
240 ie6xx_wdt_data.sch_wdtba = res->start; in ie6xx_wdt_probe()
241 dev_dbg(&pdev->dev, "WDT = 0x%X\n", ie6xx_wdt_data.sch_wdtba); in ie6xx_wdt_probe()
243 ie6xx_wdt_dev.timeout = timeout; in ie6xx_wdt_probe()
245 ie6xx_wdt_dev.parent = &pdev->dev; in ie6xx_wdt_probe()
251 dev_warn(&pdev->dev, in ie6xx_wdt_probe()
252 "Watchdog Timer is Locked (Reg=0x%x)\n", wdtlr); in ie6xx_wdt_probe()
264 release_region(res->start, resource_size(res)); in ie6xx_wdt_probe()
277 release_region(res->start, resource_size(res)); in ie6xx_wdt_remove()
295 if ((timeout < MIN_TIME) || in ie6xx_wdt_init()
296 (timeout > MAX_TIME)) { in ie6xx_wdt_init()
297 pr_err("Watchdog timer: value of timeout %d (dec) " in ie6xx_wdt_init()
299 timeout, MIN_TIME, MAX_TIME); in ie6xx_wdt_init()
300 return -EINVAL; in ie6xx_wdt_init()
314 MODULE_AUTHOR("Alexander Stein <alexander.stein@systec-electronic.com>");
315 MODULE_DESCRIPTION("Intel Atom E6xx Watchdog Device Driver");