linux_dsm_epyc7002/drivers/input
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
..
gameport Input: initialize device counter variables with -1 2014-12-03 15:27:17 -08:00
joystick Input: xpad - re-send LED command on present event 2015-06-22 14:24:58 -07:00
keyboard Input: tc3589x-keypad - switch to using managed resources 2015-07-23 17:34:03 -07:00
misc Input: export I2C module alias information in missing drivers 2015-07-30 11:05:37 -07:00
mouse Input: cyapa - do not try to enable proximity reporting on older devices 2015-07-30 11:34:00 -07:00
serio Linux 4.2-rc3 2015-07-20 10:08:17 -07:00
tablet Input: gtco - use sign_extend32() for sign extension 2015-01-26 23:07:45 -08:00
touchscreen Input: zforce - make the interrupt GPIO optional 2015-08-03 14:10:10 -07:00
apm-power.c Input: random formatting fixes 2012-08-21 22:29:49 -07:00
evbug.c
evdev.c Input: evdev - use kvfree() in evdev_release() 2015-05-15 15:58:39 -07:00
ff-core.c Input: ff-core - use for_each_set_bit where appropriate 2015-07-08 21:50:59 -07:00
ff-memless.c [media] fixp-arith: replace sin/cos table by a better precision one 2015-03-02 14:50:06 -03:00
input-compat.c compat: Use COMPAT_USE_64BIT_TIME in the input subsystem 2012-02-20 12:48:47 -08:00
input-compat.h compat: Use COMPAT_USE_64BIT_TIME in the input subsystem 2012-02-20 12:48:47 -08:00
input-leds.c Input: export LEDs as class devices in sysfs 2015-06-11 18:18:11 -07:00
input-mt.c Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input 2015-04-14 18:25:15 -07:00
input-polldev.c Input: implement managed polled input devices 2014-05-14 16:40:04 -07:00
input.c Input: use for_each_set_bit() where appropriate 2015-06-25 14:44:36 -07:00
joydev.c Linux 4.2-rc3 2015-07-20 10:08:17 -07:00
Kconfig Input: export LEDs as class devices in sysfs 2015-06-11 18:18:11 -07:00
Makefile Input: export LEDs as class devices in sysfs 2015-06-11 18:18:11 -07:00
matrix-keymap.c input: Export matrix_keypad_parse_of_params() 2013-04-19 00:31:13 +02:00
mousedev.c Input: mousedev - fix race when creating mixed device 2014-03-29 14:44:23 -07:00
sparse-keymap.c treewide: Fix typo in Documentation/DocBook 2014-02-19 14:58:17 +01:00