![Rank: 8](images/default/star_level3.gif) ![Rank: 8](images/default/star_level3.gif)
- UID
- 872238
|
![](http://images.eccn.com/silabs/silicon_chip_980x60_202203.jpg)
因此我们的驱动程序的开发主要集中在TMP75设备驱动程序这一层,用来实现针对TMP75设备的数据格式的解释以及实现一些专用的功能。
根据TMP75的具体寄存器地址和功能定义:
#define TMP75_REG_TEMP 0x00 //温度寄存器地址
#define TMP75_REG_CONF 0x01 //配置寄存器地址
#define TMP75_REG_TEMP_LOW 0x02 //低温阈值寄存器地址
#define TMP75_REG_TEMP_HIGH 0x03 //高温阈值寄存器地址
定义一个TMP75_data结构体和一系列函数实现总线初始化时的设备检测加载、设备删除时的数据操作。
struct TMP75_data {
struct i2c_client client;
struct semaphore update_lock;
char valid; /* !=0 if following fields are valid */
unsigned long last_updated; /* In jiffies */
u16 temp_input; /* Register values */
u16 temp_max;
u16 temp_hyst;
};
static int TMP 75_attach_adapter(struct i2c_adapter *adapter);
static int TMP 75_detect(struct i2c_adapter *adapter,int address,int kind);
static void TMP 75_init_client(struct i2c_client *client);
static int TMP 75_detach_client(struct i2c_client *client);
static int TMP 75_read_value(struct i2c_client *client,u8 reg);
static int TMP 75_write_value(struct i2c_client *client,u8 reg,u16 value);
static struct TMP 75_data *tmp75_update_device(struct device *dev); |
|