Re: [PATCH V2 1/4] i2c: Add irq_gpio field to struct i2c_client.

From: Jonathan Cameron
Date: Fri Sep 02 2011 - 04:42:29 EST


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)
>

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/