Lines Matching refs:wdev
94 struct imx2_wdt_device *wdev = watchdog_get_drvdata(wdog); in imx2_wdt_restart() local
98 if (wdev->ext_reset) in imx2_wdt_restart()
104 regmap_write(wdev->regmap, IMX2_WDT_WCR, wcr_enable); in imx2_wdt_restart()
112 regmap_write(wdev->regmap, IMX2_WDT_WCR, wcr_enable); in imx2_wdt_restart()
113 regmap_write(wdev->regmap, IMX2_WDT_WCR, wcr_enable); in imx2_wdt_restart()
123 struct imx2_wdt_device *wdev = watchdog_get_drvdata(wdog); in imx2_wdt_setup() local
126 regmap_read(wdev->regmap, IMX2_WDT_WCR, &val); in imx2_wdt_setup()
133 if (!wdev->ext_reset) in imx2_wdt_setup()
143 regmap_write(wdev->regmap, IMX2_WDT_WCR, val); in imx2_wdt_setup()
147 regmap_write(wdev->regmap, IMX2_WDT_WCR, val); in imx2_wdt_setup()
150 static inline bool imx2_wdt_is_running(struct imx2_wdt_device *wdev) in imx2_wdt_is_running() argument
154 regmap_read(wdev->regmap, IMX2_WDT_WCR, &val); in imx2_wdt_is_running()
161 struct imx2_wdt_device *wdev = watchdog_get_drvdata(wdog); in imx2_wdt_ping() local
163 regmap_write(wdev->regmap, IMX2_WDT_WSR, IMX2_WDT_SEQ1); in imx2_wdt_ping()
164 regmap_write(wdev->regmap, IMX2_WDT_WSR, IMX2_WDT_SEQ2); in imx2_wdt_ping()
171 struct imx2_wdt_device *wdev = watchdog_get_drvdata(wdog); in __imx2_wdt_set_timeout() local
173 regmap_update_bits(wdev->regmap, IMX2_WDT_WCR, IMX2_WDT_WCR_WT, in __imx2_wdt_set_timeout()
191 struct imx2_wdt_device *wdev = watchdog_get_drvdata(wdog); in imx2_wdt_set_pretimeout() local
198 regmap_update_bits(wdev->regmap, IMX2_WDT_WICR, in imx2_wdt_set_pretimeout()
207 struct imx2_wdt_device *wdev = watchdog_get_drvdata(wdog); in imx2_wdt_isr() local
209 regmap_write_bits(wdev->regmap, IMX2_WDT_WICR, in imx2_wdt_isr()
219 struct imx2_wdt_device *wdev = watchdog_get_drvdata(wdog); in imx2_wdt_start() local
221 if (imx2_wdt_is_running(wdev)) in imx2_wdt_start()
255 struct imx2_wdt_device *wdev; in imx2_wdt_probe() local
261 wdev = devm_kzalloc(dev, sizeof(*wdev), GFP_KERNEL); in imx2_wdt_probe()
262 if (!wdev) in imx2_wdt_probe()
269 wdev->regmap = devm_regmap_init_mmio_clk(dev, NULL, base, in imx2_wdt_probe()
271 if (IS_ERR(wdev->regmap)) { in imx2_wdt_probe()
273 return PTR_ERR(wdev->regmap); in imx2_wdt_probe()
276 wdev->clk = devm_clk_get(dev, NULL); in imx2_wdt_probe()
277 if (IS_ERR(wdev->clk)) { in imx2_wdt_probe()
279 return PTR_ERR(wdev->clk); in imx2_wdt_probe()
282 wdog = &wdev->wdog; in imx2_wdt_probe()
296 ret = clk_prepare_enable(wdev->clk); in imx2_wdt_probe()
300 ret = devm_add_action_or_reset(dev, imx2_wdt_action, wdev->clk); in imx2_wdt_probe()
304 regmap_read(wdev->regmap, IMX2_WDT_WRSR, &val); in imx2_wdt_probe()
307 wdev->ext_reset = of_property_read_bool(dev->of_node, in imx2_wdt_probe()
310 watchdog_set_drvdata(wdog, wdev); in imx2_wdt_probe()
315 if (imx2_wdt_is_running(wdev)) { in imx2_wdt_probe()
325 regmap_write(wdev->regmap, IMX2_WDT_WMCR, 0); in imx2_wdt_probe()
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()
350 struct imx2_wdt_device *wdev = watchdog_get_drvdata(wdog); in imx2_wdt_suspend() local
353 if (imx2_wdt_is_running(wdev)) { in imx2_wdt_suspend()
362 clk_disable_unprepare(wdev->clk); in imx2_wdt_suspend()
371 struct imx2_wdt_device *wdev = watchdog_get_drvdata(wdog); in imx2_wdt_resume() local
374 ret = clk_prepare_enable(wdev->clk); in imx2_wdt_resume()
378 if (watchdog_active(wdog) && !imx2_wdt_is_running(wdev)) { in imx2_wdt_resume()
386 if (imx2_wdt_is_running(wdev)) { in imx2_wdt_resume()