Lines Matching refs:wdev
64 static void omap_wdt_reload(struct omap_wdt_dev *wdev) in omap_wdt_reload() argument
66 void __iomem *base = wdev->base; in omap_wdt_reload()
72 wdev->wdt_trgr_pattern = ~wdev->wdt_trgr_pattern; in omap_wdt_reload()
73 writel_relaxed(wdev->wdt_trgr_pattern, (base + OMAP_WATCHDOG_TGR)); in omap_wdt_reload()
81 static void omap_wdt_enable(struct omap_wdt_dev *wdev) in omap_wdt_enable() argument
83 void __iomem *base = wdev->base; in omap_wdt_enable()
95 static void omap_wdt_disable(struct omap_wdt_dev *wdev) in omap_wdt_disable() argument
97 void __iomem *base = wdev->base; in omap_wdt_disable()
109 static void omap_wdt_set_timer(struct omap_wdt_dev *wdev, in omap_wdt_set_timer() argument
113 void __iomem *base = wdev->base; in omap_wdt_set_timer()
126 struct omap_wdt_dev *wdev = watchdog_get_drvdata(wdog); in omap_wdt_start() local
127 void __iomem *base = wdev->base; in omap_wdt_start()
129 mutex_lock(&wdev->lock); in omap_wdt_start()
131 wdev->omap_wdt_users = true; in omap_wdt_start()
133 pm_runtime_get_sync(wdev->dev); in omap_wdt_start()
140 omap_wdt_disable(wdev); in omap_wdt_start()
150 omap_wdt_set_timer(wdev, wdog->timeout); in omap_wdt_start()
151 omap_wdt_reload(wdev); /* trigger loading of new timeout value */ in omap_wdt_start()
152 omap_wdt_enable(wdev); in omap_wdt_start()
154 mutex_unlock(&wdev->lock); in omap_wdt_start()
161 struct omap_wdt_dev *wdev = watchdog_get_drvdata(wdog); in omap_wdt_stop() local
163 mutex_lock(&wdev->lock); in omap_wdt_stop()
164 omap_wdt_disable(wdev); in omap_wdt_stop()
165 pm_runtime_put_sync(wdev->dev); in omap_wdt_stop()
166 wdev->omap_wdt_users = false; in omap_wdt_stop()
167 mutex_unlock(&wdev->lock); in omap_wdt_stop()
173 struct omap_wdt_dev *wdev = watchdog_get_drvdata(wdog); in omap_wdt_ping() local
175 mutex_lock(&wdev->lock); in omap_wdt_ping()
176 omap_wdt_reload(wdev); in omap_wdt_ping()
177 mutex_unlock(&wdev->lock); in omap_wdt_ping()
185 struct omap_wdt_dev *wdev = watchdog_get_drvdata(wdog); in omap_wdt_set_timeout() local
187 mutex_lock(&wdev->lock); in omap_wdt_set_timeout()
188 omap_wdt_disable(wdev); in omap_wdt_set_timeout()
189 omap_wdt_set_timer(wdev, timeout); in omap_wdt_set_timeout()
190 omap_wdt_enable(wdev); in omap_wdt_set_timeout()
191 omap_wdt_reload(wdev); in omap_wdt_set_timeout()
193 mutex_unlock(&wdev->lock); in omap_wdt_set_timeout()
216 struct omap_wdt_dev *wdev; in omap_wdt_probe() local
224 wdev = devm_kzalloc(&pdev->dev, sizeof(*wdev), GFP_KERNEL); in omap_wdt_probe()
225 if (!wdev) in omap_wdt_probe()
228 wdev->omap_wdt_users = false; in omap_wdt_probe()
229 wdev->dev = &pdev->dev; in omap_wdt_probe()
230 wdev->wdt_trgr_pattern = 0x1234; in omap_wdt_probe()
231 mutex_init(&wdev->lock); in omap_wdt_probe()
235 wdev->base = devm_ioremap_resource(&pdev->dev, res); in omap_wdt_probe()
236 if (IS_ERR(wdev->base)) in omap_wdt_probe()
237 return PTR_ERR(wdev->base); in omap_wdt_probe()
250 watchdog_set_drvdata(omap_wdt, wdev); in omap_wdt_probe()
255 pm_runtime_enable(wdev->dev); in omap_wdt_probe()
256 pm_runtime_get_sync(wdev->dev); in omap_wdt_probe()
265 omap_wdt_disable(wdev); in omap_wdt_probe()
269 pm_runtime_disable(wdev->dev); in omap_wdt_probe()
274 readl_relaxed(wdev->base + OMAP_WATCHDOG_REV) & 0xFF, in omap_wdt_probe()
277 pm_runtime_put_sync(wdev->dev); in omap_wdt_probe()
285 struct omap_wdt_dev *wdev = watchdog_get_drvdata(wdog); in omap_wdt_shutdown() local
287 mutex_lock(&wdev->lock); in omap_wdt_shutdown()
288 if (wdev->omap_wdt_users) { in omap_wdt_shutdown()
289 omap_wdt_disable(wdev); in omap_wdt_shutdown()
290 pm_runtime_put_sync(wdev->dev); in omap_wdt_shutdown()
292 mutex_unlock(&wdev->lock); in omap_wdt_shutdown()
298 struct omap_wdt_dev *wdev = watchdog_get_drvdata(wdog); in omap_wdt_remove() local
300 pm_runtime_disable(wdev->dev); in omap_wdt_remove()
317 struct omap_wdt_dev *wdev = watchdog_get_drvdata(wdog); in omap_wdt_suspend() local
319 mutex_lock(&wdev->lock); in omap_wdt_suspend()
320 if (wdev->omap_wdt_users) { in omap_wdt_suspend()
321 omap_wdt_disable(wdev); in omap_wdt_suspend()
322 pm_runtime_put_sync(wdev->dev); in omap_wdt_suspend()
324 mutex_unlock(&wdev->lock); in omap_wdt_suspend()
332 struct omap_wdt_dev *wdev = watchdog_get_drvdata(wdog); in omap_wdt_resume() local
334 mutex_lock(&wdev->lock); in omap_wdt_resume()
335 if (wdev->omap_wdt_users) { in omap_wdt_resume()
336 pm_runtime_get_sync(wdev->dev); in omap_wdt_resume()
337 omap_wdt_enable(wdev); in omap_wdt_resume()
338 omap_wdt_reload(wdev); in omap_wdt_resume()
340 mutex_unlock(&wdev->lock); in omap_wdt_resume()