#include <linux/bitops.h>
#include <linux/device.h>
#include <linux/errno.h>
#include <linux/interrupt.h>
#include <linux/math.h>
#include <linux/module.h>
#include <linux/panic.h>
#include <linux/platform_device.h>
#include <linux/types.h>
#include <linux/watchdog.h>
#include <linux/platform_data/intel-mid_wdt.h>
#include <asm/intel_scu_ipc.h>
#define IPC_WATCHDOG …
#define MID_WDT_PRETIMEOUT …
#define MID_WDT_TIMEOUT_MIN …
#define MID_WDT_TIMEOUT_MAX …
#define MID_WDT_DEFAULT_TIMEOUT …
enum { … };
struct mid_wdt { … };
static inline int
wdt_command(struct mid_wdt *mid, int sub, const void *in, size_t inlen, size_t size)
{ … }
static int wdt_start(struct watchdog_device *wd)
{ … }
static int wdt_ping(struct watchdog_device *wd)
{ … }
static int wdt_stop(struct watchdog_device *wd)
{ … }
static irqreturn_t mid_wdt_irq(int irq, void *dev_id)
{ … }
static const struct watchdog_info mid_wdt_info = …;
static const struct watchdog_ops mid_wdt_ops = …;
static int mid_wdt_probe(struct platform_device *pdev)
{ … }
static struct platform_driver mid_wdt_driver = …;
module_platform_driver(…) …;
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;
MODULE_ALIAS(…) …;