Lines Matching refs:wdt
39 struct bcm7038_watchdog *wdt = watchdog_get_drvdata(wdog);
42 timeout = wdt->rate * wdog->timeout;
44 writel(timeout, wdt->base + WDT_TIMEOUT_REG);
49 struct bcm7038_watchdog *wdt = watchdog_get_drvdata(wdog);
51 writel(WDT_START_1, wdt->base + WDT_CMD_REG);
52 writel(WDT_START_2, wdt->base + WDT_CMD_REG);
67 struct bcm7038_watchdog *wdt = watchdog_get_drvdata(wdog);
69 writel(WDT_STOP_1, wdt->base + WDT_CMD_REG);
70 writel(WDT_STOP_2, wdt->base + WDT_CMD_REG);
88 struct bcm7038_watchdog *wdt = watchdog_get_drvdata(wdog);
91 time_left = readl(wdt->base + WDT_CMD_REG);
93 return time_left / wdt->rate;
118 struct bcm7038_watchdog *wdt;
121 wdt = devm_kzalloc(dev, sizeof(*wdt), GFP_KERNEL);
122 if (!wdt)
125 platform_set_drvdata(pdev, wdt);
127 wdt->base = devm_platform_ioremap_resource(pdev, 0);
128 if (IS_ERR(wdt->base))
129 return PTR_ERR(wdt->base);
131 wdt->clk = devm_clk_get(dev, NULL);
133 if (!IS_ERR(wdt->clk)) {
134 err = clk_prepare_enable(wdt->clk);
139 wdt->clk);
142 wdt->rate = clk_get_rate(wdt->clk);
144 if (!wdt->rate)
145 wdt->rate = WDT_DEFAULT_RATE;
147 wdt->rate = WDT_DEFAULT_RATE;
148 wdt->clk = NULL;
151 wdt->wdd.info = &bcm7038_wdt_info;
152 wdt->wdd.ops = &bcm7038_wdt_ops;
153 wdt->wdd.min_timeout = WDT_MIN_TIMEOUT;
154 wdt->wdd.timeout = WDT_DEFAULT_TIMEOUT;
155 wdt->wdd.max_timeout = 0xffffffff / wdt->rate;
156 wdt->wdd.parent = dev;
157 watchdog_set_drvdata(&wdt->wdd, wdt);
159 watchdog_stop_on_reboot(&wdt->wdd);
160 watchdog_stop_on_unregister(&wdt->wdd);
161 err = devm_watchdog_register_device(dev, &wdt->wdd);
173 struct bcm7038_watchdog *wdt = dev_get_drvdata(dev);
175 if (watchdog_active(&wdt->wdd))
176 return bcm7038_wdt_stop(&wdt->wdd);
183 struct bcm7038_watchdog *wdt = dev_get_drvdata(dev);
185 if (watchdog_active(&wdt->wdd))
186 return bcm7038_wdt_start(&wdt->wdd);
196 { .compatible = "brcm,bcm7038-wdt" },
204 .name = "bcm7038-wdt",