Lines Matching refs:wdt

56 	void (*ping)(struct max63xx_wdt *wdt);
57 void (*set)(struct max63xx_wdt *wdt, u8 set);
122 struct max63xx_wdt *wdt = watchdog_get_drvdata(wdd);
124 wdt->ping(wdt);
130 struct max63xx_wdt *wdt = watchdog_get_drvdata(wdd);
132 wdt->set(wdt, wdt->timeout->wdset);
135 if (wdt->timeout->tdelay == 0)
136 wdt->ping(wdt);
142 struct max63xx_wdt *wdt = watchdog_get_drvdata(wdd);
144 wdt->set(wdt, MAX6369_WDSET_DISABLED);
160 static void max63xx_mmap_ping(struct max63xx_wdt *wdt)
164 spin_lock(&wdt->lock);
166 val = __raw_readb(wdt->base);
168 __raw_writeb(val | MAX6369_WDI, wdt->base);
169 __raw_writeb(val & ~MAX6369_WDI, wdt->base);
171 spin_unlock(&wdt->lock);
174 static void max63xx_mmap_set(struct max63xx_wdt *wdt, u8 set)
178 spin_lock(&wdt->lock);
180 val = __raw_readb(wdt->base);
183 __raw_writeb(val, wdt->base);
185 spin_unlock(&wdt->lock);
188 static int max63xx_mmap_init(struct platform_device *p, struct max63xx_wdt *wdt)
190 wdt->base = devm_platform_ioremap_resource(p, 0);
191 if (IS_ERR(wdt->base))
192 return PTR_ERR(wdt->base);
194 spin_lock_init(&wdt->lock);
196 wdt->ping = max63xx_mmap_ping;
197 wdt->set = max63xx_mmap_set;
204 struct max63xx_wdt *wdt;
208 wdt = devm_kzalloc(dev, sizeof(*wdt), GFP_KERNEL);
209 if (!wdt)
217 wdt->timeout = max63xx_select_timeout(table, heartbeat);
218 if (!wdt->timeout) {
224 err = max63xx_mmap_init(pdev, wdt);
228 platform_set_drvdata(pdev, &wdt->wdd);
229 watchdog_set_drvdata(&wdt->wdd, wdt);
231 wdt->wdd.parent = dev;
232 wdt->wdd.timeout = wdt->timeout->twd;
233 wdt->wdd.info = &max63xx_wdt_info;
234 wdt->wdd.ops = &max63xx_wdt_ops;
236 watchdog_set_nowayout(&wdt->wdd, nowayout);
238 err = devm_watchdog_register_device(dev, &wdt->wdd);
243 wdt->timeout->twd, wdt->timeout->tdelay);