* [at91sam9g45] touch screen not detected by Angstrom Linux
@ 2009-09-30 9:06 Yegor Yefremov
2009-09-30 9:50 ` Nicolas Ferre
0 siblings, 1 reply; 3+ messages in thread
From: Yegor Yefremov @ 2009-09-30 9:06 UTC (permalink / raw)
To: linux-arm-kernel
Hello Nicolas,
I could successfully apply your touch screen drivers to 2.6.32-rc2:
2.6.30-at91-exp-0045-input-atmel_tsadcc-touchscreen-use-platform-paramet.patch
2.6.30-at91-exp-0046-at91-input-platform-parameters-for-atmel_tsadcc-in.patch
2.6.30-at91-exp-0047-at91-input-touchscreen-support-for-at91sam9g45ekes.patch
Here dmesg output for 2.6.32-rc2:
atmel_tsadcc atmel_tsadcc: Master clock is set at: 133333333 Hz
atmel_tsadcc atmel_tsadcc: Prescaler is set at: 221
input: atmel touch screen controller as /devices/platform/atmel_tsadcc/input/input1
Here dmesg output for 2.6.27 where touch screen is working under Angstrom Linux:
atmel_tsadcc atmel_tsadcc: Master clock is set at: 133333333 Hz
atmel_tsadcc atmel_tsadcc: Prescaler is set at: 221
input: atmel touch screen controller as /class/input/input1
The device is working if I read /dev/input/event1, but I'm not able to get it working under Angstrom Linux. Any ideas?
Regards,
Yegor
^ permalink raw reply [flat|nested] 3+ messages in thread
* [at91sam9g45] touch screen not detected by Angstrom Linux
2009-09-30 9:06 [at91sam9g45] touch screen not detected by Angstrom Linux Yegor Yefremov
@ 2009-09-30 9:50 ` Nicolas Ferre
2009-10-01 8:36 ` Yegor Yefremov
0 siblings, 1 reply; 3+ messages in thread
From: Nicolas Ferre @ 2009-09-30 9:50 UTC (permalink / raw)
To: linux-arm-kernel
Yegor Yefremov :
> Hello Nicolas,
>
> I could successfully apply your touch screen drivers to 2.6.32-rc2:
>
> 2.6.30-at91-exp-0045-input-atmel_tsadcc-touchscreen-use-platform-paramet.patch
> 2.6.30-at91-exp-0046-at91-input-platform-parameters-for-atmel_tsadcc-in.patch
> 2.6.30-at91-exp-0047-at91-input-touchscreen-support-for-at91sam9g45ekes.patch
>
> Here dmesg output for 2.6.32-rc2:
>
> atmel_tsadcc atmel_tsadcc: Master clock is set at: 133333333 Hz
> atmel_tsadcc atmel_tsadcc: Prescaler is set at: 221
> input: atmel touch screen controller as /devices/platform/atmel_tsadcc/input/input1
>
> Here dmesg output for 2.6.27 where touch screen is working under Angstrom Linux:
>
> atmel_tsadcc atmel_tsadcc: Master clock is set at: 133333333 Hz
> atmel_tsadcc atmel_tsadcc: Prescaler is set at: 221
> input: atmel touch screen controller as /class/input/input1
>
> The device is working if I read /dev/input/event1, but I'm not able to get it working under Angstrom Linux. Any ideas?
Yes: in the driver we do not report the pressure measurement (not
available on at91sam9rl). There is a bug in tslib that prevents
a pressure-less touchscreen to work correctly.
1/ solution one: apply the patch I posted on tslib ml:
https://lists.berlios.de/pipermail/tslib-general/2009-September/000225.html
2/ re-introduce the fake pressure report in your source (atmel_tsadcc driver)
8<-------------------------------------------
diff --git a/drivers/input/touchscreen/atmel_tsadcc.c b/drivers/input/touchscreen/atmel_tsadcc.c
index 3c24783..27ac912 100644
--- a/drivers/input/touchscreen/atmel_tsadcc.c
+++ b/drivers/input/touchscreen/atmel_tsadcc.c
@@ -134,6 +134,7 @@ static irqreturn_t atmel_tsadcc_interrupt(int irq, void *dev)
input_report_key(input_dev, BTN_TOUCH, 0);
ts_dev->bufferedmeasure = 0;
+ input_report_abs(input_dev, ABS_PRESSURE, 0);
input_sync(input_dev);
} else if (status & ATMEL_TSADCC_PENCNT) {
@@ -158,6 +159,7 @@ static irqreturn_t atmel_tsadcc_interrupt(int irq, void *dev)
input_report_abs(input_dev, ABS_X, ts_dev->prev_absx);
input_report_abs(input_dev, ABS_Y, ts_dev->prev_absy);
input_report_key(input_dev, BTN_TOUCH, 1);
+ input_report_abs(input_dev, ABS_PRESSURE, 7500);
input_sync(input_dev);
} else
ts_dev->bufferedmeasure = 1;
@@ -256,6 +258,7 @@ static int __devinit atmel_tsadcc_probe(struct platform_device *pdev)
__set_bit(EV_ABS, input_dev->evbit);
input_set_abs_params(input_dev, ABS_X, 0, 0x3FF, 0, 0);
input_set_abs_params(input_dev, ABS_Y, 0, 0x3FF, 0, 0);
+ input_set_abs_params(input_dev, ABS_PRESSURE, 0, 15000, 0, 0);
input_set_capability(input_dev, EV_KEY, BTN_TOUCH);
8<-------------------------------------------
Best regards,
--
Nicolas Ferre
^ permalink raw reply related [flat|nested] 3+ messages in thread
* [at91sam9g45] touch screen not detected by Angstrom Linux
2009-09-30 9:50 ` Nicolas Ferre
@ 2009-10-01 8:36 ` Yegor Yefremov
0 siblings, 0 replies; 3+ messages in thread
From: Yegor Yefremov @ 2009-10-01 8:36 UTC (permalink / raw)
To: linux-arm-kernel
>> I could successfully apply your touch screen drivers to 2.6.32-rc2:
>>
>> 2.6.30-at91-exp-0045-input-atmel_tsadcc-touchscreen-use-platform-paramet.patch
>> 2.6.30-at91-exp-0046-at91-input-platform-parameters-for-atmel_tsadcc-in.patch
>> 2.6.30-at91-exp-0047-at91-input-touchscreen-support-for-at91sam9g45ekes.patch
>>
>> Here dmesg output for 2.6.32-rc2:
>>
>> atmel_tsadcc atmel_tsadcc: Master clock is set at: 133333333 Hz
>> atmel_tsadcc atmel_tsadcc: Prescaler is set at: 221
>> input: atmel touch screen controller as /devices/platform/atmel_tsadcc/input/input1
>>
>> Here dmesg output for 2.6.27 where touch screen is working under Angstrom Linux:
>>
>> atmel_tsadcc atmel_tsadcc: Master clock is set at: 133333333 Hz
>> atmel_tsadcc atmel_tsadcc: Prescaler is set at: 221
>> input: atmel touch screen controller as /class/input/input1
>>
>> The device is working if I read /dev/input/event1, but I'm not able to get it working under Angstrom Linux. Any ideas?
>
> Yes: in the driver we do not report the pressure measurement (not
> available on at91sam9rl). There is a bug in tslib that prevents
> a pressure-less touchscreen to work correctly.
>
> 1/ solution one: apply the patch I posted on tslib ml:
> https://lists.berlios.de/pipermail/tslib-general/2009-September/000225.html
Your patch was committed about 10 hours ago http://svn.berlios.de/viewcvs/tslib?view=rev&revision=78
> 2/ re-introduce the fake pressure report in your source (atmel_tsadcc driver)
>
> 8<-------------------------------------------
> diff --git a/drivers/input/touchscreen/atmel_tsadcc.c b/drivers/input/touchscreen/atmel_tsadcc.c
> index 3c24783..27ac912 100644
> --- a/drivers/input/touchscreen/atmel_tsadcc.c
> +++ b/drivers/input/touchscreen/atmel_tsadcc.c
> @@ -134,6 +134,7 @@ static irqreturn_t atmel_tsadcc_interrupt(int irq, void *dev)
>
> input_report_key(input_dev, BTN_TOUCH, 0);
> ts_dev->bufferedmeasure = 0;
> + input_report_abs(input_dev, ABS_PRESSURE, 0);
> input_sync(input_dev);
>
> } else if (status & ATMEL_TSADCC_PENCNT) {
> @@ -158,6 +159,7 @@ static irqreturn_t atmel_tsadcc_interrupt(int irq, void *dev)
> input_report_abs(input_dev, ABS_X, ts_dev->prev_absx);
> input_report_abs(input_dev, ABS_Y, ts_dev->prev_absy);
> input_report_key(input_dev, BTN_TOUCH, 1);
> + input_report_abs(input_dev, ABS_PRESSURE, 7500);
> input_sync(input_dev);
> } else
> ts_dev->bufferedmeasure = 1;
> @@ -256,6 +258,7 @@ static int __devinit atmel_tsadcc_probe(struct platform_device *pdev)
> __set_bit(EV_ABS, input_dev->evbit);
> input_set_abs_params(input_dev, ABS_X, 0, 0x3FF, 0, 0);
> input_set_abs_params(input_dev, ABS_Y, 0, 0x3FF, 0, 0);
> + input_set_abs_params(input_dev, ABS_PRESSURE, 0, 15000, 0, 0);
>
> input_set_capability(input_dev, EV_KEY, BTN_TOUCH);
>
>
> 8<-------------------------------------------
I have used the second solution and it is working like a charm. Thank you for support.
Regards,
Yegor
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2009-10-01 8:36 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-09-30 9:06 [at91sam9g45] touch screen not detected by Angstrom Linux Yegor Yefremov
2009-09-30 9:50 ` Nicolas Ferre
2009-10-01 8:36 ` Yegor Yefremov
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).