linux/drivers/input
Sebastian Andrzej Siewior 8c896308fe input: ti_am335x_adc: use only FIFO0 and clean up a little
The driver programs a threshold of "coordinate_readouts" say 5. The
REG_FIFO0THR registers says it should it be programmed to "threshold
minus one". The driver does not expect just 5 coordinates but 5 * 2 + 2.
Multiplied by two because 5 for X and 5 for Y and plus 2 because we have
two Z.
The whole thing kind of works because It reads the 5 coordinates for X
and Y from FIFO0 and FIFO1 and the last element in each FIFO is ignored
within the loop and read later.
Nothing guaranties that FIFO1 is ready by the time it is read. In fact I
could see that that FIFO1 reaturns for Y channels 8,9, 10, 12, 6 and for
Y channel 7 for Z. The problem is that channel 7 and channel 12 got
somehow mixed up.
The other Problem is that FIFO1 is also used by the IIO part leading to
wrong results if both (tsc & adc) are used.

The patch tries to clean up the whole thing a little:
- Remove the +1 and -1 in REG_STEPCONFIG, REG_STEPDELAY and its counter
  part in the for loop. This is just confusing.

- Use only FIFO0 in TSC. The fifo has space for 64 entries so should be
  fine.

- Read the whole FIFO in one function and check the channel.

- in case we dawdle around, make sure we only read a multiple of our
  coordinate set. On the second interrupt we will cleanup the remaining
  enties.

Acked-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
2013-06-12 18:50:22 +02:00
..
gameport Input: remove use of __devexit 2012-11-24 00:05:38 -08:00
joystick input/joystick: use get_cycles on ARM 2013-03-14 22:38:20 +01:00
keyboard Removal of GENERIC_GPIO for v3.10 2013-05-09 09:59:16 -07:00
misc Removal of GENERIC_GPIO for v3.10 2013-05-09 09:59:16 -07:00
mouse Removal of GENERIC_GPIO for v3.10 2013-05-09 09:59:16 -07:00
serio Input: apbps2 - convert to devm_ioremap_resource() 2013-04-15 13:40:33 -07:00
tablet Input: wacom - add an eraser to DTH2242/DTK2241 2013-05-23 09:01:28 -07:00
touchscreen input: ti_am335x_adc: use only FIFO0 and clean up a little 2013-06-12 18:50:22 +02:00
apm-power.c Input: random formatting fixes 2012-08-21 22:29:49 -07:00
evbug.c
evdev.c Input: fix use-after-free introduced with dynamic minor changes 2012-10-22 08:50:37 +03:00
ff-core.c Input: random formatting fixes 2012-08-21 22:29:49 -07:00
ff-memless.c Input: random formatting fixes 2012-08-21 22:29:49 -07:00
input-compat.c compat: Use COMPAT_USE_64BIT_TIME in the input subsystem 2012-02-20 12:48:47 -08:00
input-compat.h compat: Use COMPAT_USE_64BIT_TIME in the input subsystem 2012-02-20 12:48:47 -08:00
input-mt.c Input: MT - handle semi-mt devices in core 2013-04-07 21:02:32 -07:00
input-polldev.c
input.c Input: document that unregistering managed devices is not necessary 2013-01-09 09:07:56 -08:00
joydev.c Input: fix use-after-free introduced with dynamic minor changes 2012-10-22 08:50:37 +03:00
Kconfig Input: add couple of missing GENERIC_HARDIRQS dependencies 2013-02-13 20:21:07 -08:00
Makefile Input: matrix-keymap - uninline and prepare for device tree support 2012-05-10 22:38:47 -07:00
matrix-keymap.c input: Export matrix_keypad_parse_of_params() 2013-04-19 00:31:13 +02:00
mousedev.c Input: mousedev - move /dev/input/mice to the correct minor 2012-11-18 23:15:16 -08:00
sparse-keymap.c Input: random formatting fixes 2012-08-21 22:29:49 -07:00