概述
linux I2C体系结构由三部分组成
①I2C核心:提供I2C总线驱动和设备驱动的注册、注销方法
②I2C总线驱动:主要包括两个数据结构,适配器I2c_adapter(包括algorithm结构体指针)、和algorithm数据结构(最终I2C的通信是由algorithm结构控制发送与接受数据)
③I2C设备驱动:是对I2C硬件体系结构中设备端的实现,两个数据结构,分别是I2c_driver(包括I2C的依附、脱离、探测、移除、关闭、恢复、读写数据。。。)对应一对通信方法、I2c_cilent(包括I2C硬件的芯片地址,设备名称、等,其中该结构体包括适配器I2c_adapter,和I2c_driver指针,这样就可以直接访问了)该结构体对应实在的硬件
以上涉及的结构体不进行分析了,可以参考宋宝华《linux设备驱动开发》第二版的第一十五章,有详细的介绍。
名词解析
适配器:适配器就是一个接口转换器,它可以是一个独立的硬件接口设备,允许硬件或电子接口与其它硬件或电子接口相连,也可以是信息接口。