#include <linux/clk.h>
#include <linux/init.h>
#include <linux/io.h>
#include <linux/kernel.h>
#include <linux/mfd/syscon.h>
#include <linux/module.h>
#include <linux/of.h>
#include <linux/platform_device.h>
#include <linux/regmap.h>
#include <linux/watchdog.h>
#include <dt-bindings/mfd/st-lpc.h>
#define LPC_LPA_LSB_OFF …
#define LPC_LPA_START_OFF …
#define LPC_WDT_OFF …
static struct watchdog_device st_wdog_dev;
struct st_wdog_syscfg { … };
struct st_wdog { … };
static struct st_wdog_syscfg stih407_syscfg = …;
static const struct of_device_id st_wdog_match[] = …;
MODULE_DEVICE_TABLE(of, st_wdog_match);
static void st_wdog_setup(struct st_wdog *st_wdog, bool enable)
{ … }
static void st_wdog_load_timer(struct st_wdog *st_wdog, unsigned int timeout)
{ … }
static int st_wdog_start(struct watchdog_device *wdd)
{ … }
static int st_wdog_stop(struct watchdog_device *wdd)
{ … }
static int st_wdog_set_timeout(struct watchdog_device *wdd,
unsigned int timeout)
{ … }
static int st_wdog_keepalive(struct watchdog_device *wdd)
{ … }
static const struct watchdog_info st_wdog_info = …;
static const struct watchdog_ops st_wdog_ops = …;
static struct watchdog_device st_wdog_dev = …;
static void st_clk_disable_unprepare(void *data)
{ … }
static int st_wdog_probe(struct platform_device *pdev)
{ … }
static void st_wdog_remove(struct platform_device *pdev)
{ … }
static int st_wdog_suspend(struct device *dev)
{ … }
static int st_wdog_resume(struct device *dev)
{ … }
static DEFINE_SIMPLE_DEV_PM_OPS(st_wdog_pm_ops,
st_wdog_suspend, st_wdog_resume);
static struct platform_driver st_wdog_driver = …;
module_platform_driver(…) …;
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;