Linux设备模型之i2c子系统

I2c子系统将i2c控制器(i2c寄存器所在的那块电路)抽象出来,用adapter(适配器)这个结构来描述,可以说一个适配器就代表一条i2c总线,而挂接在i2c总线上的设备是用client这个结构体来表述,另外i2c_bus上的设备链表挂接的不单单是连接的这条i2c上的client,同样adapter也作为一个设备挂在其所在的i2c_bus,也就是说控制器和设备都作为i2c_bus上的设备连接在设备链表,他们用内嵌的device的type这个成员来区分,适配器的类型为i2c_adapter_type,client的类型为i2c_client_type。

一、i2c相关的描述结构

首先看一下i2c子系统给adapter定义的描述结构:

[cpp]

再来看一下client的描述结构:

[cpp]

下面是driver的表述结构i2c_driver:

[cpp]

另外client端有一条全局链表,用于串联所有i2c的client设备,为__i2c_board_list,,也就是说client可以静态注册亦可动态被探测,静态注册挂接在该链表上的结构为:

[cpp]

i2c_devinfo结构静态注册的信息最后都会被整合集成到client中,形成一个标准的i2c_client设备并注册。

你可能付出一定的代价,但日后你得到的,远比付出的多得多。

Linux设备模型之i2c子系统

相关文章:

你感兴趣的文章:

标签云: