Lines Matching refs:wdt

54 static void __iomem *wdt_addr(struct qcom_wdt *wdt, enum wdt_reg reg)
56 return wdt->base + wdt->layout[reg];
76 struct qcom_wdt *wdt = to_qcom_wdt(wdd);
79 writel(0, wdt_addr(wdt, WDT_EN));
80 writel(1, wdt_addr(wdt, WDT_RST));
81 writel(bark * wdt->rate, wdt_addr(wdt, WDT_BARK_TIME));
82 writel(wdd->timeout * wdt->rate, wdt_addr(wdt, WDT_BITE_TIME));
83 writel(QCOM_WDT_ENABLE, wdt_addr(wdt, WDT_EN));
89 struct qcom_wdt *wdt = to_qcom_wdt(wdd);
91 writel(0, wdt_addr(wdt, WDT_EN));
97 struct qcom_wdt *wdt = to_qcom_wdt(wdd);
99 writel(1, wdt_addr(wdt, WDT_RST));
120 struct qcom_wdt *wdt = to_qcom_wdt(wdd);
127 timeout = 128 * wdt->rate / 1000;
129 writel(0, wdt_addr(wdt, WDT_EN));
130 writel(1, wdt_addr(wdt, WDT_RST));
131 writel(timeout, wdt_addr(wdt, WDT_BARK_TIME));
132 writel(timeout, wdt_addr(wdt, WDT_BITE_TIME));
133 writel(QCOM_WDT_ENABLE, wdt_addr(wdt, WDT_EN));
146 struct qcom_wdt *wdt = to_qcom_wdt(wdd);
148 return (readl(wdt_addr(wdt, WDT_EN)) & QCOM_WDT_ENABLE);
193 struct qcom_wdt *wdt;
207 wdt = devm_kzalloc(dev, sizeof(*wdt), GFP_KERNEL);
208 if (!wdt)
222 wdt->base = devm_ioremap_resource(dev, res);
223 if (IS_ERR(wdt->base))
224 return PTR_ERR(wdt->base);
240 wdt->rate = clk_get_rate(clk);
241 if (wdt->rate == 0 ||
242 wdt->rate > data->max_tick_count) {
251 "wdt_bark", &wdt->wdd);
255 wdt->wdd.info = &qcom_wdt_pt_info;
256 wdt->wdd.pretimeout = 1;
261 wdt->wdd.info = &qcom_wdt_info;
264 wdt->wdd.ops = &qcom_wdt_ops;
265 wdt->wdd.min_timeout = 1;
266 wdt->wdd.max_timeout = data->max_tick_count / wdt->rate;
267 wdt->wdd.parent = dev;
268 wdt->layout = data->offset;
270 if (readl(wdt_addr(wdt, WDT_STS)) & 1)
271 wdt->wdd.bootstatus = WDIOF_CARDRESET;
278 wdt->wdd.timeout = min(wdt->wdd.max_timeout, 30U);
279 watchdog_init_timeout(&wdt->wdd, 0, dev);
287 if (qcom_wdt_is_running(&wdt->wdd)) {
288 qcom_wdt_start(&wdt->wdd);
289 set_bit(WDOG_HW_RUNNING, &wdt->wdd.status);
292 ret = devm_watchdog_register_device(dev, &wdt->wdd);
296 platform_set_drvdata(pdev, wdt);
302 struct qcom_wdt *wdt = dev_get_drvdata(dev);
304 if (watchdog_active(&wdt->wdd))
305 qcom_wdt_stop(&wdt->wdd);
312 struct qcom_wdt *wdt = dev_get_drvdata(dev);
314 if (watchdog_active(&wdt->wdd))
315 qcom_wdt_start(&wdt->wdd);
327 { .compatible = "qcom,kpss-wdt", .data = &match_data_kpss },