i2c_client 一般被包含在 I2C 字符设备的私有信息结构体中。 i2c_driver 与 i2c_client 发生关联的时刻在 i2c_driver 的 attach_adapter()函数被运行时。 attach_adapter() 会探测物理设备,当确定一个 client 存在时,把该 client 使用的 i2c_client 数据结构的 adapter 指针指向对应 的i2c_adapter, driver 指针...
i2c_client结构体时总线驱动层和设备驱动层匹配成功之后,创建的结构体信息 作用:记录哪个总线驱动和当前设备驱动匹配成功 struct i2c_client { unsigned short flags; //读写标志位 unsigned short addr; //从机地址 char name[I2C_NAME_SIZE]; //设备的名字 struct i2c_adapter *adapter; //总线驱动的对象 str...
在Linux 内核中,i2c_client 是 I2C 从设备的设备结构体,表示连接到 I2C 总线上的一个 I2C 从设备。它包含了该从设备的一些信息,例如设备地址、从设备驱动程序、从设备所在的 I2C 适配器等。 重要的成员:unsigned short addr:I2C 从设备的地址,存储在 7 位中。注意,这个地址不包括 I2C 地址的读写位,即 7 ...
1、i2c_client结构体 i2c_client结构体定义在include/linux/i2c.h文件中,内容如下: 示例代码61.1.2.1 i2c_client结构体 217struct i2c_client { 218unsignedshort flags; /* 标志 */ 219unsignedshort addr; /* 芯片地址,7位,存在低7位 */ ... 222char name[I2C_NAME_SIZE]; /* 名字 */ 223struct ...
2.i2c_client 包含8个结构体成员,源于i2c.h文件。 1structi2c_client {2unsignedshortflags;3unsignedshortaddr;4charname[I2C_NAME_SIZE];5structi2c_adapter *adapter;6structi2c_driver *driver;7structdevice dev;8intirq;9structlist_head detected;10}; ...
I2C 设备驱动要使用 i2c_driver 和 i2c_client 数据结构并填充其中的成员函数。 i2c_client 一般被包含在设备的私有信息结构体 yyy_data 中,而 i2c_driver 则适合被定义为全局变量并初始化。 看到I2C设备驱动的这两个结构体大家是不是很熟悉了,I2C设备驱动是针对特定类型的I2C设备编写的驱动程序。它包含了对具体...
I2C 子系统有几个主要的结构体: I2C控制器:i2c_adapter、i2c_algorithm、mtk_i2cI2C设备驱动:i2c_client、i2c_driverI2C传输:i2c_msg i2c_adapter:i2c-core 层描述一个 I2C 控制器,假如一个芯片有 8 路 I2C bus,则有 8 个 i2c_adapter。请详细看博主对 code 的注释说明。
algo:指向 I2C算法结构体的指针,包含了适配器的通信算法,如标准模式、快速模式、高速模式等。 4.2 i2c_client 结构体 定义位置:i2c.h结构体原型: struct i2c_client { unsigned short flags; /* div., see below */ #define I2C_CLIENT_PEC 0x04 /* Use Packet Error Checking */ ...
主要数据结构:I2C_adapter、i2c_algorithm I2C设备驱动 通过I2C适配器与CPU交换数据 主要数据结构:i2c_driver和i2c_client 四、核心数据结构 1、i2c_adapter结构体 抽象为/表示:一个i2c控制器 平台设备 include/linux/i2c.h // 此结构体对应一个i2c控制器 ...