#include <linux/hwmon-sysfs.h>
#include <linux/jiffies.h>
#include <linux/module.h>
#include <linux/uaccess.h>
#include <linux/watchdog.h>
#define FTS_DEVICE_ID_REG 0x0000
#define FTS_DEVICE_REVISION_REG 0x0001
#define FTS_DEVICE_STATUS_REG 0x0004
#define FTS_SATELLITE_STATUS_REG 0x0005
#define FTS_EVENT_STATUS_REG 0x0006
#define FTS_GLOBAL_CONTROL_REG 0x0007
#define FTS_DEVICE_DETECT_REG_1 0x0C
#define FTS_DEVICE_DETECT_REG_2 0x0D
#define FTS_DEVICE_DETECT_REG_3 0x0E
#define FTS_SENSOR_EVENT_REG 0x0010
#define FTS_FAN_EVENT_REG 0x0014
#define FTS_FAN_PRESENT_REG 0x0015
#define FTS_POWER_ON_TIME_COUNTER_A 0x007A
#define FTS_POWER_ON_TIME_COUNTER_B 0x007B
#define FTS_POWER_ON_TIME_COUNTER_C 0x007C
#define FTS_PAGE_SELECT_REG 0x007F
#define FTS_WATCHDOG_TIME_PRESET 0x000B
#define FTS_WATCHDOG_CONTROL 0x5081
#define FTS_NO_FAN_SENSORS 0x08
#define FTS_NO_TEMP_SENSORS 0x10
#define FTS_NO_VOLT_SENSORS 0x04
static const unsigned short normal_i2c[] = { 0x73, I2C_CLIENT_END };
static const struct i2c_device_id fts_id[] = {
MODULE_DEVICE_TABLE(i2c, fts_id);
enum WATCHDOG_RESOLUTION {