Re: [PATCH 4/5] qt602240_ts: add optional hooks for board specific reset logic

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

 



On Thu, Nov 18, 2010 at 08:32:39PM +0900, Joonyoung Shim wrote:
> Hi, Chris.
>
> On 2010-11-17 ìì 5:42, Chris Leech wrote:
>> Hooks for board specific setup and tear-down, to be used if the controllers
>> reset is wired to a GPIO pin.
>>
>> Signed-off-by: Chris Leech<christopher.leech@xxxxxxxxxxxxxxx>
>> ---
>>   drivers/input/touchscreen/qt602240_ts.c |    7 +++++++
>>   include/linux/i2c/qt602240_ts.h         |    4 ++++
>>   2 files changed, 11 insertions(+), 0 deletions(-)
>>
>> diff --git a/drivers/input/touchscreen/qt602240_ts.c b/drivers/input/touchscreen/qt602240_ts.c
>> index 11055ec..efe975e 100644
>> --- a/drivers/input/touchscreen/qt602240_ts.c
>> +++ b/drivers/input/touchscreen/qt602240_ts.c
>> @@ -1307,6 +1307,11 @@ static int __devinit qt602240_probe(struct i2c_client *client,
>>
>>   	i2c_set_clientdata(client, data);
>>
>> +	if (data->pdata->hw_setup) {
>> +		error = data->pdata->hw_setup(client);
>> +		if (error)
>> +			goto err_free_object;
>> +	}
>>   	error = qt602240_initialize(data);
>>   	if (error)
>>   		goto err_free_object;
>> @@ -1376,6 +1381,8 @@ static int __devexit qt602240_remove(struct i2c_client *client)
>>   	sysfs_remove_group(&client->dev.kobj,&qt602240_attr_group);
>>   	free_irq(data->irq, data);
>>   	input_unregister_device(data->input_dev);
>> +	if (data->pdata->hw_teardown)
>> +		data->pdata->hw_teardown(client);
>>   	kfree(data->object_table);
>>   	kfree(data);
>>
>> diff --git a/include/linux/i2c/qt602240_ts.h b/include/linux/i2c/qt602240_ts.h
>> index d2aa1b6..764dd45 100644
>> --- a/include/linux/i2c/qt602240_ts.h
>> +++ b/include/linux/i2c/qt602240_ts.h
>> @@ -41,6 +41,10 @@ struct qt602240_platform_data {
>>   	 * platform_data).
>>   	 */
>>   	unsigned char trust_nvm;
>> +
>> +	/* Board-specific HW hooks; NULL if not needed */
>> +	int (*hw_setup) (struct i2c_client *client);
>> +	void (*hw_teardown) (struct i2c_client *client);
>
> Why does client need?

I'm not sure I understand your question.

If it's why are these hooks needed, I want to make sure that if the
reset pin is hooked up to a gpio the device is taken out of reset
properly.

If it's why the client argument is passed, it seemed like there should
be some way to identify the device.  You could have a platform with
multiple touchscreens.

- Chris
--
To unsubscribe from this list: send the line "unsubscribe linux-input" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Media Devel]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Linux Wireless Networking]     [Linux Omap]

  Powered by Linux