Lines Matching refs:wdt_dev
34 struct watchdog_device wdt_dev;
38 static int meson_gxbb_wdt_start(struct watchdog_device *wdt_dev)
40 struct meson_gxbb_wdt *data = watchdog_get_drvdata(wdt_dev);
48 static int meson_gxbb_wdt_stop(struct watchdog_device *wdt_dev)
50 struct meson_gxbb_wdt *data = watchdog_get_drvdata(wdt_dev);
58 static int meson_gxbb_wdt_ping(struct watchdog_device *wdt_dev)
60 struct meson_gxbb_wdt *data = watchdog_get_drvdata(wdt_dev);
67 static int meson_gxbb_wdt_set_timeout(struct watchdog_device *wdt_dev,
70 struct meson_gxbb_wdt *data = watchdog_get_drvdata(wdt_dev);
76 wdt_dev->timeout = timeout;
78 meson_gxbb_wdt_ping(wdt_dev);
85 static unsigned int meson_gxbb_wdt_get_timeleft(struct watchdog_device *wdt_dev)
87 struct meson_gxbb_wdt *data = watchdog_get_drvdata(wdt_dev);
113 if (watchdog_active(&data->wdt_dev))
114 meson_gxbb_wdt_start(&data->wdt_dev);
123 if (watchdog_active(&data->wdt_dev))
124 meson_gxbb_wdt_stop(&data->wdt_dev);
172 data->wdt_dev.parent = dev;
173 data->wdt_dev.info = &meson_gxbb_wdt_info;
174 data->wdt_dev.ops = &meson_gxbb_wdt_ops;
175 data->wdt_dev.max_hw_heartbeat_ms = GXBB_WDT_TCNT_SETUP_MASK;
176 data->wdt_dev.min_timeout = 1;
177 data->wdt_dev.timeout = DEFAULT_TIMEOUT;
178 watchdog_set_drvdata(&data->wdt_dev, data);
187 meson_gxbb_wdt_set_timeout(&data->wdt_dev, data->wdt_dev.timeout);
189 watchdog_stop_on_reboot(&data->wdt_dev);
190 return devm_watchdog_register_device(dev, &data->wdt_dev);