Lines Matching refs:wdev

104 	struct imx2_wdt_device *wdev = watchdog_get_drvdata(wdog);  in imx2_wdt_restart()  local
108 if (wdev->ext_reset) in imx2_wdt_restart()
114 regmap_write(wdev->regmap, IMX2_WDT_WCR, wcr_enable); in imx2_wdt_restart()
122 regmap_write(wdev->regmap, IMX2_WDT_WCR, wcr_enable); in imx2_wdt_restart()
123 regmap_write(wdev->regmap, IMX2_WDT_WCR, wcr_enable); in imx2_wdt_restart()
133 struct imx2_wdt_device *wdev = watchdog_get_drvdata(wdog); in imx2_wdt_setup() local
136 regmap_read(wdev->regmap, IMX2_WDT_WCR, &val); in imx2_wdt_setup()
141 if (wdev->sleep_wait) in imx2_wdt_setup()
146 if (!wdev->ext_reset) in imx2_wdt_setup()
156 regmap_write(wdev->regmap, IMX2_WDT_WCR, val); in imx2_wdt_setup()
160 regmap_write(wdev->regmap, IMX2_WDT_WCR, val); in imx2_wdt_setup()
163 static inline bool imx2_wdt_is_running(struct imx2_wdt_device *wdev) in imx2_wdt_is_running() argument
167 regmap_read(wdev->regmap, IMX2_WDT_WCR, &val); in imx2_wdt_is_running()
174 struct imx2_wdt_device *wdev = watchdog_get_drvdata(wdog); in imx2_wdt_ping() local
176 if (!wdev->clk_is_on) in imx2_wdt_ping()
179 regmap_write(wdev->regmap, IMX2_WDT_WSR, IMX2_WDT_SEQ1); in imx2_wdt_ping()
180 regmap_write(wdev->regmap, IMX2_WDT_WSR, IMX2_WDT_SEQ2); in imx2_wdt_ping()
187 struct imx2_wdt_device *wdev = watchdog_get_drvdata(wdog); in __imx2_wdt_set_timeout() local
189 regmap_update_bits(wdev->regmap, IMX2_WDT_WCR, IMX2_WDT_WCR_WT, in __imx2_wdt_set_timeout()
207 struct imx2_wdt_device *wdev = watchdog_get_drvdata(wdog); in imx2_wdt_set_pretimeout() local
214 regmap_update_bits(wdev->regmap, IMX2_WDT_WICR, in imx2_wdt_set_pretimeout()
223 struct imx2_wdt_device *wdev = watchdog_get_drvdata(wdog); in imx2_wdt_isr() local
225 regmap_write_bits(wdev->regmap, IMX2_WDT_WICR, in imx2_wdt_isr()
235 struct imx2_wdt_device *wdev = watchdog_get_drvdata(wdog); in imx2_wdt_start() local
237 if (imx2_wdt_is_running(wdev)) in imx2_wdt_start()
271 struct imx2_wdt_device *wdev; in imx2_wdt_probe() local
277 wdev = devm_kzalloc(dev, sizeof(*wdev), GFP_KERNEL); in imx2_wdt_probe()
278 if (!wdev) in imx2_wdt_probe()
285 wdev->regmap = devm_regmap_init_mmio_clk(dev, NULL, base, in imx2_wdt_probe()
287 if (IS_ERR(wdev->regmap)) { in imx2_wdt_probe()
289 return PTR_ERR(wdev->regmap); in imx2_wdt_probe()
292 wdev->clk = devm_clk_get(dev, NULL); in imx2_wdt_probe()
293 if (IS_ERR(wdev->clk)) { in imx2_wdt_probe()
295 return PTR_ERR(wdev->clk); in imx2_wdt_probe()
298 wdog = &wdev->wdog; in imx2_wdt_probe()
306 wdev->data = of_device_get_match_data(dev); in imx2_wdt_probe()
314 ret = clk_prepare_enable(wdev->clk); in imx2_wdt_probe()
318 ret = devm_add_action_or_reset(dev, imx2_wdt_action, wdev->clk); in imx2_wdt_probe()
322 wdev->clk_is_on = true; in imx2_wdt_probe()
324 regmap_read(wdev->regmap, IMX2_WDT_WRSR, &val); in imx2_wdt_probe()
327 wdev->ext_reset = of_property_read_bool(dev->of_node, in imx2_wdt_probe()
331 if (!wdev->data->wdw_supported) { in imx2_wdt_probe()
335 wdev->sleep_wait = true; in imx2_wdt_probe()
342 wdev->no_ping = !of_device_is_compatible(dev->of_node, "fsl,imx7d-wdt"); in imx2_wdt_probe()
344 watchdog_set_drvdata(wdog, wdev); in imx2_wdt_probe()
348 if (wdev->no_ping) in imx2_wdt_probe()
351 if (imx2_wdt_is_running(wdev)) { in imx2_wdt_probe()
361 regmap_write(wdev->regmap, IMX2_WDT_WMCR, 0); in imx2_wdt_probe()
369 struct imx2_wdt_device *wdev = watchdog_get_drvdata(wdog); in imx2_wdt_shutdown() local
371 if (imx2_wdt_is_running(wdev)) { in imx2_wdt_shutdown()
386 struct imx2_wdt_device *wdev = watchdog_get_drvdata(wdog); in imx2_wdt_suspend() local
389 if (imx2_wdt_is_running(wdev)) { in imx2_wdt_suspend()
398 if (wdev->no_ping) { in imx2_wdt_suspend()
399 clk_disable_unprepare(wdev->clk); in imx2_wdt_suspend()
401 wdev->clk_is_on = false; in imx2_wdt_suspend()
411 struct imx2_wdt_device *wdev = watchdog_get_drvdata(wdog); in imx2_wdt_resume() local
414 if (wdev->no_ping) { in imx2_wdt_resume()
415 ret = clk_prepare_enable(wdev->clk); in imx2_wdt_resume()
420 wdev->clk_is_on = true; in imx2_wdt_resume()
423 if (watchdog_active(wdog) && !imx2_wdt_is_running(wdev)) { in imx2_wdt_resume()
431 if (imx2_wdt_is_running(wdev)) { in imx2_wdt_resume()