i2c总线驱动:
由芯片厂商提供,这一部分不需要我们考虑,按我的理解这个其实是提供了一个匹配的平台,用于匹配设备树和设备驱动
1.注册 I2C 总线
2.将 I2C 驱动添加到 I2C 总线的驱动链表中
3.遍历 I2C 总线上的设备链表,根据 i2c_device_match 函数进行匹配,如果匹配调用 i2c_device_probe 函数
4.i2c_device_probe
函数会调用
I2C
驱动的
probe
函数
i2c设备驱动:
设备树中:
设备驱动文件中:
对应具体设备的驱动详情,需要完成
1.对具体设备的接口函数(open、read、write、close)
2.匹配成功以后的probe函数,以及把接口函数注册进i2c总线平台
总结:
总线驱动主要有俩个功能:
1.提供一个平台用于匹配设备树和设备驱动
2.完成了最基础的I2C协议 即拉高拉低电平
设备驱动:
1.完成具体的接口函数
2.完成设备的创建