Lines Matching refs:wdog
66 struct watchdog_device wdog;
91 static int imx2_wdt_restart(struct watchdog_device *wdog, unsigned long action,
94 struct imx2_wdt_device *wdev = watchdog_get_drvdata(wdog);
121 static inline void imx2_wdt_setup(struct watchdog_device *wdog)
123 struct imx2_wdt_device *wdev = watchdog_get_drvdata(wdog);
141 val |= WDOG_SEC_TO_COUNT(wdog->timeout);
159 static int imx2_wdt_ping(struct watchdog_device *wdog)
161 struct imx2_wdt_device *wdev = watchdog_get_drvdata(wdog);
168 static void __imx2_wdt_set_timeout(struct watchdog_device *wdog,
171 struct imx2_wdt_device *wdev = watchdog_get_drvdata(wdog);
177 static int imx2_wdt_set_timeout(struct watchdog_device *wdog,
183 __imx2_wdt_set_timeout(wdog, actual);
184 wdog->timeout = new_timeout;
188 static int imx2_wdt_set_pretimeout(struct watchdog_device *wdog,
191 struct imx2_wdt_device *wdev = watchdog_get_drvdata(wdog);
196 wdog->pretimeout = new_pretimeout;
206 struct watchdog_device *wdog = wdog_arg;
207 struct imx2_wdt_device *wdev = watchdog_get_drvdata(wdog);
212 watchdog_notify_pretimeout(wdog);
217 static int imx2_wdt_start(struct watchdog_device *wdog)
219 struct imx2_wdt_device *wdev = watchdog_get_drvdata(wdog);
222 imx2_wdt_set_timeout(wdog, wdog->timeout);
224 imx2_wdt_setup(wdog);
226 set_bit(WDOG_HW_RUNNING, &wdog->status);
228 return imx2_wdt_ping(wdog);
256 struct watchdog_device *wdog;
282 wdog = &wdev->wdog;
283 wdog->info = &imx2_wdt_info;
284 wdog->ops = &imx2_wdt_ops;
285 wdog->min_timeout = 1;
286 wdog->timeout = IMX2_WDT_DEFAULT_TIME;
287 wdog->max_hw_heartbeat_ms = IMX2_WDT_MAX_TIME * 1000;
288 wdog->parent = dev;
293 dev_name(dev), wdog))
294 wdog->info = &imx2_wdt_pretimeout_info;
305 wdog->bootstatus = val & IMX2_WDT_WRSR_TOUT ? WDIOF_CARDRESET : 0;
309 platform_set_drvdata(pdev, wdog);
310 watchdog_set_drvdata(wdog, wdev);
311 watchdog_set_nowayout(wdog, nowayout);
312 watchdog_set_restart_priority(wdog, 128);
313 watchdog_init_timeout(wdog, timeout, dev);
316 imx2_wdt_set_timeout(wdog, wdog->timeout);
317 set_bit(WDOG_HW_RUNNING, &wdog->status);
327 return devm_watchdog_register_device(dev, wdog);
332 struct watchdog_device *wdog = platform_get_drvdata(pdev);
333 struct imx2_wdt_device *wdev = watchdog_get_drvdata(wdog);
340 imx2_wdt_set_timeout(wdog, IMX2_WDT_MAX_TIME);
341 imx2_wdt_ping(wdog);
349 struct watchdog_device *wdog = dev_get_drvdata(dev);
350 struct imx2_wdt_device *wdev = watchdog_get_drvdata(wdog);
355 * Don't update wdog->timeout, we'll restore the current value
358 __imx2_wdt_set_timeout(wdog, IMX2_WDT_MAX_TIME);
359 imx2_wdt_ping(wdog);
370 struct watchdog_device *wdog = dev_get_drvdata(dev);
371 struct imx2_wdt_device *wdev = watchdog_get_drvdata(wdog);
378 if (watchdog_active(wdog) && !imx2_wdt_is_running(wdev)) {
384 imx2_wdt_setup(wdog);
387 imx2_wdt_set_timeout(wdog, wdog->timeout);
388 imx2_wdt_ping(wdog);