iio: mxs: Implement support for touchscreen
authorMarek Vasut <marex@denx.de>
Fri, 11 Jan 2013 23:35:00 +0000 (23:35 +0000)
committerJonathan Cameron <jic23@kernel.org>
Sat, 26 Jan 2013 10:07:46 +0000 (10:07 +0000)
commit06ddd353f5c8678238d519dcecf9d557e5e1f7a6
tree5492f504680689075f7e555cec5f020e181da65d
parent2b4ff03895e4451719400e9ac50980b9d14af37d
iio: mxs: Implement support for touchscreen

This patch implements support for sampling of a touchscreen into
the MXS LRADC driver. The LRADC block allows configuring some of
it's channels into special mode where they either output the drive
voltage or sample it, allowing it to operate a 4-wire or 5-wire
resistive touchscreen.

In case the touchscreen mode is enabled, the LRADC slot #7 is
reserved for touchscreen only, therefore it is not possible to
sample 8 LRADC channels at time, but only 7 channels.

The touchscreen controller is configured such that the PENDOWN event
disables touchscreen interrupts and triggers execution of worker
thread, which then polls the touchscreen controller for X, Y and
Pressure values. This reduces the overhead of interrupt-driven
operation. Upon the PENUP event, the worker thread re-enables the
PENDOWN detection interrupt and exits.

Signed-off-by: Marek Vasut <marex@denx.de>
Acked-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
Documentation/devicetree/bindings/staging/iio/adc/mxs-lradc.txt
drivers/staging/iio/adc/mxs-lradc.c