Thread (3 messages) 3 messages, 3 authors, 2015-05-26

RE: AM335x touchscreen issues

From: Cooper Jr., Franklin <hidden>
Date: 2015-05-26 22:31:41
Also in: linux-iio

Possibly related (same subject, not in this thread)

-----Original Message-----
From: Michael Welling [mailto:mwelling79@gmail.com] On Behalf Of Michael
Welling
Sent: Tuesday, May 26, 2015 4:51 PM
To: Griffis, Brad
Cc: Cooper Jr., Franklin; Balbi, Felipe; dmitry.torokhov@gmail.com; R,
Vignesh; jic23@kernel.org; wsa@the-dreams.de; linux-
input@vger.kernel.org; GWilson@sakuraus.com; linux-iio@vger.kernel.org
Subject: Re: AM335x touchscreen issues

On Tue, May 26, 2015 at 09:36:57PM +0000, Griffis, Brad wrote:
quoted
quoted
-----Original Message-----
From: Cooper Jr., Franklin
quoted
-----Original Message-----
From: Michael Welling [mailto:mwelling79@gmail.com] On Behalf Of
Michael Welling
Sent: Tuesday, May 26, 2015 4:29 PM
To: Cooper Jr., Franklin
Cc: Balbi, Felipe; dmitry.torokhov@gmail.com; R, Vignesh; Griffis,
Brad; jic23@kernel.org; wsa@the-dreams.de;
linux-input@vger.kernel.org; GWilson@sakuraus.com;
linux-iio@vger.kernel.org
Subject: Re: AM335x touchscreen issues

On Tue, May 26, 2015 at 09:15:53PM +0000, Cooper Jr., Franklin wrote:
quoted
Michael,

Can you send me the output of ts_test_raw after you done a 5 or
so touch
down and touch up events? In the output let me know at which point
in the log that the issue you observed has occurred. Please try to
avoid moving your finger since I want to see the full output of
that program but I'm not interested any unnecessary pen down events.
quoted
Oddly the repeated pen up and down events do not occur when
running
ts_print_raw:
root@som3517-som200:~# ts_print_raw
1418169393.147827:   1648   2075    206
1418169393.229976:   1725   1983    240
1418169393.312154:   1731   1980    240
1418169393.394333:   1706   2043    239
1418169393.476523:   1703   2028    241
1418169393.558708:   1714   2041    240
1418169393.640888:   1704   2041    240
1418169393.721556:      0      0      0
1418169395.283096:   2889   2512    192
1418169395.365236:   2947   2486    210
1418169395.447413:   2949   2470    211
1418169395.529606:   2943   2497    211
1418169395.611759:   2922   2506    211
1418169395.693935:   2866   2474    213
1418169395.776135:   2858   2481    214
1418169395.858305:   2861   2451    213
1418169395.938972:      0      0      0
1418169397.482867:   1083   1981    236
1418169397.565026:   1157   1832    254
1418169397.647217:   1161   1856    256
1418169397.729412:   1158   1883    255
1418169397.811583:   1159   1841    255
1418169397.893760:   1159   1864    256
1418169397.975947:   1158   1893    256
1418169398.056605:      0      0      0
1418169399.690290:   2299   2372    178
1418169399.772432:   2388   2160    221
1418169399.854611:   2391   2190    223
1418169399.936802:   2379   2207    223
1418169400.018966:   2389   2184    223
1418169400.101146:   2383   2208    224
1418169400.183338:   2381   2203    223
1418169400.264012:      0      0      0
1418169402.073266:   1230   2381    212
1418169402.155413:   1301   2097    247
1418169402.237590:   1313   2077    248
1418169402.319772:   1307   2126    248
1418169402.401948:   1304   2096    248
1418169402.484127:   4078   2155     58
1418169402.564801:      0      0      0

Here is what the output of ts_test looks like without even
touching the
screen:
root@som3517-som200:~# ts_test
1418169549.722957:    816     17     58
1418169549.803604:    816     17      0
1418169549.817757:    816     25     58
1418169549.898411:    816     25      0
1418169549.912828:    816     41     59
1418169549.993463:    816     41      0
1418169550.007771:    816     28     58
1418169550.088404:    816     28      0
1418169550.102828:    816     33     58
1418169550.183486:    816     33      0
1418169550.197767:    816     42     59
1418169550.278401:    816     42      0
1418169550.292970:    816     23     58
1418169550.373604:    816     23      0
1418169550.387773:    816     28     58
1418169550.468404:    816     28      0
1418169550.482955:    816     32     59
1418169550.563600:    816     32      0
1418169550.577773:    816     25     58
1418169550.658406:    816     25      0
1418169550.672827:    816     35     59
1418169550.753464:    816     35      0
1418169550.767761:    816     42     59
1418169550.848407:    816     42      0
1418169550.862826:    816     41     59
1418169550.943462:    816     41      0
1418169550.958013:    816     37     59
1418169551.038655:    816     37      0
1418169551.052824:    816     41     59
1418169551.133475:    816     41      0
1418169551.147774:    816     28     58
1418169551.228406:    816     28      0
[Franklin] So your saying the above ts_test is being ran and you
never touched the screen? Looking at the mailing list post you sent
earlier it seems like the goal is for the ADC to be used at the same
time. Is that the case when you ran both ts_test and ts_print_raw?
I was also wondering if this relates to raw ADC samples being captured.
The TSCADC should not be capturing anything at all if the screen is not
touched.  You need the pen-down event to initiate the capture sequence.
I'm curious what the state of the pins is during this occurrence, i.e. are we
actually seeing some kind of event on the lines?  I suspect that something is
misconfigured somewhere, perhaps resulting in a change of state in the pins
that registers as a pen-down.

Then why would reverting a commit make the problem go away?

It seems to have something to do with the characteristic of the touchscreen
as this does not happen on my 7" display.

Looking at the datasheet these pin are dedicated analogs and cannot be
MUX'd otherwise.

http://www.ti.com/lit/ds/symlink/am3354.pdf
page 20
[Franklin] The general purpose ADC and touchscreen are handled by the same piece of IP (http://processors.wiki.ti.com/index.php/Sitara_ADC/Touchscreen_Overview) . So the ADC and touchscreen ISR will both trigger when a hardware interrupt is fired. The appropriate driver ISR should return immediately if it determines that the interrupt isn't meant for it. For the touchscreen that means either FIFO0 (only used by the touchscreen) is met or a pen up event has occurred. 

So like Brad mention nothing on the touchscreen side should randomly trigger and interrupted other than pen up and a FIFO0 threshold being met. To me it sounds like maybe some noise is hitting the touchscreen pins. However, it doesn't make sense that you don't see this issue with ts_print_raw. Ts_print_raw should output the raw values that the touchscreen driver is sending to userspace ignoring any kind of calibration. Instead of running ts_test what do you see when you run ts_print? Do you see those ghost touch events still? If so the difference between ts_print and ts_print_raw is that ts_print incorporated calibration and I believe filtering values via ts_lib to the touchscreen events it receives.

The constant X value and pretty consistent pressure of 58/59 alternating with 0 makes things even more suspicious especially if your saying that you're not running the standalone adc. 
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help