On 09/02/11 09:48, Jonathan Cameron wrote: > On 09/01/11 17:52, Stephen Warren wrote: >> Some devices use a single pin as both an IRQ and a GPIO. In that case, >> irq_gpio is the GPIO ID for that pin. Not all drivers use this feature. >> Where they do, and the use of this feature is optional, and the system >> wishes to disable this feature, this field must be explicitly set to a >> defined invalid GPIO ID, such as -1. > Why make it specifically an irq related gpio? Might as well just call it > gpio then it can be used for cases where it never corresponds to an irq > such as capture trigger pins. > > Otherwise I'd be happy to see this go in. oops, should have taken a closer look. For i2c devices specified by i2c_board_info structs there is no way of actually specifying this value. >> >> Signed-off-by: Stephen Warren <swarren@xxxxxxxxxx> >> --- >> v2: This patch is new. This updated series based on Arnd's comments that >> this solution was a good idea. >> >> Note that I leave on vacation for 2 weeks starting Friday afternoon. I >> may have some email capabilities during this time, but will certainly be >> slow to respond. >> >> include/linux/i2c.h | 7 +++++++ >> 1 files changed, 7 insertions(+), 0 deletions(-) >> >> diff --git a/include/linux/i2c.h b/include/linux/i2c.h >> index 3fad485..b368097 100644 >> --- a/include/linux/i2c.h >> +++ b/include/linux/i2c.h >> @@ -192,6 +192,12 @@ struct i2c_driver { >> * @driver: device's driver, hence pointer to access routines >> * @dev: Driver model device node for the slave. >> * @irq: indicates the IRQ generated by this device (if any) >> + * @irq_gpio: some devices use a single pin as both an IRQ and a GPIO. In >> + * that case, irq_gpio is the GPIO ID for that pin. Not all drivers >> + * use this feature. Where they do, and the use of this feature is >> + * optional, and the system wishes to disable this feature, this >> + * field must be explicitly set to a defined invalid GPIO ID, such >> + * as -1. >> * @detected: member of an i2c_driver.clients list or i2c-core's >> * userspace_devices list >> * >> @@ -209,6 +215,7 @@ struct i2c_client { >> struct i2c_driver *driver; /* and our access routines */ >> struct device dev; /* the device structure */ >> int irq; /* irq issued by device */ >> + int irq_gpio; /* gpio corresponding to irq */ >> struct list_head detected; >> }; >> #define to_i2c_client(d) container_of(d, struct i2c_client, dev) > _______________________________________________ devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxx http://driverdev.linuxdriverproject.org/mailman/listinfo/devel