实例解析linux内核I2C体系结构(2)
sg *msgs, int num)
smbus_xfer中的参数设置及调用方法如下: static int pca953x_write_reg(struct pca953x_chip *chip, int reg, uint16_t val) 上面函数完成向芯片的地址为reg的寄存器写一个16bit的数据.i2c_smbus_write_word_data的实现如下: s32 i2c_smbus_write_word_data(struct i2c_client *client, u8 command, u16 value) 从中可以看出smbus传输一个16位数据的方法.其它操作如:字符写、字符读、字读、块操作等,可以参考内核的i2c-core.c中提供的方法. ● 注销i2c_driver static void __exit pca953x_exit(void) ● detach_client动作 顺序调用内核中注册的适配器来断开我们注册过的i2c设备.此过程通过调用i2c_driver中的attach_adapter方法完成的.具体实现形式如下: static int pca953x_detach_client(struct i2c_client *client) (2) Probe方式(new style) ● 构建i2c_driver 和LEGACY方式一样,也需要构建i2c_driver,但是内容有所不同. static struct i2c_driver pca953x_driver = { ● 注册i2c_driver static int __init pca953x_init(void) 在注册i2c_driver的过程中,是将driver注册到了i2c_bus_type的总线上.此总线的匹配规则是: static const struct i2c_device_id *i2c_match_id(const struct i2c_device_id *id, |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |