怎么写I2c和SMBus设备驱动
展开全部
设备/驱动 绑定
系统基本结构,典型的板子特定初始化代码或者启动固件,报告了存在了那些i2c设备。例如,这里可能会有一个表,在内核或从bootloader中,识别i2c设备和连接他们到板级特定配置信息关于IRQs和其他布线工件的,芯片类型等等。那个可以用来对于每一个i2c设备创建i2c_client对象。
I2c设备驱动使用这个绑定模型工作就像其他类型的linux驱动,他们提供一个probe方法来绑定这些设备,然后一个remove方法来解开。
static int foo_probe(struct i2c_client *client,
const struct i2c_device_id *id);
static int foo_remove(struct i2c_client *client);
记住I2c_driver不会创建这些client handles。这些handle可能会在foo_probe()中使用。如果foo_probe()报告成功(0不是否定状态代码)它可能会保存handle 然后一直使用它知道foo_remove返回。 那个绑定模型被许多linux驱动使用。
系统基本结构,典型的板子特定初始化代码或者启动固件,报告了存在了那些i2c设备。例如,这里可能会有一个表,在内核或从bootloader中,识别i2c设备和连接他们到板级特定配置信息关于IRQs和其他布线工件的,芯片类型等等。那个可以用来对于每一个i2c设备创建i2c_client对象。
I2c设备驱动使用这个绑定模型工作就像其他类型的linux驱动,他们提供一个probe方法来绑定这些设备,然后一个remove方法来解开。
static int foo_probe(struct i2c_client *client,
const struct i2c_device_id *id);
static int foo_remove(struct i2c_client *client);
记住I2c_driver不会创建这些client handles。这些handle可能会在foo_probe()中使用。如果foo_probe()报告成功(0不是否定状态代码)它可能会保存handle 然后一直使用它知道foo_remove返回。 那个绑定模型被许多linux驱动使用。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询