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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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


[Index of Archives]     [Linux Driver Backports]     [DMA Engine]     [Linux GPIO]     [Linux SPI]     [Video for Linux]     [Linux USB Devel]     [Linux Coverity]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]
  Powered by Linux