i2c_adapter 结构体定义 变量含义说明
时间: 2023-07-21 12:03:05 浏览: 99
`i2c_adapter` 结构体定义了 I2C 总线适配器的属性和操作函数,其变量含义如下:
1. `owner`:指向拥有该适配器的模块的指针。用于模块引用计数,确保适配器在使用时不会被卸载。
2. `name`:适配器的名称。一般用于标识不同的 I2C 总线适配器。
3. `class`:指向适配器的设备类别。用于将适配器与其他设备进行分类。
4. `algo`:指向 `i2c_algorithm` 结构体的指针,表示 I2C 传输算法。该算法描述了适配器用于传输数据的方法,如 START/STOP 信号的生成、时钟频率的设置等。
5. `algo_data`:传递给传输算法的私有数据。
6. `dev`:指向适配器的设备结构体指针。用于将适配器与底层硬件设备进行关联。
7. `nr`:适配器的编号。用于区分多个 I2C 总线适配器。
8. `class_dev`:适配器的类设备结构体指针。用于将适配器注册到 sysfs 中,以便用户空间可以对其进行配置和管理。
9. `dev_list`:用于将多个适配器连接成链表,以便内核可以通过链表遍历所有适配器。
10. `timeout`:I2C 传输的超时时间。当传输超过该时间时,将返回超时错误。
11. `retries`:I2C 传输的重试次数。当传输失败时,会自动重试指定次数。
12. `bus_lock`:用于保护 I2C 总线资源的自旋锁。
13. `bus_recovery_info`:指向 `i2c_bus_recovery_info` 结构体的指针。用于定义适配器的总线恢复机制,当总线出现错误时,可以通过该机制进行恢复。
14. `dev_released`:用于标记适配器是否已被释放。
这些变量定义了适配器的基本属性和操作函数,通过适配器结构体可以对 I2C 总线进行初始化、读写操作以及其他相关配置。
阅读全文