Lines Matching defs:wdev

103 	struct imx2_wdt_device *wdev = watchdog_get_drvdata(wdog);
107 if (wdev->ext_reset)
113 regmap_write(wdev->regmap, IMX2_WDT_WCR, wcr_enable);
121 regmap_write(wdev->regmap, IMX2_WDT_WCR, wcr_enable);
122 regmap_write(wdev->regmap, IMX2_WDT_WCR, wcr_enable);
132 struct imx2_wdt_device *wdev = watchdog_get_drvdata(wdog);
135 regmap_read(wdev->regmap, IMX2_WDT_WCR, &val);
140 if (wdev->sleep_wait)
145 if (!wdev->ext_reset)
155 regmap_write(wdev->regmap, IMX2_WDT_WCR, val);
159 regmap_write(wdev->regmap, IMX2_WDT_WCR, val);
162 static inline bool imx2_wdt_is_running(struct imx2_wdt_device *wdev)
166 regmap_read(wdev->regmap, IMX2_WDT_WCR, &val);
173 struct imx2_wdt_device *wdev = watchdog_get_drvdata(wdog);
175 if (!wdev->clk_is_on)
178 regmap_write(wdev->regmap, IMX2_WDT_WSR, IMX2_WDT_SEQ1);
179 regmap_write(wdev->regmap, IMX2_WDT_WSR, IMX2_WDT_SEQ2);
186 struct imx2_wdt_device *wdev = watchdog_get_drvdata(wdog);
188 regmap_update_bits(wdev->regmap, IMX2_WDT_WCR, IMX2_WDT_WCR_WT,
206 struct imx2_wdt_device *wdev = watchdog_get_drvdata(wdog);
213 regmap_update_bits(wdev->regmap, IMX2_WDT_WICR,
222 struct imx2_wdt_device *wdev = watchdog_get_drvdata(wdog);
224 regmap_write_bits(wdev->regmap, IMX2_WDT_WICR,
234 struct imx2_wdt_device *wdev = watchdog_get_drvdata(wdog);
236 if (imx2_wdt_is_running(wdev))
270 struct imx2_wdt_device *wdev;
276 wdev = devm_kzalloc(dev, sizeof(*wdev), GFP_KERNEL);
277 if (!wdev)
284 wdev->regmap = devm_regmap_init_mmio_clk(dev, NULL, base,
286 if (IS_ERR(wdev->regmap)) {
288 return PTR_ERR(wdev->regmap);
291 wdev->clk = devm_clk_get(dev, NULL);
292 if (IS_ERR(wdev->clk)) {
294 return PTR_ERR(wdev->clk);
297 wdog = &wdev->wdog;
305 wdev->data = of_device_get_match_data(dev);
313 ret = clk_prepare_enable(wdev->clk);
317 ret = devm_add_action_or_reset(dev, imx2_wdt_action, wdev->clk);
321 wdev->clk_is_on = true;
323 regmap_read(wdev->regmap, IMX2_WDT_WRSR, &val);
326 wdev->ext_reset = of_property_read_bool(dev->of_node,
330 if (!wdev->data->wdw_supported) {
334 wdev->sleep_wait = true;
341 wdev->no_ping = !of_device_is_compatible(dev->of_node, "fsl,imx7d-wdt");
343 watchdog_set_drvdata(wdog, wdev);
347 if (wdev->no_ping)
350 if (imx2_wdt_is_running(wdev)) {
360 regmap_write(wdev->regmap, IMX2_WDT_WMCR, 0);
368 struct imx2_wdt_device *wdev = watchdog_get_drvdata(wdog);
370 if (imx2_wdt_is_running(wdev)) {
385 struct imx2_wdt_device *wdev = watchdog_get_drvdata(wdog);
388 if (imx2_wdt_is_running(wdev)) {
397 if (wdev->no_ping) {
398 clk_disable_unprepare(wdev->clk);
400 wdev->clk_is_on = false;
410 struct imx2_wdt_device *wdev = watchdog_get_drvdata(wdog);
413 if (wdev->no_ping) {
414 ret = clk_prepare_enable(wdev->clk);
419 wdev->clk_is_on = true;
422 if (watchdog_active(wdog) && !imx2_wdt_is_running(wdev)) {
430 if (imx2_wdt_is_running(wdev)) {