Lines Matching refs:wdt
44 static void da9062_set_window_start(struct da9062_watchdog *wdt) in da9062_set_window_start() argument
46 wdt->j_time_stamp = jiffies; in da9062_set_window_start()
49 static void da9062_apply_window_protection(struct da9062_watchdog *wdt) in da9062_apply_window_protection() argument
52 unsigned long timeout = wdt->j_time_stamp + delay; in da9062_apply_window_protection()
59 dev_dbg(wdt->hw->dev, in da9062_apply_window_protection()
77 static int da9062_reset_watchdog_timer(struct da9062_watchdog *wdt) in da9062_reset_watchdog_timer() argument
81 da9062_apply_window_protection(wdt); in da9062_reset_watchdog_timer()
83 ret = regmap_update_bits(wdt->hw->regmap, in da9062_reset_watchdog_timer()
88 da9062_set_window_start(wdt); in da9062_reset_watchdog_timer()
93 static int da9062_wdt_update_timeout_register(struct da9062_watchdog *wdt, in da9062_wdt_update_timeout_register() argument
96 struct da9062 *chip = wdt->hw; in da9062_wdt_update_timeout_register()
99 ret = da9062_reset_watchdog_timer(wdt); in da9062_wdt_update_timeout_register()
111 struct da9062_watchdog *wdt = watchdog_get_drvdata(wdd); in da9062_wdt_start() local
115 selector = da9062_wdt_timeout_to_sel(wdt->wdtdev.timeout); in da9062_wdt_start()
116 ret = da9062_wdt_update_timeout_register(wdt, selector); in da9062_wdt_start()
118 dev_err(wdt->hw->dev, "Watchdog failed to start (err = %d)\n", in da9062_wdt_start()
126 struct da9062_watchdog *wdt = watchdog_get_drvdata(wdd); in da9062_wdt_stop() local
129 ret = da9062_reset_watchdog_timer(wdt); in da9062_wdt_stop()
131 dev_err(wdt->hw->dev, "Failed to ping the watchdog (err = %d)\n", in da9062_wdt_stop()
136 ret = regmap_update_bits(wdt->hw->regmap, in da9062_wdt_stop()
141 dev_err(wdt->hw->dev, "Watchdog failed to stop (err = %d)\n", in da9062_wdt_stop()
149 struct da9062_watchdog *wdt = watchdog_get_drvdata(wdd); in da9062_wdt_ping() local
152 ret = da9062_reset_watchdog_timer(wdt); in da9062_wdt_ping()
154 dev_err(wdt->hw->dev, "Failed to ping the watchdog (err = %d)\n", in da9062_wdt_ping()
163 struct da9062_watchdog *wdt = watchdog_get_drvdata(wdd); in da9062_wdt_set_timeout() local
168 ret = da9062_wdt_update_timeout_register(wdt, selector); in da9062_wdt_set_timeout()
170 dev_err(wdt->hw->dev, "Failed to set watchdog timeout (err = %d)\n", in da9062_wdt_set_timeout()
195 struct da9062_watchdog *wdt; in da9062_wdt_probe() local
201 wdt = devm_kzalloc(&pdev->dev, sizeof(*wdt), GFP_KERNEL); in da9062_wdt_probe()
202 if (!wdt) in da9062_wdt_probe()
205 wdt->hw = chip; in da9062_wdt_probe()
207 wdt->wdtdev.info = &da9062_watchdog_info; in da9062_wdt_probe()
208 wdt->wdtdev.ops = &da9062_watchdog_ops; in da9062_wdt_probe()
209 wdt->wdtdev.min_timeout = DA9062_WDT_MIN_TIMEOUT; in da9062_wdt_probe()
210 wdt->wdtdev.max_timeout = DA9062_WDT_MAX_TIMEOUT; in da9062_wdt_probe()
211 wdt->wdtdev.timeout = DA9062_WDG_DEFAULT_TIMEOUT; in da9062_wdt_probe()
212 wdt->wdtdev.status = WATCHDOG_NOWAYOUT_INIT_STATUS; in da9062_wdt_probe()
213 wdt->wdtdev.parent = &pdev->dev; in da9062_wdt_probe()
215 watchdog_set_drvdata(&wdt->wdtdev, wdt); in da9062_wdt_probe()
216 dev_set_drvdata(&pdev->dev, wdt); in da9062_wdt_probe()
218 ret = watchdog_register_device(&wdt->wdtdev); in da9062_wdt_probe()
220 dev_err(wdt->hw->dev, in da9062_wdt_probe()
225 da9062_set_window_start(wdt); in da9062_wdt_probe()
227 ret = da9062_wdt_ping(&wdt->wdtdev); in da9062_wdt_probe()
229 watchdog_unregister_device(&wdt->wdtdev); in da9062_wdt_probe()
236 struct da9062_watchdog *wdt = dev_get_drvdata(&pdev->dev); in da9062_wdt_remove() local
238 watchdog_unregister_device(&wdt->wdtdev); in da9062_wdt_remove()