problems with spi interface & ads 784X under 2.6.23

From: dave chung
Date: Sat Nov 10 2007 - 19:02:31 EST


on kernel 2.6.23 , with an Arm AT91rm9200
sometimes when i "pen-down" on the touch screen,I'm seeing

ads7846 spi0.0: touchscreen, irq 75
input: ADS784x Touchscreen as /devices/platform/atmel_spi.0/spi0.0/input/input0
at91_rtc at91_rtc: rtc core: registered at91_rtc as rtc0



atmel_spi atmel_spi.0: fifo overrun (0/1 remaining)
atmel_spi atmel_spi.0: timeout waiting for TXEMPTY<7>ads7846 spi0.0:
DEactivate 35, mr 000f0011
atmel_spi atmel_spi.0: fifo overrun (0/1 remaining)
atmel_spi atmel_spi.0: timeout waiting for TXEMPTY<7>ads7846 spi0.0:
DEactivate 35, mr 000f0011



it appears to be coming from /drivers/touchscreen/ads7846.c

also even stranger, a cat of the TS when the pen is down produces:
# cat /dev/ts |hexdump
returns
0000000 ea9c 34aa 0d64 0007 0001 014a 0001 0000
0000010 ea9c 34aa 0dde 0007 0003 0018 1d4c 0000
0000020 ea9c 34aa 0e1b 0007 0000 0000 0000 0000
0000030 ea9c 34aa 8c84 0008 0001 014a 0000 0000
0000040 ea9c 34aa 8cdf 0008 0003 0018 0000 0000
0000050 ea9c 34aa 8d1c 0008 0000 0000 0000 0000
0000060 ea9d 34aa c9af 0004 0001 014a 0001 0000
0000070 ea9d 34aa ca29 0004 0003 0018 1d4c 0000
0000080 ea9d 34aa ca66 0004 0000 0000 0000 0000

when the pen is down , notice that the left column is a sequence of
incrementing words, at "second" intervals , the value of which change
when i turn off the "RTC" compillation in the kernel, but this may be
down to the interrupts.
After consulting the curcuit diagrams , the only "odd" thing i can see
is that the "penirq" is tied to pin PB11, but it is obviously working
as i only get output when the pen is down

under kernel 2.6.13 the touchscreen actually works fine.
and a cat of it's output is more reasonable.

000000 0001 0c39 07e0 be98 0001 0c33 0801 be98
0000010 0001 0c35 07e2 be98 0001 0c41 07d4 be98
0000020 0001 0c40 07d0 be98 0001 0c08 0859 be98
0000030 0001 0c4c 07d1 be98 0001 0c5a 070f be98
0000040 0001 0c3f 074a be98 0001 0bf3 07e5 be98
0000050 0001 0c40 07e4 be98 0001 0c40 07f5 be98
0000060 0001 0c63 07e3 be98 0001 0c3c 07d2 be98
0000070 0001 0c44 07ce be98 0001 0c3e 07d2 be98
0000080 0001 0c40 07cf be98 0001 0c56 071f be98

which does actually seem to be representative of reasonalbe screen positions

Dave
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/