Lines Matching refs:wdt_dev

68 	struct watchdog_device wdt_dev;  member
184 static int mtk_wdt_restart(struct watchdog_device *wdt_dev, in mtk_wdt_restart() argument
187 struct mtk_wdt_dev *mtk_wdt = watchdog_get_drvdata(wdt_dev); in mtk_wdt_restart()
200 static int mtk_wdt_ping(struct watchdog_device *wdt_dev) in mtk_wdt_ping() argument
202 struct mtk_wdt_dev *mtk_wdt = watchdog_get_drvdata(wdt_dev); in mtk_wdt_ping()
210 static int mtk_wdt_set_timeout(struct watchdog_device *wdt_dev, in mtk_wdt_set_timeout() argument
213 struct mtk_wdt_dev *mtk_wdt = watchdog_get_drvdata(wdt_dev); in mtk_wdt_set_timeout()
217 wdt_dev->timeout = timeout; in mtk_wdt_set_timeout()
222 if (wdt_dev->pretimeout) in mtk_wdt_set_timeout()
223 wdt_dev->pretimeout = timeout / 2; in mtk_wdt_set_timeout()
229 reg = WDT_LENGTH_TIMEOUT((timeout - wdt_dev->pretimeout) << 6) in mtk_wdt_set_timeout()
233 mtk_wdt_ping(wdt_dev); in mtk_wdt_set_timeout()
238 static void mtk_wdt_init(struct watchdog_device *wdt_dev) in mtk_wdt_init() argument
240 struct mtk_wdt_dev *mtk_wdt = watchdog_get_drvdata(wdt_dev); in mtk_wdt_init()
246 set_bit(WDOG_HW_RUNNING, &wdt_dev->status); in mtk_wdt_init()
247 mtk_wdt_set_timeout(wdt_dev, wdt_dev->timeout); in mtk_wdt_init()
251 static int mtk_wdt_stop(struct watchdog_device *wdt_dev) in mtk_wdt_stop() argument
253 struct mtk_wdt_dev *mtk_wdt = watchdog_get_drvdata(wdt_dev); in mtk_wdt_stop()
265 static int mtk_wdt_start(struct watchdog_device *wdt_dev) in mtk_wdt_start() argument
268 struct mtk_wdt_dev *mtk_wdt = watchdog_get_drvdata(wdt_dev); in mtk_wdt_start()
272 ret = mtk_wdt_set_timeout(wdt_dev, wdt_dev->timeout); in mtk_wdt_start()
277 if (wdt_dev->pretimeout) in mtk_wdt_start()
368 &mtk_wdt->wdt_dev); in mtk_wdt_probe()
372 mtk_wdt->wdt_dev.info = &mtk_wdt_pt_info; in mtk_wdt_probe()
373 mtk_wdt->wdt_dev.pretimeout = WDT_MAX_TIMEOUT / 2; in mtk_wdt_probe()
378 mtk_wdt->wdt_dev.info = &mtk_wdt_info; in mtk_wdt_probe()
381 mtk_wdt->wdt_dev.ops = &mtk_wdt_ops; in mtk_wdt_probe()
382 mtk_wdt->wdt_dev.timeout = WDT_MAX_TIMEOUT; in mtk_wdt_probe()
383 mtk_wdt->wdt_dev.max_hw_heartbeat_ms = WDT_MAX_TIMEOUT * 1000; in mtk_wdt_probe()
384 mtk_wdt->wdt_dev.min_timeout = WDT_MIN_TIMEOUT; in mtk_wdt_probe()
385 mtk_wdt->wdt_dev.parent = dev; in mtk_wdt_probe()
387 watchdog_init_timeout(&mtk_wdt->wdt_dev, timeout, dev); in mtk_wdt_probe()
388 watchdog_set_nowayout(&mtk_wdt->wdt_dev, nowayout); in mtk_wdt_probe()
389 watchdog_set_restart_priority(&mtk_wdt->wdt_dev, 128); in mtk_wdt_probe()
391 watchdog_set_drvdata(&mtk_wdt->wdt_dev, mtk_wdt); in mtk_wdt_probe()
393 mtk_wdt_init(&mtk_wdt->wdt_dev); in mtk_wdt_probe()
395 watchdog_stop_on_reboot(&mtk_wdt->wdt_dev); in mtk_wdt_probe()
396 err = devm_watchdog_register_device(dev, &mtk_wdt->wdt_dev); in mtk_wdt_probe()
401 mtk_wdt->wdt_dev.timeout, nowayout); in mtk_wdt_probe()
424 if (watchdog_active(&mtk_wdt->wdt_dev)) in mtk_wdt_suspend()
425 mtk_wdt_stop(&mtk_wdt->wdt_dev); in mtk_wdt_suspend()
434 if (watchdog_active(&mtk_wdt->wdt_dev)) { in mtk_wdt_resume()
435 mtk_wdt_start(&mtk_wdt->wdt_dev); in mtk_wdt_resume()
436 mtk_wdt_ping(&mtk_wdt->wdt_dev); in mtk_wdt_resume()