#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
#include <linux/module.h>
#include <linux/platform_device.h>
#include <linux/watchdog.h>
#include <linux/uaccess.h>
#include "sch56xx-common.h"
static int nowayout = WATCHDOG_NOWAYOUT;
module_param(nowayout, int, 0);
MODULE_PARM_DESC(nowayout, "Watchdog cannot be stopped once started (default="
__MODULE_STRING(WATCHDOG_NOWAYOUT) ")");
#define SIO_SCH56XX_LD_EM 0x0C
#define SIO_UNLOCK_KEY 0x55
#define SIO_LOCK_KEY 0xAA
#define SIO_REG_LDSEL 0x07
#define SIO_REG_DEVID 0x20
#define SIO_REG_ENABLE 0x30
#define SIO_REG_ADDR 0x66
#define SIO_SCH5627_ID 0xC6
#define SIO_SCH5636_ID 0xC7
#define SCH56XX_CMD_READ 0x02
#define SCH56XX_CMD_WRITE 0x03
#define SCH56XX_REG_WDOG_PRESET 0x58B
#define SCH56XX_REG_WDOG_CONTROL 0x58C
#define SCH56XX_WDOG_TIME_BASE_SEC 0x01
#define SCH56XX_REG_WDOG_OUTPUT_ENABLE 0x58E
#define SCH56XX_WDOG_OUTPUT_ENABLE 0x02
struct sch56xx_watchdog_data {
struct watchdog_info wdinfo;
struct watchdog_device wddev;
u8 watchdog_output_enable;
static struct platform_device *sch56xx_pdev;