linux/drivers/watchdog/exar_wdt.c

// SPDX-License-Identifier: GPL-2.0+
/*
 *	exar_wdt.c - Driver for the watchdog present in some
 *		     Exar/MaxLinear UART chips like the XR28V38x.
 *
 *	(c) Copyright 2022 D. Müller <[email protected]>.
 *
 */

#define pr_fmt(fmt)

#include <linux/io.h>
#include <linux/list.h>
#include <linux/module.h>
#include <linux/platform_device.h>
#include <linux/slab.h>
#include <linux/watchdog.h>

#define DRV_NAME

static const unsigned short sio_config_ports[] =;
static const unsigned char sio_enter_keys[] =;
#define EXAR_EXIT_KEY

#define EXAR_LDN
#define EXAR_DID
#define EXAR_VID
#define EXAR_WDT
#define EXAR_ACT
#define EXAR_RTBASE

#define EXAR_WDT_LDEV

#define EXAR_VEN_ID
#define EXAR_DEV_382
#define EXAR_DEV_384

/* WDT runtime registers */
#define WDT_CTRL
#define WDT_VAL

#define WDT_UNITS_10MS
#define WDT_UNITS_SEC
#define WDT_UNITS_MIN

/* default WDT control for WDTOUT signal activ / rearm by read */
#define EXAR_WDT_DEF_CONF

struct wdt_pdev_node {};

struct wdt_priv {};

#define WATCHDOG_TIMEOUT

static int timeout =;
module_param(timeout, int, 0);
MODULE_PARM_DESC();

static bool nowayout = WATCHDOG_NOWAYOUT;
module_param(nowayout, bool, 0);
MODULE_PARM_DESC();

static int exar_sio_enter(const unsigned short config_port,
			  const unsigned char key)
{}

static void exar_sio_exit(const unsigned short config_port)
{}

static unsigned char exar_sio_read(const unsigned short config_port,
				   const unsigned char reg)
{}

static void exar_sio_write(const unsigned short config_port,
			   const unsigned char reg, const unsigned char val)
{}

static unsigned short exar_sio_read16(const unsigned short config_port,
				      const unsigned char reg)
{}

static void exar_sio_select_wdt(const unsigned short config_port)
{}

static void exar_wdt_arm(const struct wdt_priv *priv)
{}

static void exar_wdt_disarm(const struct wdt_priv *priv)
{}

static int exar_wdt_start(struct watchdog_device *wdog)
{}

static int exar_wdt_stop(struct watchdog_device *wdog)
{}

static int exar_wdt_keepalive(struct watchdog_device *wdog)
{}

static int exar_wdt_set_timeout(struct watchdog_device *wdog, unsigned int t)
{}

static const struct watchdog_info exar_wdt_info =;

static const struct watchdog_ops exar_wdt_ops =;

static int exar_wdt_config(struct watchdog_device *wdog,
			   const unsigned char conf)
{}

static int __init exar_wdt_probe(struct platform_device *pdev)
{}

static unsigned short __init exar_detect(const unsigned short config_port,
					 const unsigned char key,
					 unsigned short *rt_base)
{}

static struct platform_driver exar_wdt_driver =;

static LIST_HEAD(pdev_list);

static int __init exar_wdt_register(struct wdt_priv *priv, const int idx)
{}

static void exar_wdt_unregister(void)
{}

static int __init exar_wdt_init(void)
{}

static void __exit exar_wdt_exit(void)
{}

module_init();
module_exit(exar_wdt_exit);

MODULE_AUTHOR();
MODULE_DESCRIPTION();
MODULE_LICENSE();