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)
- 2015-05-27 · Re: AM335x touchscreen issues · Michael Welling <hidden>
- 2015-05-27 · Re: AM335x touchscreen issues · Vignesh R <hidden>
- 2015-05-26 · Re: AM335x touchscreen issues · Cooper Jr., Franklin <hidden>
- 2015-05-26 · Re: AM335x touchscreen issues · Michael Welling <hidden>
- 2015-05-26 · Re: AM335x touchscreen issues · Michael Welling <hidden>
-----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., Franklinquoted
-----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 touchdown 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.