#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/watchdog.h>
#include <linux/platform_device.h>
#include <linux/stmp3xxx_rtc_wdt.h>
#include <linux/notifier.h>
#include <linux/reboot.h>
#define WDOG_TICK_RATE …
#define STMP3XXX_DEFAULT_TIMEOUT …
#define STMP3XXX_MAX_TIMEOUT …
static int heartbeat = …;
module_param(heartbeat, uint, 0);
MODULE_PARM_DESC(…) …;
static int wdt_start(struct watchdog_device *wdd)
{ … }
static int wdt_stop(struct watchdog_device *wdd)
{ … }
static int wdt_set_timeout(struct watchdog_device *wdd, unsigned new_timeout)
{ … }
static const struct watchdog_info stmp3xxx_wdt_ident = …;
static const struct watchdog_ops stmp3xxx_wdt_ops = …;
static struct watchdog_device stmp3xxx_wdd = …;
static int wdt_notify_sys(struct notifier_block *nb, unsigned long code,
void *unused)
{ … }
static struct notifier_block wdt_notifier = …;
static int stmp3xxx_wdt_probe(struct platform_device *pdev)
{ … }
static void stmp3xxx_wdt_remove(struct platform_device *pdev)
{ … }
static int __maybe_unused stmp3xxx_wdt_suspend(struct device *dev)
{ … }
static int __maybe_unused stmp3xxx_wdt_resume(struct device *dev)
{ … }
static SIMPLE_DEV_PM_OPS(stmp3xxx_wdt_pm_ops,
stmp3xxx_wdt_suspend, stmp3xxx_wdt_resume);
static struct platform_driver stmp3xxx_wdt_driver = …;
module_platform_driver(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;
MODULE_AUTHOR(…) …;