Lines Matching refs:wdt

47 	struct bcm7038_watchdog *wdt = watchdog_get_drvdata(wdog);  in bcm7038_wdt_set_timeout_reg()  local
50 timeout = wdt->rate * wdog->timeout; in bcm7038_wdt_set_timeout_reg()
52 writel(timeout, wdt->base + WDT_TIMEOUT_REG); in bcm7038_wdt_set_timeout_reg()
57 struct bcm7038_watchdog *wdt = watchdog_get_drvdata(wdog); in bcm7038_wdt_ping() local
59 writel(WDT_START_1, wdt->base + WDT_CMD_REG); in bcm7038_wdt_ping()
60 writel(WDT_START_2, wdt->base + WDT_CMD_REG); in bcm7038_wdt_ping()
75 struct bcm7038_watchdog *wdt = watchdog_get_drvdata(wdog); in bcm7038_wdt_stop() local
77 writel(WDT_STOP_1, wdt->base + WDT_CMD_REG); in bcm7038_wdt_stop()
78 writel(WDT_STOP_2, wdt->base + WDT_CMD_REG); in bcm7038_wdt_stop()
96 struct bcm7038_watchdog *wdt = watchdog_get_drvdata(wdog); in bcm7038_wdt_get_timeleft() local
99 time_left = readl(wdt->base + WDT_CMD_REG); in bcm7038_wdt_get_timeleft()
101 return time_left / wdt->rate; in bcm7038_wdt_get_timeleft()
121 struct bcm7038_watchdog *wdt; in bcm7038_wdt_probe() local
125 wdt = devm_kzalloc(dev, sizeof(*wdt), GFP_KERNEL); in bcm7038_wdt_probe()
126 if (!wdt) in bcm7038_wdt_probe()
129 platform_set_drvdata(pdev, wdt); in bcm7038_wdt_probe()
132 wdt->base = devm_ioremap_resource(dev, res); in bcm7038_wdt_probe()
133 if (IS_ERR(wdt->base)) in bcm7038_wdt_probe()
134 return PTR_ERR(wdt->base); in bcm7038_wdt_probe()
136 wdt->clk = devm_clk_get(dev, NULL); in bcm7038_wdt_probe()
138 if (!IS_ERR(wdt->clk)) { in bcm7038_wdt_probe()
139 clk_prepare_enable(wdt->clk); in bcm7038_wdt_probe()
140 wdt->rate = clk_get_rate(wdt->clk); in bcm7038_wdt_probe()
142 if (!wdt->rate) in bcm7038_wdt_probe()
143 wdt->rate = WDT_DEFAULT_RATE; in bcm7038_wdt_probe()
145 wdt->rate = WDT_DEFAULT_RATE; in bcm7038_wdt_probe()
146 wdt->clk = NULL; in bcm7038_wdt_probe()
149 wdt->wdd.info = &bcm7038_wdt_info; in bcm7038_wdt_probe()
150 wdt->wdd.ops = &bcm7038_wdt_ops; in bcm7038_wdt_probe()
151 wdt->wdd.min_timeout = WDT_MIN_TIMEOUT; in bcm7038_wdt_probe()
152 wdt->wdd.timeout = WDT_DEFAULT_TIMEOUT; in bcm7038_wdt_probe()
153 wdt->wdd.max_timeout = 0xffffffff / wdt->rate; in bcm7038_wdt_probe()
154 wdt->wdd.parent = dev; in bcm7038_wdt_probe()
155 watchdog_set_drvdata(&wdt->wdd, wdt); in bcm7038_wdt_probe()
157 err = watchdog_register_device(&wdt->wdd); in bcm7038_wdt_probe()
160 clk_disable_unprepare(wdt->clk); in bcm7038_wdt_probe()
171 struct bcm7038_watchdog *wdt = platform_get_drvdata(pdev); in bcm7038_wdt_remove() local
174 bcm7038_wdt_stop(&wdt->wdd); in bcm7038_wdt_remove()
176 watchdog_unregister_device(&wdt->wdd); in bcm7038_wdt_remove()
177 clk_disable_unprepare(wdt->clk); in bcm7038_wdt_remove()
185 struct bcm7038_watchdog *wdt = dev_get_drvdata(dev); in bcm7038_wdt_suspend() local
187 if (watchdog_active(&wdt->wdd)) in bcm7038_wdt_suspend()
188 return bcm7038_wdt_stop(&wdt->wdd); in bcm7038_wdt_suspend()
195 struct bcm7038_watchdog *wdt = dev_get_drvdata(dev); in bcm7038_wdt_resume() local
197 if (watchdog_active(&wdt->wdd)) in bcm7038_wdt_resume()
198 return bcm7038_wdt_start(&wdt->wdd); in bcm7038_wdt_resume()
209 struct bcm7038_watchdog *wdt = platform_get_drvdata(pdev); in bcm7038_wdt_shutdown() local
211 if (watchdog_active(&wdt->wdd)) in bcm7038_wdt_shutdown()
212 bcm7038_wdt_stop(&wdt->wdd); in bcm7038_wdt_shutdown()