I2c driver驱动编写常用接口介绍

驱动的编写我们需要了解常用的接口,下面介绍I2cdriver驱动编写的常用接口!!!

1.struct i2c_driver:描述从设备驱动的一个对象

I2c driver驱动编写常用接口介绍_第1张图片

2.struct i2c_client:作用是描述一个从设备信息,不需要自己创建由adapter创建(内部创建的时候调用的是:struct i2c_client *i2c_new_device(struct i2c_adapter * adap,structi2c_board_info const * info);),其中struct i2c_adapter *adapter指向adapter,表示是属于哪个总线的,因为每个总线都会有控制器,这个控制器就是adapter,主要关注4个成员

I2c driver驱动编写常用接口介绍_第2张图片

struct i2c_adapter:作用是描述一个i2c控制(不需要自己创建,由原厂商构建,注册用i2c_add_adapter,注销用i2c_del_adapter),其中会有个算法接口成员

I2c driver驱动编写常用接口介绍_第3张图片

3.struct i2c_msg:作用是描述一个数据包

I2c driver驱动编写常用接口介绍_第4张图片

4.Driver的注册和注销方法:

int i2c_register_driver(struct module *owner, struct i2c_driver*driver);

void i2c_del_driver(struct i2c_driver *driver);

 

5.读写数据方法:

int i2c_master_send(const struct i2c_client * client,const char *buf,int count)

int i2c_master_recv(const struct i2c_client * client,char * buf,intcount)

以上两个函数都最终都调用:

int i2c_transfer(struct i2c_adapter *adap, struct i2c_msg *msgs, intnum)


你可能感兴趣的:(I2C协议,Linux,C,Linux,驱动,嵌入式)