Lines Matching refs:wdt_dev
43 struct watchdog_device wdt_dev;
51 static int meson_gxbb_wdt_start(struct watchdog_device *wdt_dev)
53 struct meson_gxbb_wdt *data = watchdog_get_drvdata(wdt_dev);
61 static int meson_gxbb_wdt_stop(struct watchdog_device *wdt_dev)
63 struct meson_gxbb_wdt *data = watchdog_get_drvdata(wdt_dev);
71 static int meson_gxbb_wdt_ping(struct watchdog_device *wdt_dev)
73 struct meson_gxbb_wdt *data = watchdog_get_drvdata(wdt_dev);
80 static int meson_gxbb_wdt_set_timeout(struct watchdog_device *wdt_dev,
83 struct meson_gxbb_wdt *data = watchdog_get_drvdata(wdt_dev);
89 wdt_dev->timeout = timeout;
91 meson_gxbb_wdt_ping(wdt_dev);
98 static unsigned int meson_gxbb_wdt_get_timeleft(struct watchdog_device *wdt_dev)
100 struct meson_gxbb_wdt *data = watchdog_get_drvdata(wdt_dev);
126 if (watchdog_active(&data->wdt_dev))
127 meson_gxbb_wdt_start(&data->wdt_dev);
136 if (watchdog_active(&data->wdt_dev))
137 meson_gxbb_wdt_stop(&data->wdt_dev);
184 data->wdt_dev.parent = dev;
185 data->wdt_dev.info = &meson_gxbb_wdt_info;
186 data->wdt_dev.ops = &meson_gxbb_wdt_ops;
187 data->wdt_dev.max_hw_heartbeat_ms = GXBB_WDT_TCNT_SETUP_MASK;
188 data->wdt_dev.min_timeout = 1;
189 data->wdt_dev.timeout = DEFAULT_TIMEOUT;
190 watchdog_init_timeout(&data->wdt_dev, timeout, dev);
191 watchdog_set_nowayout(&data->wdt_dev, nowayout);
192 watchdog_set_drvdata(&data->wdt_dev, data);
201 set_bit(WDOG_HW_RUNNING, &data->wdt_dev.status);
202 meson_gxbb_wdt_set_timeout(&data->wdt_dev,
214 meson_gxbb_wdt_set_timeout(&data->wdt_dev, data->wdt_dev.timeout);
216 return devm_watchdog_register_device(dev, &data->wdt_dev);