Lines Matching refs:wdt
58 struct bcm7038_watchdog *wdt = watchdog_get_drvdata(wdog); in bcm7038_wdt_set_timeout_reg() local
61 timeout = wdt->rate * wdog->timeout; in bcm7038_wdt_set_timeout_reg()
63 bcm7038_wdt_write(timeout, wdt->base + WDT_TIMEOUT_REG); in bcm7038_wdt_set_timeout_reg()
68 struct bcm7038_watchdog *wdt = watchdog_get_drvdata(wdog); in bcm7038_wdt_ping() local
70 bcm7038_wdt_write(WDT_START_1, wdt->base + WDT_CMD_REG); in bcm7038_wdt_ping()
71 bcm7038_wdt_write(WDT_START_2, wdt->base + WDT_CMD_REG); in bcm7038_wdt_ping()
86 struct bcm7038_watchdog *wdt = watchdog_get_drvdata(wdog); in bcm7038_wdt_stop() local
88 bcm7038_wdt_write(WDT_STOP_1, wdt->base + WDT_CMD_REG); in bcm7038_wdt_stop()
89 bcm7038_wdt_write(WDT_STOP_2, wdt->base + WDT_CMD_REG); in bcm7038_wdt_stop()
107 struct bcm7038_watchdog *wdt = watchdog_get_drvdata(wdog); in bcm7038_wdt_get_timeleft() local
110 time_left = bcm7038_wdt_read(wdt->base + WDT_CMD_REG); in bcm7038_wdt_get_timeleft()
112 return time_left / wdt->rate; in bcm7038_wdt_get_timeleft()
137 struct bcm7038_watchdog *wdt; in bcm7038_wdt_probe() local
140 wdt = devm_kzalloc(dev, sizeof(*wdt), GFP_KERNEL); in bcm7038_wdt_probe()
141 if (!wdt) in bcm7038_wdt_probe()
144 platform_set_drvdata(pdev, wdt); in bcm7038_wdt_probe()
146 wdt->base = devm_platform_ioremap_resource(pdev, 0); in bcm7038_wdt_probe()
147 if (IS_ERR(wdt->base)) in bcm7038_wdt_probe()
148 return PTR_ERR(wdt->base); in bcm7038_wdt_probe()
150 wdt->clk = devm_clk_get(dev, NULL); in bcm7038_wdt_probe()
152 if (!IS_ERR(wdt->clk)) { in bcm7038_wdt_probe()
153 err = clk_prepare_enable(wdt->clk); in bcm7038_wdt_probe()
158 wdt->clk); in bcm7038_wdt_probe()
161 wdt->rate = clk_get_rate(wdt->clk); in bcm7038_wdt_probe()
163 if (!wdt->rate) in bcm7038_wdt_probe()
164 wdt->rate = WDT_DEFAULT_RATE; in bcm7038_wdt_probe()
166 wdt->rate = WDT_DEFAULT_RATE; in bcm7038_wdt_probe()
167 wdt->clk = NULL; in bcm7038_wdt_probe()
170 wdt->wdd.info = &bcm7038_wdt_info; in bcm7038_wdt_probe()
171 wdt->wdd.ops = &bcm7038_wdt_ops; in bcm7038_wdt_probe()
172 wdt->wdd.min_timeout = WDT_MIN_TIMEOUT; in bcm7038_wdt_probe()
173 wdt->wdd.timeout = WDT_DEFAULT_TIMEOUT; in bcm7038_wdt_probe()
174 wdt->wdd.max_timeout = 0xffffffff / wdt->rate; in bcm7038_wdt_probe()
175 wdt->wdd.parent = dev; in bcm7038_wdt_probe()
176 watchdog_set_drvdata(&wdt->wdd, wdt); in bcm7038_wdt_probe()
178 watchdog_stop_on_reboot(&wdt->wdd); in bcm7038_wdt_probe()
179 watchdog_stop_on_unregister(&wdt->wdd); in bcm7038_wdt_probe()
180 err = devm_watchdog_register_device(dev, &wdt->wdd); in bcm7038_wdt_probe()
192 struct bcm7038_watchdog *wdt = dev_get_drvdata(dev); in bcm7038_wdt_suspend() local
194 if (watchdog_active(&wdt->wdd)) in bcm7038_wdt_suspend()
195 return bcm7038_wdt_stop(&wdt->wdd); in bcm7038_wdt_suspend()
202 struct bcm7038_watchdog *wdt = dev_get_drvdata(dev); in bcm7038_wdt_resume() local
204 if (watchdog_active(&wdt->wdd)) in bcm7038_wdt_resume()
205 return bcm7038_wdt_start(&wdt->wdd); in bcm7038_wdt_resume()