Lines Matching refs:wdev
51 struct watchdog_device wdev; member
67 static int rwdt_init_timeout(struct watchdog_device *wdev) in rwdt_init_timeout() argument
69 struct rwdt_priv *priv = watchdog_get_drvdata(wdev); in rwdt_init_timeout()
71 rwdt_write(priv, 65536 - MUL_BY_CLKS_PER_SEC(priv, wdev->timeout), RWTCNT); in rwdt_init_timeout()
85 static int rwdt_start(struct watchdog_device *wdev) in rwdt_start() argument
87 struct rwdt_priv *priv = watchdog_get_drvdata(wdev); in rwdt_start()
90 pm_runtime_get_sync(wdev->parent); in rwdt_start()
98 rwdt_init_timeout(wdev); in rwdt_start()
110 static int rwdt_stop(struct watchdog_device *wdev) in rwdt_stop() argument
112 struct rwdt_priv *priv = watchdog_get_drvdata(wdev); in rwdt_stop()
117 pm_runtime_put(wdev->parent); in rwdt_stop()
122 static unsigned int rwdt_get_timeleft(struct watchdog_device *wdev) in rwdt_get_timeleft() argument
124 struct rwdt_priv *priv = watchdog_get_drvdata(wdev); in rwdt_get_timeleft()
131 static int rwdt_restart(struct watchdog_device *wdev, unsigned long action, in rwdt_restart() argument
134 struct rwdt_priv *priv = watchdog_get_drvdata(wdev); in rwdt_restart()
239 priv->wdev.bootstatus = csra & RWTCSRA_WOVF ? WDIOF_CARDRESET : 0; in rwdt_probe()
261 priv->wdev.info = &rwdt_ident; in rwdt_probe()
262 priv->wdev.ops = &rwdt_ops; in rwdt_probe()
263 priv->wdev.parent = dev; in rwdt_probe()
264 priv->wdev.min_timeout = 1; in rwdt_probe()
265 priv->wdev.max_timeout = DIV_BY_CLKS_PER_SEC(priv, 65536); in rwdt_probe()
266 priv->wdev.timeout = min(priv->wdev.max_timeout, RWDT_DEFAULT_TIMEOUT); in rwdt_probe()
269 watchdog_set_drvdata(&priv->wdev, priv); in rwdt_probe()
270 watchdog_set_nowayout(&priv->wdev, nowayout); in rwdt_probe()
271 watchdog_set_restart_priority(&priv->wdev, 0); in rwdt_probe()
272 watchdog_stop_on_unregister(&priv->wdev); in rwdt_probe()
275 watchdog_init_timeout(&priv->wdev, 0, dev); in rwdt_probe()
280 rwdt_start(&priv->wdev); in rwdt_probe()
281 set_bit(WDOG_HW_RUNNING, &priv->wdev.status); in rwdt_probe()
284 ret = watchdog_register_device(&priv->wdev); in rwdt_probe()
299 watchdog_unregister_device(&priv->wdev); in rwdt_remove()
309 if (watchdog_active(&priv->wdev)) in rwdt_suspend()
310 rwdt_stop(&priv->wdev); in rwdt_suspend()
319 if (watchdog_active(&priv->wdev)) in rwdt_resume()
320 rwdt_start(&priv->wdev); in rwdt_resume()