#include <linux/kernel.h>
#include <linux/device.h>
#include <linux/module.h>
#include <linux/watchdog.h>
#include <linux/platform_device.h>
#include <linux/i2c.h>
#define DEVNAME …
#define BMC_CMD_WD_ON …
#define BMC_CMD_WD_OFF …
#define BMC_CMD_WD_TRIG …
#define BMC_CMD_WD_TIME …
#define BMC_CMD_WD_STATE …
#define BMC_WD_OFF_VAL …
#define BMC_CMD_RST_RSN …
#define BMC_WD_TIMEOUT_MIN …
#define BMC_WD_TIMEOUT_MAX …
static bool nowayout = … WATCHDOG_NOWAYOUT;
module_param(nowayout, bool, 0);
MODULE_PARM_DESC(…) …;
struct menf21bmc_wdt { … };
static int menf21bmc_wdt_set_bootstatus(struct menf21bmc_wdt *data)
{ … }
static int menf21bmc_wdt_start(struct watchdog_device *wdt)
{ … }
static int menf21bmc_wdt_stop(struct watchdog_device *wdt)
{ … }
static int
menf21bmc_wdt_settimeout(struct watchdog_device *wdt, unsigned int timeout)
{ … }
static int menf21bmc_wdt_ping(struct watchdog_device *wdt)
{ … }
static const struct watchdog_info menf21bmc_wdt_info = …;
static const struct watchdog_ops menf21bmc_wdt_ops = …;
static int menf21bmc_wdt_probe(struct platform_device *pdev)
{ … }
static void menf21bmc_wdt_shutdown(struct platform_device *pdev)
{ … }
static struct platform_driver menf21bmc_wdt = …;
module_platform_driver(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_AUTHOR(…) …;
MODULE_LICENSE(…) …;
MODULE_ALIAS(…) …;