blob: 5582c211f594e03d188a56631446ec94016d9fc0 [file] [log] [blame]
Hauke Mehrtensbc245cc2012-12-05 18:45:58 +01001#ifndef LINUX_BCM47XX_WDT_H_
2#define LINUX_BCM47XX_WDT_H_
3
Hauke Mehrtensf82dedf2013-01-24 18:13:34 +01004#include <linux/notifier.h>
5#include <linux/timer.h>
Hauke Mehrtensbc245cc2012-12-05 18:45:58 +01006#include <linux/types.h>
Hauke Mehrtensf82dedf2013-01-24 18:13:34 +01007#include <linux/watchdog.h>
Hauke Mehrtensbc245cc2012-12-05 18:45:58 +01008
9
10struct bcm47xx_wdt {
11 u32 (*timer_set)(struct bcm47xx_wdt *, u32);
12 u32 (*timer_set_ms)(struct bcm47xx_wdt *, u32);
13 u32 max_timer_ms;
14
15 void *driver_data;
Hauke Mehrtensf82dedf2013-01-24 18:13:34 +010016
17 struct watchdog_device wdd;
18 struct notifier_block notifier;
Rafał Miłecki1cc74952015-01-25 11:40:57 +010019 struct notifier_block restart_handler;
Hauke Mehrtensf82dedf2013-01-24 18:13:34 +010020
21 struct timer_list soft_timer;
22 atomic_t soft_ticks;
Hauke Mehrtensbc245cc2012-12-05 18:45:58 +010023};
24
25static inline void *bcm47xx_wdt_get_drvdata(struct bcm47xx_wdt *wdt)
26{
27 return wdt->driver_data;
28}
29#endif /* LINUX_BCM47XX_WDT_H_ */