linux内核的I2C子系统详解2——关键结构体、关键文件
以下内容源于朱有鹏《物联网大讲堂》课程的学习,如有侵权,请告知删除。
3、I2C子系统的4个关键结构体
(1)struct i2c_adapter :I2C适配器
- 用来描述I2C控制器的,只和主机有关系。换一颗SoC则需要修改该结构体。
(2)struct i2c_algorithm:I2C算法
- 主要描述主机和从机通信的算法(主要是时序等内容),和主机、从机都有关系。
(3)struct i2c_client
- I2C从机设备信息
(4)struct i2c_driver
- I2C(从机)设备驱动
4、关键文件
(1)i2c-core.c:由内核开发者提供,和具体的硬件操作无关。
(2)busses目录:大部分是adapter相关的内容。我们主要分析i2c_s3c2410.c文件。此文件在不同的SoC中没有什么不同,因此可以用。
(3)algos目录