[PATCH 3/4] iio: mxs: Implement support for touchscreen
From: marex@denx.de (Marek Vasut)
Date: 2012-12-08 21:03:57
Also in:
linux-iio
Dear Fabio Estevam,
On Fri, Dec 7, 2012 at 1:24 PM, Marek Vasut [off-list ref] wrote:quoted
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> Cc: Fabio Estevam <redacted> Cc: Jonathan Cameron <jic23@kernel.org> Cc: Shawn Guo <redacted> --- .../bindings/staging/iio/adc/mxs-lradc.txt | 6 + drivers/staging/iio/adc/mxs-lradc.c | 435 +++++++++++++++++++-What about adding the touchscreen support into a separate file, so that users can select/deselect it via Kconfig option?
The touchscreen is way too intertwined with the LRADC, that's why I kept it in single file. Separating it away would only spawn third lradc.h header file with all the shared data etc. I'll elaborate on it more in the other email.
Not everyone using lradc would be necessarily interested in the touchscreen functionality, so better to let it optional.
You can actually disable it via device tree property (and it's disabled by default).
Thanks, Fabio Estevam
Best regards, Marek Vasut