[PATCH v6 0/3] mainline ti tsc2046 adc driver

From: Oleksij Rempel
Date: Wed Apr 28 2021 - 03:32:27 EST


changes v6:
- get blessing from Dmitry Torokhov
- rebase against latest iio/testing
- use simple name for iio_dev->name
- use Jonathan's version for oversampling-ratio description

changes v5:
- remove type for the settling-time-us property

changes v4:
- spell fixes
- add more comments
- make code more readable
- move scan_buf to the priv
- use FIELD_GET to extract ADC data
- make some multi line code as one line
- do not use atomic API for trig_more_count
- fix build warning on 64bit system
- add NULL check for the devm_kasprintf()
- use return devm_iio_device_register(), without additional error
printing.

changes v3:
- different spell fixes
- add some notes about driver structure
- rename the trigger to point on the touchscreen nature of it
- rename DT binding to oversampling-ratio
- make sure we have some defaults in case no DT property is set

changes v2:
- rework and extend DT binding properties
- remove touchscreen related code from the IIO ADC driver
- make trigger be active longer then IRQ is requesting. This is needed
to get "inactive" samples
- make oversampling and settle time configurable

TI TSC2046 is a touchscreen controller based on 8 channel ADC. Since most of
this ADC based touchscreen controller share same set of challenges, it
is better keep then as simple IIO ADC devices attached to a generic
resistive-adc-touch driver.

This driver can replace drivers/input/touchscreen/ads7846.c and has
following advantages over it:
- less code to maintain
- shared code paths (resistive-adc-touch, iio-hwmon, etc)
- can be used as plain IIO ADC to investigate signaling issues or test
real capacity of the plates and attached low-pass filters
(or use the touchscreen as a microphone if you like ;) )

Oleksij Rempel (3):
dt-bindings:iio:adc: add generic settling-time-us and
oversampling-ratio channel properties
dt-bindings:iio:adc: add documentation for TI TSC2046 controller
iio: adc: add ADC driver for the TI TSC2046 controller

.../devicetree/bindings/iio/adc/adc.yaml | 12 +
.../bindings/iio/adc/ti,tsc2046.yaml | 115 +++
MAINTAINERS | 8 +
drivers/iio/adc/Kconfig | 12 +
drivers/iio/adc/Makefile | 1 +
drivers/iio/adc/ti-tsc2046.c | 720 ++++++++++++++++++
6 files changed, 868 insertions(+)
create mode 100644 Documentation/devicetree/bindings/iio/adc/ti,tsc2046.yaml
create mode 100644 drivers/iio/adc/ti-tsc2046.c

--
2.29.2