Re: [PATCH] input: Add support for the TSC2003 controller.

Thierry Reding
2009-05-05T06:22:05Z

[-- Attachment #1: Type: text/plain, Size: 2304 bytes --]

* Trilok Soni wrote:
> Hi Therry,
>
> On Mon, May 4, 2009 at 8:27 PM, Thierry Reding
> <thierry.reding@avionic-design.de> wrote:
> > * Trilok Soni wrote:
> >> Hi Thierry,
> >>
> >> On Mon, May 4, 2009 at 5:07 PM, Thierry Reding
> >> <thierry.reding@avionic-design.de> wrote:
> >> > * Kwangwoo Lee wrote:
> >> >> Hi Thierry and Trilok,
> >> >>
> >> >> On Wed, Apr 29, 2009 at 10:23 PM, Trilok Soni <soni.trilok@gmail.com> wrote:
> >> >> > Hi Thierry,
> >> >> >
> >> >> > I have added linux-omap community. How different is this chip from
> >> >> > tsc2007. It looks to me that this chip is not much different from
> >> >> > tsc2007 (this is just quick look at the driver). If they
> >> >> > are similar please consider using i2c_device_id feature in tsc2007 to
> >> >> > accommodate this chip.
> >> >>
> >> >> I agree with the Trilok's opinion.
> >> > [snip]
> >> >
> >> > I only noticed the tsc2007 driver some time ago, when the tsc2003 was already
> >> > finished (it's actually pretty old, I just never got around to submitting
> >> > it). However I never got the tsc2007 to work on my platform because it uses
> >> > sleeping functions inside the timer handler, which results in an oops right
> >> > after the first touchscreen interrupt.
> >> >
> >> > I guess I could try and fix the tsc2007 properly instead of having a second,
> >> > pretty similar driver in the tree.
> >> >
> >>
> >> This could be because of improper locking? If you share a crash we can
> >> have look at it.
> >
> > Attached is a patch that fixes things for me. The problem was that the I2C
> > transfers were done in interrupt context which fails for the controller I use
> > (PXA270). The attached patch uses a struct work_struct to schedule the I2C
> > transfers so they are executed in non-interrupt context.
> >
> > I've tested the patch on a minimal system with tslib and it work fine with
> > ts_calibrate and friends.
>
> Thanks for the patch. It looks good. Let's wait for Kwangwoo Lee to
> verify it on his platform. Also please add "tsc2003" entry into
> i2c_device_ids so that i2c_board_info can specify the .name as
> "tsc2003".

A second patch is attached that merely adds the tsc2003 to the list of
supported device IDs. I've split the patch off because it has nothing to do
with the other changes.

Thierry

[-- Attachment #2: tsc003.patch --]
[-- Type: text/x-diff, Size: 867 bytes --]

From: Thierry Reding <thierry.reding@avionic-design.de>
Subject: [PATCH] tsc2007: Add support for TSC2003 chips.

The TSC2003 is very similar to the TSC2007 an can be supported by the same
driver with no additional changes.

Signed-off-by: Thierry Reding <thierry.reding@avionic-design.de>

---
drivers/input/touchscreen/tsc2007.c | 1 +
1 files changed, 1 insertions(+), 0 deletions(-)

diff --git a/drivers/input/touchscreen/tsc2007.c b/drivers/input/touchscreen/tsc2007.c
index 6efb54d..599aa67 100644
--- a/drivers/input/touchscreen/tsc2007.c
+++ b/drivers/input/touchscreen/tsc2007.c
@@ -360,6 +360,7 @@ static int tsc2007_remove(struct i2c_client *client)

static struct i2c_device_id tsc2007_idtable[] = {
{ "tsc2007", 0 },
+ { "tsc2003", 0 },
{ }
};

--
tg: (84e274c..) adx/input/tsc2003 (depends on: adx/input/tsc2007)