本文只介绍Linux下I2C新驱动框架技术,老框架在原Blog中有提及,这里不详述。
Linux新的I2C驱动框架下,I2C设备是以I2c client的形式存在的,即设备I2c client与I2C驱动相对应。I2C设备驱动可以理解成I2C client驱动。
在I2C总线驱动加载的时候,I2c Bus驱动为每一个总线创建了一个I2c Adapter,即适配器。然后会i2c_scan_static_board_info,即遍历I2c板卡信息i2c_board_info,此结构体里包含了系统相应I2c总线下所挂载的设备信息,通过遍历i2c_board_info,为该总线下每一个设备描述实例化,即为每一个设备创建i2c_client,然后把新创建的I2c client设备挂载到I2 Bus上,在挂载I2c client设备到总线的时候,发起经典的Device和Driver匹配过程。找到相应I2C设备驱动。
过程如下图:
I2C 总线与I2C总线驱动匹配过程:
在I2C总线驱动与I2C总线匹配过程中,将产生相应的 I2c Adapter设备,每一个总线对应一个Adapter。
阅读(1248) | 评论(0) | 转发(0) |