#include <linux/delay.h>
#include <linux/io.h>
#include <linux/isa.h>
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/moduleparam.h>
#include <linux/watchdog.h>
#define DRIVER_NAME …
#define EC_BASE_ADDR …
#define EC_ADDR_EXTENT …
#define EC_MIN_DELAY …
#define EC_ADDR_CMD …
#define EC_ADDR_DATA …
#define EC_CMD_EC_PROBE …
#define EC_CMD_COMM …
#define EC_CMD_WDT_START …
#define EC_CMD_WDT_STOP …
#define EC_CMD_WDT_RESET …
#define EC_DAT_EN_DLY_H …
#define EC_DAT_EN_DLY_L …
#define EC_DAT_RST_DLY_H …
#define EC_DAT_RST_DLY_L …
#define EC_MAGIC …
#define MIN_TIME …
#define MAX_TIME …
#define DEFAULT_TIME …
static unsigned int timeout;
static ktime_t ec_timestamp;
module_param(timeout, uint, 0);
MODULE_PARM_DESC(…) …;
static void adv_ec_wdt_timing_gate(void)
{ … }
static void adv_ec_wdt_outb(unsigned char value, unsigned short port)
{ … }
static unsigned char adv_ec_wdt_inb(unsigned short port)
{ … }
static int adv_ec_wdt_ping(struct watchdog_device *wdd)
{ … }
static int adv_ec_wdt_set_timeout(struct watchdog_device *wdd, unsigned int t)
{ … }
static int adv_ec_wdt_start(struct watchdog_device *wdd)
{ … }
static int adv_ec_wdt_stop(struct watchdog_device *wdd)
{ … }
static const struct watchdog_info adv_ec_wdt_info = …;
static const struct watchdog_ops adv_ec_wdt_ops = …;
static struct watchdog_device adv_ec_wdt_dev = …;
static int adv_ec_wdt_probe(struct device *dev, unsigned int id)
{ … }
static struct isa_driver adv_ec_wdt_driver = …;
static int __init adv_ec_wdt_init(void)
{ … }
static void __exit adv_ec_wdt_exit(void)
{ … }
module_init(…) …;
module_exit(adv_ec_wdt_exit);
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;
MODULE_VERSION(…) …;
MODULE_ALIAS(…) …;