Lines Matching refs:wdt

55 	void (*ping)(struct max63xx_wdt *wdt);
56 void (*set)(struct max63xx_wdt *wdt, u8 set);
121 struct max63xx_wdt *wdt = watchdog_get_drvdata(wdd); in max63xx_wdt_ping() local
123 wdt->ping(wdt); in max63xx_wdt_ping()
129 struct max63xx_wdt *wdt = watchdog_get_drvdata(wdd); in max63xx_wdt_start() local
131 wdt->set(wdt, wdt->timeout->wdset); in max63xx_wdt_start()
134 if (wdt->timeout->tdelay == 0) in max63xx_wdt_start()
135 wdt->ping(wdt); in max63xx_wdt_start()
141 struct max63xx_wdt *wdt = watchdog_get_drvdata(wdd); in max63xx_wdt_stop() local
143 wdt->set(wdt, MAX6369_WDSET_DISABLED); in max63xx_wdt_stop()
159 static void max63xx_mmap_ping(struct max63xx_wdt *wdt) in max63xx_mmap_ping() argument
163 spin_lock(&wdt->lock); in max63xx_mmap_ping()
165 val = __raw_readb(wdt->base); in max63xx_mmap_ping()
167 __raw_writeb(val | MAX6369_WDI, wdt->base); in max63xx_mmap_ping()
168 __raw_writeb(val & ~MAX6369_WDI, wdt->base); in max63xx_mmap_ping()
170 spin_unlock(&wdt->lock); in max63xx_mmap_ping()
173 static void max63xx_mmap_set(struct max63xx_wdt *wdt, u8 set) in max63xx_mmap_set() argument
177 spin_lock(&wdt->lock); in max63xx_mmap_set()
179 val = __raw_readb(wdt->base); in max63xx_mmap_set()
182 __raw_writeb(val, wdt->base); in max63xx_mmap_set()
184 spin_unlock(&wdt->lock); in max63xx_mmap_set()
187 static int max63xx_mmap_init(struct platform_device *p, struct max63xx_wdt *wdt) in max63xx_mmap_init() argument
191 wdt->base = devm_ioremap_resource(&p->dev, mem); in max63xx_mmap_init()
192 if (IS_ERR(wdt->base)) in max63xx_mmap_init()
193 return PTR_ERR(wdt->base); in max63xx_mmap_init()
195 spin_lock_init(&wdt->lock); in max63xx_mmap_init()
197 wdt->ping = max63xx_mmap_ping; in max63xx_mmap_init()
198 wdt->set = max63xx_mmap_set; in max63xx_mmap_init()
204 struct max63xx_wdt *wdt; in max63xx_wdt_probe() local
208 wdt = devm_kzalloc(&pdev->dev, sizeof(*wdt), GFP_KERNEL); in max63xx_wdt_probe()
209 if (!wdt) in max63xx_wdt_probe()
217 wdt->timeout = max63xx_select_timeout(table, heartbeat); in max63xx_wdt_probe()
218 if (!wdt->timeout) { in max63xx_wdt_probe()
224 err = max63xx_mmap_init(pdev, wdt); in max63xx_wdt_probe()
228 platform_set_drvdata(pdev, &wdt->wdd); in max63xx_wdt_probe()
229 watchdog_set_drvdata(&wdt->wdd, wdt); in max63xx_wdt_probe()
231 wdt->wdd.parent = &pdev->dev; in max63xx_wdt_probe()
232 wdt->wdd.timeout = wdt->timeout->twd; in max63xx_wdt_probe()
233 wdt->wdd.info = &max63xx_wdt_info; in max63xx_wdt_probe()
234 wdt->wdd.ops = &max63xx_wdt_ops; in max63xx_wdt_probe()
236 watchdog_set_nowayout(&wdt->wdd, nowayout); in max63xx_wdt_probe()
238 err = watchdog_register_device(&wdt->wdd); in max63xx_wdt_probe()
243 wdt->timeout->twd, wdt->timeout->tdelay); in max63xx_wdt_probe()