#include <linux/debugfs.h>
#include <linux/delay.h>
#include <linux/err.h>
#include <linux/io.h>
#include <linux/module.h>
#include <linux/of_address.h>
#include <linux/platform_device.h>
#include <linux/watchdog.h>
#define SECWDOG_CTRL_REG …
#define SECWDOG_COUNT_REG …
#define SECWDOG_RESERVED_MASK …
#define SECWDOG_WD_LOAD_FLAG …
#define SECWDOG_EN_MASK …
#define SECWDOG_SRSTEN_MASK …
#define SECWDOG_RES_MASK …
#define SECWDOG_COUNT_MASK …
#define SECWDOG_MAX_COUNT …
#define SECWDOG_CLKS_SHIFT …
#define SECWDOG_MAX_RES …
#define SECWDOG_DEFAULT_RESOLUTION …
#define SECWDOG_MAX_TRY …
#define SECS_TO_TICKS(x, w) …
#define TICKS_TO_SECS(x, w) …
#define BCM_KONA_WDT_NAME …
struct bcm_kona_wdt { … };
static int secure_register_read(struct bcm_kona_wdt *wdt, uint32_t offset)
{ … }
#ifdef CONFIG_BCM_KONA_WDT_DEBUG
static int bcm_kona_show(struct seq_file *s, void *data)
{ … }
DEFINE_SHOW_ATTRIBUTE(…);
static void bcm_kona_wdt_debug_init(struct platform_device *pdev)
{ … }
static void bcm_kona_wdt_debug_exit(struct platform_device *pdev)
{ … }
#else
static void bcm_kona_wdt_debug_init(struct platform_device *pdev) {}
static void bcm_kona_wdt_debug_exit(struct platform_device *pdev) {}
#endif
static int bcm_kona_wdt_ctrl_reg_modify(struct bcm_kona_wdt *wdt,
unsigned mask, unsigned newval)
{ … }
static int bcm_kona_wdt_set_resolution_reg(struct bcm_kona_wdt *wdt)
{ … }
static int bcm_kona_wdt_set_timeout_reg(struct watchdog_device *wdog,
unsigned watchdog_flags)
{ … }
static int bcm_kona_wdt_set_timeout(struct watchdog_device *wdog,
unsigned int t)
{ … }
static unsigned int bcm_kona_wdt_get_timeleft(struct watchdog_device *wdog)
{ … }
static int bcm_kona_wdt_start(struct watchdog_device *wdog)
{ … }
static int bcm_kona_wdt_stop(struct watchdog_device *wdog)
{ … }
static const struct watchdog_ops bcm_kona_wdt_ops = …;
static const struct watchdog_info bcm_kona_wdt_info = …;
static struct watchdog_device bcm_kona_wdt_wdd = …;
static int bcm_kona_wdt_probe(struct platform_device *pdev)
{ … }
static void bcm_kona_wdt_remove(struct platform_device *pdev)
{ … }
static const struct of_device_id bcm_kona_wdt_of_match[] = …;
MODULE_DEVICE_TABLE(of, bcm_kona_wdt_of_match);
static struct platform_driver bcm_kona_wdt_driver = …;
module_platform_driver(…) …;
MODULE_ALIAS(…) …;
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;