RE: AM335x touchscreen issues

Cooper Jr., Franklin
2015-05-26T22:31:32Z

> -----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
>=20
> On Tue, May 26, 2015 at 09:36:57PM +0000, Griffis, Brad wrote:
> >
> > > -----Original Message-----
> > > From: Cooper Jr., Franklin
> > > > -----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 wrot=
e:
> > > > > 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=
.
> > > > >
> > > >
> > > > 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. ar=
e we
> actually seeing some kind of event on the lines? I suspect that somethin=
g is
> misconfigured somewhere, perhaps resulting in a change of state in the pi=
ns
> that registers as a pen-down.
>=20
> Then why would reverting a commit make the problem go away?
>=20
> It seems to have something to do with the characteristic of the touchscre=
en
> as this does not happen on my 7" display.
>=20
> Looking at the datasheet these pin are dedicated analogs and cannot be
> MUX'd otherwise.
>=20
> 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 hardwa=
re interrupt is fired. The appropriate driver ISR should return immediately=
if it determines that the interrupt isn't meant for it. For the touchscree=
n that means either FIFO0 (only used by the touchscreen) is met or a pen up=
event has occurred.=20

So like Brad mention nothing on the touchscreen side should randomly trigge=
r 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, i=
t doesn't make sense that you don't see this issue with ts_print_raw. Ts_pr=
int_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_pr=
int incorporated calibration and I believe filtering values via ts_lib to t=
he touchscreen events it receives.

The constant X value and pretty consistent pressure of 58/59 alternating wi=
th 0 makes things even more suspicious especially if your saying that you'r=
e not running the standalone adc.=20