Lines Matching refs:wdt

59 	struct bcm7038_watchdog *wdt = watchdog_get_drvdata(wdog);
62 timeout = wdt->rate * wdog->timeout;
64 bcm7038_wdt_write(timeout, wdt->base + WDT_TIMEOUT_REG);
69 struct bcm7038_watchdog *wdt = watchdog_get_drvdata(wdog);
71 bcm7038_wdt_write(WDT_START_1, wdt->base + WDT_CMD_REG);
72 bcm7038_wdt_write(WDT_START_2, wdt->base + WDT_CMD_REG);
87 struct bcm7038_watchdog *wdt = watchdog_get_drvdata(wdog);
89 bcm7038_wdt_write(WDT_STOP_1, wdt->base + WDT_CMD_REG);
90 bcm7038_wdt_write(WDT_STOP_2, wdt->base + WDT_CMD_REG);
108 struct bcm7038_watchdog *wdt = watchdog_get_drvdata(wdog);
111 time_left = bcm7038_wdt_read(wdt->base + WDT_CMD_REG);
113 return time_left / wdt->rate;
134 struct bcm7038_watchdog *wdt;
138 wdt = devm_kzalloc(dev, sizeof(*wdt), GFP_KERNEL);
139 if (!wdt)
142 platform_set_drvdata(pdev, wdt);
144 wdt->base = devm_platform_ioremap_resource(pdev, 0);
145 if (IS_ERR(wdt->base))
146 return PTR_ERR(wdt->base);
151 wdt->clk = devm_clk_get_enabled(dev, clk_name);
153 if (!IS_ERR(wdt->clk)) {
154 wdt->rate = clk_get_rate(wdt->clk);
156 if (!wdt->rate)
157 wdt->rate = WDT_DEFAULT_RATE;
159 wdt->rate = WDT_DEFAULT_RATE;
160 wdt->clk = NULL;
163 wdt->wdd.info = &bcm7038_wdt_info;
164 wdt->wdd.ops = &bcm7038_wdt_ops;
165 wdt->wdd.min_timeout = WDT_MIN_TIMEOUT;
166 wdt->wdd.timeout = WDT_DEFAULT_TIMEOUT;
167 wdt->wdd.max_timeout = 0xffffffff / wdt->rate;
168 wdt->wdd.parent = dev;
169 watchdog_set_drvdata(&wdt->wdd, wdt);
171 watchdog_stop_on_reboot(&wdt->wdd);
172 watchdog_stop_on_unregister(&wdt->wdd);
173 err = devm_watchdog_register_device(dev, &wdt->wdd);
184 struct bcm7038_watchdog *wdt = dev_get_drvdata(dev);
186 if (watchdog_active(&wdt->wdd))
187 return bcm7038_wdt_stop(&wdt->wdd);
194 struct bcm7038_watchdog *wdt = dev_get_drvdata(dev);
196 if (watchdog_active(&wdt->wdd))
197 return bcm7038_wdt_start(&wdt->wdd);
206 { .compatible = "brcm,bcm6345-wdt" },
207 { .compatible = "brcm,bcm7038-wdt" },
213 { .name = "bcm63xx-wdt" },
222 .name = "bcm7038-wdt",