I2C设备驱动

I2c 协议

数据有效性

SDA在SCL高电平期间必须保持稳定,而只有在SCL低电平期间数据线(SDA)才可以进行高低电平切换
开始位: START开始位是SCL高电平期间SDA HIGH->LOW
STOP停止位: SCk高电平期间SDA LOW->HIGH

注:I2C有效地址位7位


image.png

linux设备驱动数据结构

      static struct i2c_driver xxxx_driver =
     {
         .driver =
         {
             .owner = THIS_MODULE, 
             .name = "xxxx",
         }, 
        .id_table = xxxx_idtable,
        .probe = xxxx_probe, 
     }

static const struct i2c_device_id smb347_id[] = {
  { "smb347", 0 },
}

i2c_driver 中的driver.name 要和i2c_client一致,因为这是他们配备的一个依据,id_table 是i2c_device_id结构体的一个对象,里面定义了i2c驱动对应设备的i2c地址,

你可能感兴趣的:(I2C设备驱动)