linux/drivers/iio
Artur Rojek b96952f498 IIO: Ingenic JZ47xx: Add touchscreen mode.
The SADC component in JZ47xx SoCs provides support for touchscreen
operations (pen position and pen down pressure) in single-ended and
differential modes.

The touchscreen component of SADC takes a significant time to stabilize
after first receiving the clock and a delay of 50ms has been empirically
proven to be a safe value before data sampling can begin.

Of the known hardware to use this controller, GCW Zero and Anbernic RG-350
utilize the touchscreen mode by having their joystick(s) attached to the
X/Y positive/negative input pins.

JZ4770 and later SoCs introduce a low-level command feature. With it, up
to 32 commands can be programmed, each one corresponding to a sampling
job. It allows to change the low-voltage reference, the high-voltage
reference, have them connected to VCC, GND, or one of the X-/X+ or Y-/Y+
pins.

This patch introduces support for 6 stream-capable channels:
- channel #0 samples X+/GND
- channel #1 samples Y+/GND
- channel #2 samples X-/GND
- channel #3 samples Y-/GND
- channel #4 samples X+/X-
- channel #5 samples Y+/Y-

Being able to sample X-/GND and Y-/GND is useful on some devices, where
one joystick is connected to the X+/Y+ pins, and a second joystick is
connected to the X-/Y- pins.

All the boards which probe this driver have the interrupt provided from
Device Tree, with no need to handle a case where the IRQ was not provided.

Co-developed-by: Paul Cercueil <paul@crapouillou.net>
Signed-off-by: Paul Cercueil <paul@crapouillou.net>
Signed-off-by: Artur Rojek <contact@artur-rojek.eu>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
2020-07-20 10:28:39 +01:00
..
accel iio: sca3000: Remove an erroneous 'get_device()' 2020-05-10 10:53:36 +01:00
adc IIO: Ingenic JZ47xx: Add touchscreen mode. 2020-07-20 10:28:39 +01:00
afe treewide: Add SPDX license identifier - Makefile/Kconfig 2019-05-21 10:50:46 +02:00
amplifiers iio: amplifiers: ad8366: add support for HMC1119 Attenuator 2020-03-08 17:28:43 +00:00
buffer iio: buffer: rename 'read_first_n' callback to 'read' 2019-12-29 15:20:09 +00:00
chemical iio: chemical: atlas-sensor: correct DO-SM channels 2020-04-25 14:34:51 +01:00
common First set of IIO fixes for the 5.7 cycle. 2020-04-20 14:07:00 +02:00
dac iio: dac: vf610: Fix an error handling path in 'vf610_dac_probe()' 2020-05-02 19:17:08 +01:00
dummy spi: docs: convert to ReST and add it to the kABI bookset 2019-07-31 14:13:13 -06:00
frequency iio: adf4350: Convert to use GPIO descriptor 2019-12-15 11:42:16 +00:00
gyro iio: imu: adis: Add self_test_reg variable 2020-03-08 17:28:30 +00:00
health treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 174 2019-05-30 11:26:41 -07:00
humidity iio: humidity: dht11 remove TODO since it doesn't make sense 2020-01-12 11:34:15 +00:00
imu iio: imu: st_lsm6dsx: unlock on error in st_lsm6dsx_shub_write_raw() 2020-04-25 18:33:54 +01:00
light chrome platform changes for 5.7 2020-04-08 21:25:49 -07:00
magnetometer iio: magnetometer: ak8974: Fix negative raw values in sysfs 2020-02-21 11:59:46 +00:00
multiplexer treewide: Add SPDX license identifier - Makefile/Kconfig 2019-05-21 10:50:46 +02:00
orientation treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 309 2019-06-05 17:37:04 +02:00
position iio: position: Add support for Azoteq IQS624/625 angle sensors 2020-03-27 08:25:59 +00:00
potentiometer iio: potentiometer: add a driver for Maxim 5432-5435 2019-08-05 14:25:08 +01:00
potentiostat iio: potentiostat: lmp9100: fix iio_triggered_buffer_{predisable,postenable} positions 2020-03-08 17:28:53 +00:00
pressure chrome platform changes for 5.7 2020-04-08 21:25:49 -07:00
proximity Merge 5.6-rc7 into staging-next 2020-03-23 08:01:20 +01:00
resolver iio: ad2s1200: Drop legacy include 2019-12-15 11:42:15 +00:00
temperature iio: temperature: Add support for Azoteq IQS620AT temperature sensor 2020-03-27 08:25:50 +00:00
trigger Merge 5.6-rc7 into staging-next 2020-03-23 08:01:20 +01:00
iio_core_trigger.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
iio_core.h iio: buffer: rename 'read_first_n' callback to 'read' 2019-12-29 15:20:09 +00:00
industrialio-buffer.c Merge 5.5-rc7 into staging-next 2020-01-22 09:05:34 +01:00
industrialio-configfs.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
industrialio-core.c First set of IIO fixes for the 5.7 cycle. 2020-04-20 14:07:00 +02:00
industrialio-event.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
industrialio-sw-device.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
industrialio-sw-trigger.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
industrialio-trigger.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
industrialio-triggered-event.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
inkern.c Driver Core and debugfs changes for 5.3-rc1 2019-07-12 12:24:03 -07:00
Kconfig iio: position: Add support for Azoteq IQS624/625 angle sensors 2020-03-27 08:25:59 +00:00
Makefile iio: position: Add support for Azoteq IQS624/625 angle sensors 2020-03-27 08:25:59 +00:00
TODO iio: add a TODO 2020-03-08 17:28:53 +00:00