#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
#include <linux/module.h>
#include <linux/jiffies.h>
#include <linux/platform_device.h>
#include <linux/hwmon-sysfs.h>
#define DRVNAME "f71882fg"
#define SIO_F71858FG_LD_HWM 0x02
#define SIO_F71882FG_LD_HWM 0x04
#define SIO_UNLOCK_KEY 0x87
#define SIO_LOCK_KEY 0xAA
#define SIO_REG_LDSEL 0x07
#define SIO_REG_DEVID 0x20
#define SIO_REG_DEVREV 0x22
#define SIO_REG_MANID 0x23
#define SIO_REG_ENABLE 0x30
#define SIO_REG_ADDR 0x60
#define SIO_FINTEK_ID 0x1934
#define SIO_F71808E_ID 0x0901
#define SIO_F71808A_ID 0x1001
#define SIO_F71858_ID 0x0507
#define SIO_F71862_ID 0x0601
#define SIO_F71868_ID 0x1106
#define SIO_F71869_ID 0x0814
#define SIO_F71869A_ID 0x1007
#define SIO_F71882_ID 0x0541
#define SIO_F71889_ID 0x0723
#define SIO_F71889E_ID 0x0909
#define SIO_F71889A_ID 0x1005
#define SIO_F8000_ID 0x0581
#define SIO_F81768D_ID 0x1210
#define SIO_F81865_ID 0x0704
#define SIO_F81866_ID 0x1010
#define ADDR_REG_OFFSET 5
#define DATA_REG_OFFSET 6
#define F71882FG_REG_IN_STATUS 0x12
#define F71882FG_REG_IN_BEEP 0x13
#define F71882FG_REG_IN(nr) (0x20 + (nr))
#define F71882FG_REG_IN1_HIGH 0x32
#define F81866_REG_IN_STATUS 0x16
#define F81866_REG_IN_BEEP 0x17