si7006.c
#include <linux/init.h>
#include <linux/module.h>
#include <linux/i2c.h>
#include <linux/device/driver.h>
#include <linux/cdev.h>
#include <linux/fs.h>
#include <linux/slab.h>
#include <linux/device/class.h>
/*
GET_SI7006_TMP:宏定义,用于定义获取SI7006温度值的ioctl命令。其中,_IOR表示从设备中读取数
据,'r'表示命令类型,0表示命令序号,int表示传输数据的类型。
GET_SI7006_HUM:宏定义,用于定义获取SI7006湿度值的ioctl命令。与GET_SI7006_TMP类似,1表
示命令序号。
GET_CMD_SIZE(cmd):宏定义,用于获取命令的大小。通过对命令进行右移16位,并与0x3fff进行按位
与运算,获取命令大小的值。
TMP_ADDR:常量定义,表示SI7006温度寄存器的地址。
HUM_ADDR:常量定义,表示SI7006湿度寄存器的地址。
CNAME:常量定义,表示驱动程序中字符设备的名称,这里为"si7006"。
*/
#define GET_SI7006_TMP _IOR('r', 0, int)
#define GET_SI7006_HUM _IOR('r', 1, int)
#define GET_CMD_SIZE(cmd) ((cmd >> 16) &