Lines Matching refs:wdt

54 	void (*ping)(struct max63xx_wdt *wdt);
55 void (*set)(struct max63xx_wdt *wdt, u8 set);
120 struct max63xx_wdt *wdt = watchdog_get_drvdata(wdd);
122 wdt->ping(wdt);
128 struct max63xx_wdt *wdt = watchdog_get_drvdata(wdd);
130 wdt->set(wdt, wdt->timeout->wdset);
133 if (wdt->timeout->tdelay == 0)
134 wdt->ping(wdt);
140 struct max63xx_wdt *wdt = watchdog_get_drvdata(wdd);
142 wdt->set(wdt, MAX6369_WDSET_DISABLED);
158 static void max63xx_mmap_ping(struct max63xx_wdt *wdt)
162 spin_lock(&wdt->lock);
164 val = __raw_readb(wdt->base);
166 __raw_writeb(val | MAX6369_WDI, wdt->base);
167 __raw_writeb(val & ~MAX6369_WDI, wdt->base);
169 spin_unlock(&wdt->lock);
172 static void max63xx_mmap_set(struct max63xx_wdt *wdt, u8 set)
176 spin_lock(&wdt->lock);
178 val = __raw_readb(wdt->base);
181 __raw_writeb(val, wdt->base);
183 spin_unlock(&wdt->lock);
186 static int max63xx_mmap_init(struct platform_device *p, struct max63xx_wdt *wdt)
188 wdt->base = devm_platform_ioremap_resource(p, 0);
189 if (IS_ERR(wdt->base))
190 return PTR_ERR(wdt->base);
192 spin_lock_init(&wdt->lock);
194 wdt->ping = max63xx_mmap_ping;
195 wdt->set = max63xx_mmap_set;
202 struct max63xx_wdt *wdt;
206 wdt = devm_kzalloc(dev, sizeof(*wdt), GFP_KERNEL);
207 if (!wdt)
218 wdt->timeout = max63xx_select_timeout(table, heartbeat);
219 if (!wdt->timeout) {
225 err = max63xx_mmap_init(pdev, wdt);
229 platform_set_drvdata(pdev, &wdt->wdd);
230 watchdog_set_drvdata(&wdt->wdd, wdt);
232 wdt->wdd.parent = dev;
233 wdt->wdd.timeout = wdt->timeout->twd;
234 wdt->wdd.info = &max63xx_wdt_info;
235 wdt->wdd.ops = &max63xx_wdt_ops;
237 watchdog_set_nowayout(&wdt->wdd, nowayout);
239 err = devm_watchdog_register_device(dev, &wdt->wdd);
244 wdt->timeout->twd, wdt->timeout->tdelay);