i2c_client结构体中为什么没有设备号?
时间: 2023-04-11 18:02:05 浏览: 156
i2c_client结构体中没有设备号是因为i2c总线是通过设备地址来识别设备的,而不是通过设备号。i2c_client结构体中包含了设备地址、总线信息等相关信息,可以通过这些信息来唯一标识一个i2c设备。
相关问题
i2c_client结构体具体包含哪些?
i2c_client结构体包含了设备地址、总线、驱动程序、设备ID等信息。具体包含的成员变量包括addr、adapter、driver、dev、flags、irq、name、of_node、timeout、和client_data等。
i2c_driver结构体
i2c_driver结构体是Linux内核中用于描述I2C驱动程序的结构体,定义在头文件linux/i2c.h中。
struct i2c_driver {
unsigned int class;
const char *driver_name;
const struct of_device_id *of_match_table;
int (*probe)(struct i2c_client *, const struct i2c_device_id *);
int (*remove)(struct i2c_client *);
void (*shutdown)(struct i2c_client *);
int (*suspend)(struct i2c_client *, pm_message_t);
int (*resume)(struct i2c_client *);
const struct i2c_device_id *id_table;
struct device_driver driver;
const struct i2c_algorithm *algo;
unsigned long driver_features;
struct list_head clients;
#ifdef CONFIG_DEBUG_FS
struct dentry *debugfs;
#endif
};
其中,各成员变量的含义如下:
- class:设备类别,如I2C设备为I2C_CLASS_HWMON、I2C_CLASS_SENSORS等。
- driver_name:驱动程序的名称。
- of_match_table:设备树匹配表,用于匹配设备树中的I2C设备节点。
- probe:驱动程序的探测函数,用于探测设备是否存在及进行初始化。
- remove:驱动程序的移除函数,用于卸载驱动程序及释放资源。
- shutdown:驱动程序的关机函数,用于关机时进行资源释放。
- suspend:驱动程序的挂起函数,用于系统挂起时进行资源释放。
- resume:驱动程序的恢复函数,用于系统恢复时进行资源分配。
- id_table:设备ID表,用于匹配I2C设备。
- driver:设备驱动结构体。
- algo:I2C总线算法,可以是标准算法或自定义算法。
- driver_features:驱动程序的特性标志。
- clients:I2C客户端列表。
- debugfs:调试文件系统节点,用于调试和诊断I2C驱动程序。
阅读全文