#include <linux/module.h>
#include <linux/moduleparam.h>
#include <linux/types.h>
#include <linux/errno.h>
#include <linux/miscdevice.h>
#include <linux/fs.h>
#include <linux/ioport.h>
#include <linux/timer.h>
#include <linux/completion.h>
#include <linux/jiffies.h>
#include <linux/platform_device.h>
#include <linux/watchdog.h>
#include <linux/io.h>
#include <linux/uaccess.h>
#include <linux/mfd/rdc321x.h>
#define RDC_WDT_MASK …
#define RDC_WDT_EN …
#define RDC_WDT_WTI …
#define RDC_WDT_RST …
#define RDC_WDT_WIF …
#define RDC_WDT_IRT …
#define RDC_WDT_CNT …
#define RDC_CLS_TMR …
#define RDC_WDT_INTERVAL …
static int ticks = …;
static struct { … } rdc321x_wdt_device;
static void rdc321x_wdt_trigger(struct timer_list *unused)
{ … }
static void rdc321x_wdt_reset(void)
{ … }
static void rdc321x_wdt_start(void)
{ … }
static int rdc321x_wdt_stop(void)
{ … }
static int rdc321x_wdt_open(struct inode *inode, struct file *file)
{ … }
static int rdc321x_wdt_release(struct inode *inode, struct file *file)
{ … }
static long rdc321x_wdt_ioctl(struct file *file, unsigned int cmd,
unsigned long arg)
{ … }
static ssize_t rdc321x_wdt_write(struct file *file, const char __user *buf,
size_t count, loff_t *ppos)
{ … }
static const struct file_operations rdc321x_wdt_fops = …;
static struct miscdevice rdc321x_wdt_misc = …;
static int rdc321x_wdt_probe(struct platform_device *pdev)
{ … }
static void rdc321x_wdt_remove(struct platform_device *pdev)
{ … }
static struct platform_driver rdc321x_wdt_driver = …;
module_platform_driver(…) …;
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;