Lines Matching refs:wdog

72 	struct watchdog_device wdog;  member
101 static int imx2_wdt_restart(struct watchdog_device *wdog, unsigned long action, in imx2_wdt_restart() argument
104 struct imx2_wdt_device *wdev = watchdog_get_drvdata(wdog); in imx2_wdt_restart()
131 static inline void imx2_wdt_setup(struct watchdog_device *wdog) in imx2_wdt_setup() argument
133 struct imx2_wdt_device *wdev = watchdog_get_drvdata(wdog); in imx2_wdt_setup()
154 val |= WDOG_SEC_TO_COUNT(wdog->timeout); in imx2_wdt_setup()
172 static int imx2_wdt_ping(struct watchdog_device *wdog) in imx2_wdt_ping() argument
174 struct imx2_wdt_device *wdev = watchdog_get_drvdata(wdog); in imx2_wdt_ping()
184 static void __imx2_wdt_set_timeout(struct watchdog_device *wdog, in __imx2_wdt_set_timeout() argument
187 struct imx2_wdt_device *wdev = watchdog_get_drvdata(wdog); in __imx2_wdt_set_timeout()
193 static int imx2_wdt_set_timeout(struct watchdog_device *wdog, in imx2_wdt_set_timeout() argument
199 __imx2_wdt_set_timeout(wdog, actual); in imx2_wdt_set_timeout()
200 wdog->timeout = new_timeout; in imx2_wdt_set_timeout()
204 static int imx2_wdt_set_pretimeout(struct watchdog_device *wdog, in imx2_wdt_set_pretimeout() argument
207 struct imx2_wdt_device *wdev = watchdog_get_drvdata(wdog); in imx2_wdt_set_pretimeout()
212 wdog->pretimeout = new_pretimeout; in imx2_wdt_set_pretimeout()
222 struct watchdog_device *wdog = wdog_arg; in imx2_wdt_isr() local
223 struct imx2_wdt_device *wdev = watchdog_get_drvdata(wdog); in imx2_wdt_isr()
228 watchdog_notify_pretimeout(wdog); in imx2_wdt_isr()
233 static int imx2_wdt_start(struct watchdog_device *wdog) in imx2_wdt_start() argument
235 struct imx2_wdt_device *wdev = watchdog_get_drvdata(wdog); in imx2_wdt_start()
238 imx2_wdt_set_timeout(wdog, wdog->timeout); in imx2_wdt_start()
240 imx2_wdt_setup(wdog); in imx2_wdt_start()
242 set_bit(WDOG_HW_RUNNING, &wdog->status); in imx2_wdt_start()
244 return imx2_wdt_ping(wdog); in imx2_wdt_start()
272 struct watchdog_device *wdog; in imx2_wdt_probe() local
298 wdog = &wdev->wdog; in imx2_wdt_probe()
299 wdog->info = &imx2_wdt_info; in imx2_wdt_probe()
300 wdog->ops = &imx2_wdt_ops; in imx2_wdt_probe()
301 wdog->min_timeout = 1; in imx2_wdt_probe()
302 wdog->timeout = IMX2_WDT_DEFAULT_TIME; in imx2_wdt_probe()
303 wdog->max_hw_heartbeat_ms = IMX2_WDT_MAX_TIME * 1000; in imx2_wdt_probe()
304 wdog->parent = dev; in imx2_wdt_probe()
311 dev_name(dev), wdog)) in imx2_wdt_probe()
312 wdog->info = &imx2_wdt_pretimeout_info; in imx2_wdt_probe()
325 wdog->bootstatus = val & IMX2_WDT_WRSR_TOUT ? WDIOF_CARDRESET : 0; in imx2_wdt_probe()
343 platform_set_drvdata(pdev, wdog); in imx2_wdt_probe()
344 watchdog_set_drvdata(wdog, wdev); in imx2_wdt_probe()
345 watchdog_set_nowayout(wdog, nowayout); in imx2_wdt_probe()
346 watchdog_set_restart_priority(wdog, 128); in imx2_wdt_probe()
347 watchdog_init_timeout(wdog, timeout, dev); in imx2_wdt_probe()
349 watchdog_stop_ping_on_suspend(wdog); in imx2_wdt_probe()
352 imx2_wdt_set_timeout(wdog, wdog->timeout); in imx2_wdt_probe()
353 set_bit(WDOG_HW_RUNNING, &wdog->status); in imx2_wdt_probe()
363 return devm_watchdog_register_device(dev, wdog); in imx2_wdt_probe()
368 struct watchdog_device *wdog = platform_get_drvdata(pdev); in imx2_wdt_shutdown() local
369 struct imx2_wdt_device *wdev = watchdog_get_drvdata(wdog); in imx2_wdt_shutdown()
376 imx2_wdt_set_timeout(wdog, IMX2_WDT_MAX_TIME); in imx2_wdt_shutdown()
377 imx2_wdt_ping(wdog); in imx2_wdt_shutdown()
385 struct watchdog_device *wdog = dev_get_drvdata(dev); in imx2_wdt_suspend() local
386 struct imx2_wdt_device *wdev = watchdog_get_drvdata(wdog); in imx2_wdt_suspend()
394 __imx2_wdt_set_timeout(wdog, IMX2_WDT_MAX_TIME); in imx2_wdt_suspend()
395 imx2_wdt_ping(wdog); in imx2_wdt_suspend()
410 struct watchdog_device *wdog = dev_get_drvdata(dev); in imx2_wdt_resume() local
411 struct imx2_wdt_device *wdev = watchdog_get_drvdata(wdog); in imx2_wdt_resume()
423 if (watchdog_active(wdog) && !imx2_wdt_is_running(wdev)) { in imx2_wdt_resume()
429 imx2_wdt_setup(wdog); in imx2_wdt_resume()
432 imx2_wdt_set_timeout(wdog, wdog->timeout); in imx2_wdt_resume()
433 imx2_wdt_ping(wdog); in imx2_wdt_resume()