Lines Matching refs:wdev
90 struct imx2_wdt_device *wdev = container_of(this, in imx2_restart_handler() local
94 regmap_write(wdev->regmap, IMX2_WDT_WCR, wcr_enable); in imx2_restart_handler()
102 regmap_write(wdev->regmap, IMX2_WDT_WCR, wcr_enable); in imx2_restart_handler()
103 regmap_write(wdev->regmap, IMX2_WDT_WCR, wcr_enable); in imx2_restart_handler()
113 struct imx2_wdt_device *wdev = watchdog_get_drvdata(wdog); in imx2_wdt_setup() local
116 regmap_read(wdev->regmap, IMX2_WDT_WCR, &val); in imx2_wdt_setup()
129 regmap_write(wdev->regmap, IMX2_WDT_WCR, val); in imx2_wdt_setup()
133 regmap_write(wdev->regmap, IMX2_WDT_WCR, val); in imx2_wdt_setup()
136 static inline bool imx2_wdt_is_running(struct imx2_wdt_device *wdev) in imx2_wdt_is_running() argument
140 regmap_read(wdev->regmap, IMX2_WDT_WCR, &val); in imx2_wdt_is_running()
147 struct imx2_wdt_device *wdev = watchdog_get_drvdata(wdog); in imx2_wdt_ping() local
149 regmap_write(wdev->regmap, IMX2_WDT_WSR, IMX2_WDT_SEQ1); in imx2_wdt_ping()
150 regmap_write(wdev->regmap, IMX2_WDT_WSR, IMX2_WDT_SEQ2); in imx2_wdt_ping()
157 struct imx2_wdt_device *wdev = watchdog_get_drvdata(wdog); in imx2_wdt_timer_ping() local
161 mod_timer(&wdev->timer, jiffies + wdog->timeout * HZ / 2); in imx2_wdt_timer_ping()
167 struct imx2_wdt_device *wdev = watchdog_get_drvdata(wdog); in imx2_wdt_set_timeout() local
171 regmap_update_bits(wdev->regmap, IMX2_WDT_WCR, IMX2_WDT_WCR_WT, in imx2_wdt_set_timeout()
178 struct imx2_wdt_device *wdev = watchdog_get_drvdata(wdog); in imx2_wdt_start() local
180 if (imx2_wdt_is_running(wdev)) { in imx2_wdt_start()
182 del_timer_sync(&wdev->timer); in imx2_wdt_start()
202 struct imx2_wdt_device *wdev = watchdog_get_drvdata(wdog); in imx2_wdt_ping_if_active() local
204 if (imx2_wdt_is_running(wdev)) { in imx2_wdt_ping_if_active()
227 struct imx2_wdt_device *wdev; in imx2_wdt_probe() local
234 wdev = devm_kzalloc(&pdev->dev, sizeof(*wdev), GFP_KERNEL); in imx2_wdt_probe()
235 if (!wdev) in imx2_wdt_probe()
243 wdev->regmap = devm_regmap_init_mmio_clk(&pdev->dev, NULL, base, in imx2_wdt_probe()
245 if (IS_ERR(wdev->regmap)) { in imx2_wdt_probe()
247 return PTR_ERR(wdev->regmap); in imx2_wdt_probe()
250 wdev->clk = devm_clk_get(&pdev->dev, NULL); in imx2_wdt_probe()
251 if (IS_ERR(wdev->clk)) { in imx2_wdt_probe()
253 return PTR_ERR(wdev->clk); in imx2_wdt_probe()
256 wdog = &wdev->wdog; in imx2_wdt_probe()
263 ret = clk_prepare_enable(wdev->clk); in imx2_wdt_probe()
267 regmap_read(wdev->regmap, IMX2_WDT_WRSR, &val); in imx2_wdt_probe()
276 watchdog_set_drvdata(wdog, wdev); in imx2_wdt_probe()
280 setup_timer(&wdev->timer, imx2_wdt_timer_ping, (unsigned long)wdog); in imx2_wdt_probe()
289 regmap_write(wdev->regmap, IMX2_WDT_WMCR, 0); in imx2_wdt_probe()
297 wdev->restart_handler.notifier_call = imx2_restart_handler; in imx2_wdt_probe()
298 wdev->restart_handler.priority = 128; in imx2_wdt_probe()
299 ret = register_restart_handler(&wdev->restart_handler); in imx2_wdt_probe()
309 clk_disable_unprepare(wdev->clk); in imx2_wdt_probe()
316 struct imx2_wdt_device *wdev = watchdog_get_drvdata(wdog); in imx2_wdt_remove() local
318 unregister_restart_handler(&wdev->restart_handler); in imx2_wdt_remove()
322 if (imx2_wdt_is_running(wdev)) { in imx2_wdt_remove()
323 del_timer_sync(&wdev->timer); in imx2_wdt_remove()
333 struct imx2_wdt_device *wdev = watchdog_get_drvdata(wdog); in imx2_wdt_shutdown() local
335 if (imx2_wdt_is_running(wdev)) { in imx2_wdt_shutdown()
340 del_timer_sync(&wdev->timer); in imx2_wdt_shutdown()
352 struct imx2_wdt_device *wdev = watchdog_get_drvdata(wdog); in imx2_wdt_suspend() local
355 if (imx2_wdt_is_running(wdev)) { in imx2_wdt_suspend()
361 del_timer_sync(&wdev->timer); in imx2_wdt_suspend()
364 clk_disable_unprepare(wdev->clk); in imx2_wdt_suspend()
373 struct imx2_wdt_device *wdev = watchdog_get_drvdata(wdog); in imx2_wdt_resume() local
376 ret = clk_prepare_enable(wdev->clk); in imx2_wdt_resume()
380 if (watchdog_active(wdog) && !imx2_wdt_is_running(wdev)) { in imx2_wdt_resume()
389 } else if (imx2_wdt_is_running(wdev)) { in imx2_wdt_resume()
398 mod_timer(&wdev->timer, in imx2_wdt_resume()