Linux IIC框架

2014-11-24 11:01:43 · 作者: · 浏览: 2

IIC的框架结构和SPI是类似的,它们都拥有总线驱动层(IIC主控制器驱动层),核心层和从设备驱动层。本节主要介绍IIC主控制器的注册以及从设备的注册过程。首先要介绍描述IIC主控制器的结构struct i2c_adapter和描述IIC从设备的结构struct i2c_client


struct i2c_adapter的定义如下:


algo中定义了主控制器的的数据传输方式,client是一个链表头,由于可能有多个从设备挂接在该总线上,因此client用于链接该控制器下的从设备


和SPI控制器一样,IIC控制器也是平台资源,因此以platform的方式注册进内核


s3c2410_i2c_driver和s3c2440_i2c_driver的定义除了name字段不一样外,其他部分都一样


当和platform_device匹配成功后,便调用s3c24xx_i2c_probe()函数


i2c_add_numbered_adapter()会调用i2c_register_adapter()来完成实际的注册工作