Lines Matching defs:gemini_wdt
63 static void gemini_wdt_stop(struct gemini_wdt_struct *gemini_wdt)
67 __raw_writel(0, gemini_wdt->base + GEMINI_WDCR);
69 clear_bit(WDT_ACTIVE, &gemini_wdt->status);
75 static void gemini_wdt_service(struct gemini_wdt_struct *gemini_wdt)
77 __raw_writel(WDRESTART_MAGIC, gemini_wdt->base + GEMINI_WDRESTART);
81 static void gemini_wdt_start(struct gemini_wdt_struct *gemini_wdt)
85 __raw_writel(timeout * WDT_CLOCK, gemini_wdt->base + GEMINI_WDLOAD);
87 gemini_wdt_service(gemini_wdt);
91 gemini_wdt->base + GEMINI_WDCR);
94 gemini_wdt->base + GEMINI_WDCR);
96 set_bit(WDT_ACTIVE, &gemini_wdt->status);
104 struct gemini_wdt_struct *gemini_wdt = platform_get_drvdata(gemini_wdt_dev);
106 if (test_bit(WDT_ACTIVE, &gemini_wdt->status))
109 file->private_data = gemini_wdt;
111 gemini_wdt_start(gemini_wdt);
119 struct gemini_wdt_struct *gemini_wdt = file->private_data;
122 if (test_bit(WDT_OK_TO_CLOSE, &gemini_wdt->status))
123 gemini_wdt_stop(gemini_wdt);
125 dev_warn(gemini_wdt->dev, "Device closed unexpectedly - timer will not stop\n");
134 struct gemini_wdt_struct *gemini_wdt = file->private_data;
140 gemini_wdt_service(gemini_wdt);
157 gemini_wdt_stop(gemini_wdt);
158 gemini_wdt_start(gemini_wdt);
165 value = __raw_readl(gemini_wdt->base + GEMINI_WDCOUNTER);
177 struct gemini_wdt_struct *gemini_wdt = file->private_data;
183 clear_bit(WDT_OK_TO_CLOSE, &gemini_wdt->status);
191 &gemini_wdt->status);
194 gemini_wdt_service(gemini_wdt);
217 struct gemini_wdt_struct *gemini_wdt = platform_get_drvdata(pdev);
219 gemini_wdt_stop(gemini_wdt);
228 struct gemini_wdt_struct *gemini_wdt;
251 gemini_wdt = kzalloc(sizeof(struct gemini_wdt_struct), GFP_KERNEL);
252 if (!gemini_wdt) {
258 /* Setup gemini_wdt driver structure */
259 gemini_wdt->base = base;
260 gemini_wdt->res = res;
263 platform_set_drvdata(pdev, gemini_wdt);
273 reg = __raw_readw(gemini_wdt->base + GEMINI_WDCR);
277 __raw_writel(reg, gemini_wdt->base + GEMINI_WDCR);
288 kfree(gemini_wdt);
299 struct gemini_wdt_struct *gemini_wdt = platform_get_drvdata(pdev);
304 iounmap(gemini_wdt->base);
305 release_mem_region(gemini_wdt->res->start, resource_size(gemini_wdt->res));
307 kfree(gemini_wdt);
315 struct gemini_wdt_struct *gemini_wdt = platform_get_drvdata(pdev);
318 reg = __raw_readw(gemini_wdt->base + GEMINI_WDCR);
320 __raw_writel(reg, gemini_wdt->base + GEMINI_WDCR);
327 struct gemini_wdt_struct *gemini_wdt = platform_get_drvdata(pdev);
330 if (gemini_wdt->status) {
331 reg = __raw_readw(gemini_wdt->base + GEMINI_WDCR);
333 __raw_writel(reg, gemini_wdt->base + GEMINI_WDCR);