linux内核的I2C子系统详解2——关键结构体、关键文件

以下内容源于朱有鹏《物联网大讲堂》课程的学习,如有侵权,请告知删除。

linux内核的I2C子系统详解2——关键结构体、关键文件

3、I2C子系统的4个关键结构体

(1)struct i2c_adapter :I2C适配器

  • 用来描述I2C控制器的,只和主机有关系。换一颗SoC则需要修改该结构体。

linux内核的I2C子系统详解2——关键结构体、关键文件

(2)struct i2c_algorithm:I2C算法

  • 主要描述主机和从机通信的算法(主要是时序等内容),和主机、从机都有关系。

linux内核的I2C子系统详解2——关键结构体、关键文件

(3)struct i2c_client

  • I2C从机设备信息

linux内核的I2C子系统详解2——关键结构体、关键文件

(4)struct i2c_driver

  • I2C(从机)设备驱动

linux内核的I2C子系统详解2——关键结构体、关键文件

4、关键文件

linux内核的I2C子系统详解2——关键结构体、关键文件

(1)i2c-core.c:由内核开发者提供,和具体的硬件操作无关。

(2)busses目录:大部分是adapter相关的内容。我们主要分析i2c_s3c2410.c文件。此文件在不同的SoC中没有什么不同,因此可以用。

(3)algos目录