linux/drivers/input/touchscreen
Dirk Behme 62f4666968 Input: zforce - make the interrupt GPIO optional
Add support for hardware which uses an I2C Serializer / Deserializer
(SerDes) to communicate with the zFroce touch driver. In this case the
SerDes will be configured as an interrupt controller and the zForce driver
will have no access to poll the GPIO line.

To support this, we add two dedicated new GPIOs in the device tree:
reset-gpios and irq-gpios, with the irq-gpios being optional.

To not break the existing device trees, the index based 'gpios' entries
are still supported, but marked as deprecated.

With this, if the interrupt GPIO is available, either via the old or new
device tree style, the while loop will read and handle the packets as long
as the GPIO indicates that the interrupt is asserted (existing, unchanged
driver behavior).

If the interrupt GPIO isn't available, i.e. not configured via the new
device tree style, we are falling back to one read per ISR invocation
(new behavior to support the SerDes).

Note that the gpiod functions help to handle the optional GPIO:
devm_gpiod_get_index_optional() will return NULL in case the interrupt
GPIO isn't available. And gpiod_get_value_cansleep() does cover this, too,
by returning 0 in this case.

Signed-off-by: Dirk Behme <dirk.behme@de.bosch.com>
Reviewed-by: Heiko Stuebner <heiko.stuebner@bq.com>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
2015-08-03 14:10:10 -07:00
..
88pm860x-ts.c input: touchscreen: drop owner assignment from platform_drivers 2014-10-20 16:20:41 +02:00
ad7877.c Input: touchscreen - use __maybe_unused instead of ifdef around suspend/resume 2014-11-02 00:10:07 -07:00
ad7879-i2c.c Input: drop owner assignment from i2c_driver 2015-07-17 16:57:00 -07:00
ad7879-spi.c Input: ad7879-spi - remove redundant spi_set_drvdata 2013-09-20 09:58:29 -07:00
ad7879.c Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input 2014-12-17 10:06:02 -08:00
ad7879.h
ads7846.c Input: ads7846 - change name of wakeup property to "wakeup-source" 2015-07-23 15:01:22 -07:00
ar1021_i2c.c Input: drop owner assignment from i2c_driver 2015-07-17 16:57:00 -07:00
atmel_mxt_ts.c Input: drop owner assignment from i2c_driver 2015-07-17 16:57:00 -07:00
atmel-wm97xx.c input: touchscreen: drop owner assignment from platform_drivers 2014-10-20 16:20:41 +02:00
auo-pixcir-ts.c Input: drop owner assignment from i2c_driver 2015-07-17 16:57:00 -07:00
bcm_iproc_tsc.c Input: add Broadcom iProc touchscreen driver 2015-03-23 11:04:48 -07:00
bu21013_ts.c Input: drop owner assignment from i2c_driver 2015-07-17 16:57:00 -07:00
chipone_icn8318.c Input: drop owner assignment from i2c_driver 2015-07-17 16:57:00 -07:00
cy8ctmg110_ts.c Input: drop owner assignment from i2c_driver 2015-07-17 16:57:00 -07:00
cyttsp4_core.c Input: cyttsp4 - use swap() in cyttsp4_get_touch() 2015-06-11 16:47:34 -07:00
cyttsp4_core.h Input: cyttsp4 - use 16bit address for I2C/SPI communication 2013-07-06 21:57:06 -07:00
cyttsp4_i2c.c Input: drop owner assignment from i2c_driver 2015-07-17 16:57:00 -07:00
cyttsp4_spi.c Input: cyttsp4 - replace IS_ERR and PTR_ERR with PTR_ERR_OR_ZERO 2013-11-11 00:01:45 -08:00
cyttsp_core.c Input: touchscreen - use __maybe_unused instead of ifdef around suspend/resume 2014-11-02 00:10:07 -07:00
cyttsp_core.h Input: cyttsp4 - use 16bit address for I2C/SPI communication 2013-07-06 21:57:06 -07:00
cyttsp_i2c_common.c Input: cyttsp - include appropriate header file in cyttsp_i2c_common.c 2013-12-15 02:54:04 -08:00
cyttsp_i2c.c Input: drop owner assignment from i2c_driver 2015-07-17 16:57:00 -07:00
cyttsp_spi.c Input: cyttsp4 - use 16bit address for I2C/SPI communication 2013-07-06 21:57:06 -07:00
da9034-ts.c input: touchscreen: drop owner assignment from platform_drivers 2014-10-20 16:20:41 +02:00
da9052_tsi.c input: touchscreen: drop owner assignment from platform_drivers 2014-10-20 16:20:41 +02:00
dynapro.c Input: delete non-required instances of include <linux/init.h> 2014-01-06 23:23:57 -08:00
edt-ft5x06.c Input: drop owner assignment from i2c_driver 2015-07-17 16:57:00 -07:00
eeti_ts.c Input: touchscreen - use __maybe_unused instead of ifdef around suspend/resume 2014-11-02 00:10:07 -07:00
egalax_ts.c Input: touchscreen - export OF module alias information 2015-07-30 11:05:37 -07:00
elants_i2c.c Input: drop owner assignment from i2c_driver 2015-07-17 16:57:00 -07:00
elo.c Input: delete non-required instances of include <linux/init.h> 2014-01-06 23:23:57 -08:00
fujitsu_ts.c Input: delete non-required instances of include <linux/init.h> 2014-01-06 23:23:57 -08:00
goodix.c Input: export I2C module alias information in missing drivers 2015-07-30 11:05:37 -07:00
gunze.c Input: delete non-required instances of include <linux/init.h> 2014-01-06 23:23:57 -08:00
hampshire.c Input: delete non-required instances of include <linux/init.h> 2014-01-06 23:23:57 -08:00
hp680_ts_input.c Input: hp680_ts_input - ensure arguments to request_irq and free_irq are compatible 2012-03-12 22:17:56 -07:00
htcpen.c Input: htcpen - remove redundant dev_set_drvdata 2013-09-18 07:53:30 -07:00
ili210x.c Input: drop owner assignment from i2c_driver 2015-07-17 16:57:00 -07:00
inexio.c Input: delete non-required instances of include <linux/init.h> 2014-01-06 23:23:57 -08:00
intel-mid-touch.c input: touchscreen: drop owner assignment from platform_drivers 2014-10-20 16:20:41 +02:00
ipaq-micro-ts.c Input: touchscreen - use __maybe_unused instead of ifdef around suspend/resume 2014-11-02 00:10:07 -07:00
jornada720_ts.c input: touchscreen: drop owner assignment from platform_drivers 2014-10-20 16:20:41 +02:00
Kconfig Input: tsc2005 - convert to regmap 2015-07-27 22:28:18 -07:00
lpc32xx_ts.c input: touchscreen: drop owner assignment from platform_drivers 2014-10-20 16:20:41 +02:00
mainstone-wm97xx.c Input: delete non-required instances of include <linux/init.h> 2014-01-06 23:23:57 -08:00
Makefile Input: of_touchscreen - switch to using device properties 2015-07-11 17:26:45 -07:00
max11801_ts.c Input: drop owner assignment from i2c_driver 2015-07-17 16:57:00 -07:00
mc13783_ts.c input: touchscreen: drop owner assignment from platform_drivers 2014-10-20 16:20:41 +02:00
mcs5000_ts.c Input: mcs5000_ts - remove ifdef around power management methods 2014-07-30 22:52:56 -07:00
migor_ts.c Input: convert I2C drivers to use module_i2c_driver() 2012-03-16 23:06:19 -07:00
mk712.c
mms114.c Input: touchscreen - export OF module alias information 2015-07-30 11:05:37 -07:00
mtouch.c Input: delete non-required instances of include <linux/init.h> 2014-01-06 23:23:57 -08:00
of_touchscreen.c Input: of_touchscreen - switch to using device properties 2015-07-11 17:26:45 -07:00
pcap_ts.c input: touchscreen: drop owner assignment from platform_drivers 2014-10-20 16:20:41 +02:00
penmount.c Input: delete non-required instances of include <linux/init.h> 2014-01-06 23:23:57 -08:00
pixcir_i2c_ts.c Linux 4.2-rc3 2015-07-20 10:08:17 -07:00
s3c2410_ts.c Input: s3c2410_ts - constify platform_device_id 2015-05-06 16:56:55 -07:00
st1232.c Input: drop owner assignment from i2c_driver 2015-07-17 16:57:00 -07:00
stmpe-ts.c Input: stmpe-ts - enforce device tree only mode 2015-05-26 14:16:08 -07:00
sun4i-ts.c Input: sun4i-ts - allow controlling filter and sensitivity via DT 2015-03-23 09:11:11 -07:00
sur40.c [media] return BUF_STATE_ERROR if streaming stopped during acquisition 2015-05-30 11:45:00 -03:00
sx8654.c Input: sx8654 - fix memory allocation check 2015-05-13 10:29:33 -07:00
ti_am335x_tsc.c Input: ti_am335x_tsc - replace delta filtering with median filtering 2015-02-03 11:50:39 -08:00
touchit213.c Input: delete non-required instances of include <linux/init.h> 2014-01-06 23:23:57 -08:00
touchright.c Input: delete non-required instances of include <linux/init.h> 2014-01-06 23:23:57 -08:00
touchwin.c Input: delete non-required instances of include <linux/init.h> 2014-01-06 23:23:57 -08:00
tps6507x-ts.c input: touchscreen: drop owner assignment from platform_drivers 2014-10-20 16:20:41 +02:00
tsc40.c Input: delete non-required instances of include <linux/init.h> 2014-01-06 23:23:57 -08:00
tsc2005.c Input: tsc2005 - convert to gpiod 2015-07-27 22:28:19 -07:00
tsc2007.c Input: drop owner assignment from i2c_driver 2015-07-17 16:57:00 -07:00
ucb1400_ts.c Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input 2014-12-17 10:06:02 -08:00
usbtouchscreen.c Input: usbtouchscreen - add new model from IRTOUCHSYSTEMS 2015-03-24 09:29:34 -07:00
w90p910_ts.c input: touchscreen: drop owner assignment from platform_drivers 2014-10-20 16:20:41 +02:00
wacom_i2c.c Input: drop owner assignment from i2c_driver 2015-07-17 16:57:00 -07:00
wacom_w8001.c Input: delete non-required instances of include <linux/init.h> 2014-01-06 23:23:57 -08:00
wdt87xx_i2c.c Input: wdt87xx_i2c - change the sleep time to 2500ms after the sw reset 2015-07-11 23:26:33 -07:00
wm97xx-core.c Input: wm97xx - adapt parameters to tosa touchscreen. 2014-10-24 17:27:31 -07:00
wm831x-ts.c input: touchscreen: drop owner assignment from platform_drivers 2014-10-20 16:20:41 +02:00
wm9705.c
wm9712.c Input: wm971x - fix typo in module parameter description 2014-09-09 16:52:09 -07:00
wm9713.c Input: wm971x - fix typo in module parameter description 2014-09-09 16:52:09 -07:00
zforce_ts.c Input: zforce - make the interrupt GPIO optional 2015-08-03 14:10:10 -07:00
zylonite-wm97xx.c Input: delete non-required instances of include <linux/init.h> 2014-01-06 23:23:57 -08:00