在board-8064.c中寻找
sis_i2c_info如下:
static struct i2c_board_info sis_i2c_info[] __initdata = {
{
I2C_BOARD_INFO(SIS_I2C_NAME, SIS_SLAVE_ADDR),
.platform_data = &sis_pdata,
.irq = MSM_GPIO_TO_INT(7),
},
};
在这里 7 代 触发中断得偏移量 (通过MSM_GPIO_TO_INT计算偏移 ,不许要管)
static struct i2c_board_info __initdata enterprise_nuvoton_microp[] = {
{
I2C_BOARD_INFO("microp", 0x15),
.irq=MSM_GPIO_TO_INT(7),
.platform_data = &nuvoton_microp_pdata,
},
};
,两者得中断偏移一样, 中断触发时会同时触发两者得中断处理函数
这边说得 share IRQ 就是指在probe函数中 申请中断时得第四个参数为:IRQF_SHARED
IRQF_SHAREDret = request_irq(client->irq, microP_irq_handler,
IRQF_TRIGGER_FALLING | IRQF_SHARED , client->name, info);
IRQF_SHARED 介绍为:
第三个参数可以取IRQF_DISABLED、IRQF_SHARED和 IRQF_SAMPLE_RANDOM之一
其中取 IRQF_SHARED,该标志表示多个设备共享一条IRQ线,因此相应的每个设备都需要各自的中断服务例程。
第四个参数是请求中断的设备的名称。
第五个参数为一个指针型变量。在IRQF_SHARED标志时使用,目 的是为即将要释放中断处理程序提供唯一标志。因为多个设备共享一条中断线,因此要释放某个中断处理程序时,必须通过此标志来唯一指定这个中断 处理程序。
要做到多个设备共享一条中断线需要多个设备用 的是同一个中断号(在设备信息中定义)。
。