Lines Matching refs:wdev

96 	struct imx2_wdt_device *wdev = watchdog_get_drvdata(wdog);  in imx2_wdt_restart()  local
100 if (wdev->ext_reset) in imx2_wdt_restart()
106 regmap_write(wdev->regmap, IMX2_WDT_WCR, wcr_enable); in imx2_wdt_restart()
114 regmap_write(wdev->regmap, IMX2_WDT_WCR, wcr_enable); in imx2_wdt_restart()
115 regmap_write(wdev->regmap, IMX2_WDT_WCR, wcr_enable); in imx2_wdt_restart()
125 struct imx2_wdt_device *wdev = watchdog_get_drvdata(wdog); in imx2_wdt_setup() local
128 regmap_read(wdev->regmap, IMX2_WDT_WCR, &val); in imx2_wdt_setup()
135 if (!wdev->ext_reset) in imx2_wdt_setup()
145 regmap_write(wdev->regmap, IMX2_WDT_WCR, val); in imx2_wdt_setup()
149 regmap_write(wdev->regmap, IMX2_WDT_WCR, val); in imx2_wdt_setup()
152 static inline bool imx2_wdt_is_running(struct imx2_wdt_device *wdev) in imx2_wdt_is_running() argument
156 regmap_read(wdev->regmap, IMX2_WDT_WCR, &val); in imx2_wdt_is_running()
163 struct imx2_wdt_device *wdev = watchdog_get_drvdata(wdog); in imx2_wdt_ping() local
165 if (!wdev->clk_is_on) in imx2_wdt_ping()
168 regmap_write(wdev->regmap, IMX2_WDT_WSR, IMX2_WDT_SEQ1); in imx2_wdt_ping()
169 regmap_write(wdev->regmap, IMX2_WDT_WSR, IMX2_WDT_SEQ2); in imx2_wdt_ping()
176 struct imx2_wdt_device *wdev = watchdog_get_drvdata(wdog); in __imx2_wdt_set_timeout() local
178 regmap_update_bits(wdev->regmap, IMX2_WDT_WCR, IMX2_WDT_WCR_WT, in __imx2_wdt_set_timeout()
196 struct imx2_wdt_device *wdev = watchdog_get_drvdata(wdog); in imx2_wdt_set_pretimeout() local
203 regmap_update_bits(wdev->regmap, IMX2_WDT_WICR, in imx2_wdt_set_pretimeout()
212 struct imx2_wdt_device *wdev = watchdog_get_drvdata(wdog); in imx2_wdt_isr() local
214 regmap_write_bits(wdev->regmap, IMX2_WDT_WICR, in imx2_wdt_isr()
224 struct imx2_wdt_device *wdev = watchdog_get_drvdata(wdog); in imx2_wdt_start() local
226 if (imx2_wdt_is_running(wdev)) in imx2_wdt_start()
260 struct imx2_wdt_device *wdev; in imx2_wdt_probe() local
266 wdev = devm_kzalloc(dev, sizeof(*wdev), GFP_KERNEL); in imx2_wdt_probe()
267 if (!wdev) in imx2_wdt_probe()
274 wdev->regmap = devm_regmap_init_mmio_clk(dev, NULL, base, in imx2_wdt_probe()
276 if (IS_ERR(wdev->regmap)) { in imx2_wdt_probe()
278 return PTR_ERR(wdev->regmap); in imx2_wdt_probe()
281 wdev->clk = devm_clk_get(dev, NULL); in imx2_wdt_probe()
282 if (IS_ERR(wdev->clk)) { in imx2_wdt_probe()
284 return PTR_ERR(wdev->clk); in imx2_wdt_probe()
287 wdog = &wdev->wdog; in imx2_wdt_probe()
301 ret = clk_prepare_enable(wdev->clk); in imx2_wdt_probe()
305 ret = devm_add_action_or_reset(dev, imx2_wdt_action, wdev->clk); in imx2_wdt_probe()
309 wdev->clk_is_on = true; in imx2_wdt_probe()
311 regmap_read(wdev->regmap, IMX2_WDT_WRSR, &val); in imx2_wdt_probe()
314 wdev->ext_reset = of_property_read_bool(dev->of_node, in imx2_wdt_probe()
320 wdev->no_ping = !of_device_is_compatible(dev->of_node, "fsl,imx7d-wdt"); in imx2_wdt_probe()
322 watchdog_set_drvdata(wdog, wdev); in imx2_wdt_probe()
326 if (wdev->no_ping) in imx2_wdt_probe()
329 if (imx2_wdt_is_running(wdev)) { in imx2_wdt_probe()
339 regmap_write(wdev->regmap, IMX2_WDT_WMCR, 0); in imx2_wdt_probe()
347 struct imx2_wdt_device *wdev = watchdog_get_drvdata(wdog); in imx2_wdt_shutdown() local
349 if (imx2_wdt_is_running(wdev)) { in imx2_wdt_shutdown()
364 struct imx2_wdt_device *wdev = watchdog_get_drvdata(wdog); in imx2_wdt_suspend() local
367 if (imx2_wdt_is_running(wdev)) { in imx2_wdt_suspend()
376 if (wdev->no_ping) { in imx2_wdt_suspend()
377 clk_disable_unprepare(wdev->clk); in imx2_wdt_suspend()
379 wdev->clk_is_on = false; in imx2_wdt_suspend()
389 struct imx2_wdt_device *wdev = watchdog_get_drvdata(wdog); in imx2_wdt_resume() local
392 if (wdev->no_ping) { in imx2_wdt_resume()
393 ret = clk_prepare_enable(wdev->clk); in imx2_wdt_resume()
398 wdev->clk_is_on = true; in imx2_wdt_resume()
401 if (watchdog_active(wdog) && !imx2_wdt_is_running(wdev)) { in imx2_wdt_resume()
409 if (imx2_wdt_is_running(wdev)) { in imx2_wdt_resume()