kernel_optimize_test/drivers/input
Alberto Panizzo 76cdc083f4 Input: add imx-keypad driver to support the IMX Keypad Port
The IMX family of Application Processors is shipped with a Keypad Port
supported by this driver.

The peripheral can control up to an 8x8 matrix key pad where all the
scanning is done via software.  The hardware provides two interrupts:
one for key presses (KDI) and one for all key releases (KRI). There is
also a simple circuit for glitch reduction (said for synchronization)
made by two series of 3 D-latches clocked by the keypad-clock that
stabilize the interrupts sources. KDI and KRI are fired only if the
respective conditions are maintained for at last 4 keypad-clock cycle.

Since those circuits are poor for a correct debounce process (the
keypad-clock frequency is 32K and bounces longer than 94us are not
masked) the driver, when an interrupt arrives, samples the matrix
with a period of 10ms until the readins are stable for
IMX_KEYPAD_SCANS_FOR_STABILITY times (currently set at 3). After
getting stable result appropriate events are sent through the input
stack.

If some keys are maintained pressed, the driver continues to scan
the matrix with a longer period (60ms) to catch possible multiple
key presses without overloading the cpu. This process ends when all
keys are released.

This driver is tested to build in kernel or as a module and follow
the specification of Freescale Application processors:
i.MX25 i.MX27 i.MX31 i.MX35 i.MX51 especially tested on i.MX31.

Signed-off-by: Alberto Panizzo <maramaopercheseimorto@gmail.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2010-01-31 17:52:57 -08:00
..
gameport Input: ns558 - make pnp device ids constant 2010-01-09 23:29:13 -08:00
joystick Input: xpad - add rumble support for original xbox controller 2010-01-24 22:42:10 -08:00
keyboard Input: add imx-keypad driver to support the IMX Keypad Port 2010-01-31 17:52:57 -08:00
misc Input: uinput - remove BKL from uinput_open function 2010-01-29 23:55:18 -08:00
mouse Merge commit 'v2.6.33-rc5' into next 2010-01-21 23:55:25 -08:00
serio Input: xilinx_ps2 - use resource_size 2010-01-24 22:41:49 -08:00
tablet Input: make USB device ids constant 2010-01-11 00:08:19 -08:00
touchscreen Input: wm97xx - provide coordinate logs for accelerated I/O 2010-01-28 22:38:30 -08:00
apm-power.c
evbug.c Input: struct device - replace bus_id with dev_name(), dev_set_name() 2008-10-30 09:29:05 -04:00
evdev.c Input: evdev - be less aggressive about sending SIGIO notifies 2010-01-06 00:17:04 -08:00
ff-core.c Input: fix memory leak in force feedback core 2009-12-04 22:16:38 -08:00
ff-memless.c Input: ff-memless - add notion of direction to for rumble effects 2009-12-24 21:54:29 -08:00
fixp-arith.h
input-compat.c Input: refactor evdev 32bit compat to be shareable with uinput 2008-10-27 22:03:42 -04:00
input-compat.h Input: refactor evdev 32bit compat to be shareable with uinput 2008-10-27 22:03:42 -04:00
input-polldev.c Input: add generic support for sparse keymaps 2009-12-07 09:26:35 -08:00
input.c Input: implement input filters 2010-01-30 01:47:41 -08:00
joydev.c headers: remove sched.h from poll.h 2009-10-04 15:05:10 -07:00
Kconfig Merge branch 'xen/fbdev' of git://git.kernel.org/pub/scm/linux/kernel/git/jeremy/xen 2009-12-10 09:34:40 -08:00
Makefile Input: add generic support for sparse keymaps 2009-12-07 09:26:35 -08:00
mousedev.c headers: remove sched.h from poll.h 2009-10-04 15:05:10 -07:00
sparse-keymap.c Input: add generic support for sparse keymaps 2009-12-07 09:26:35 -08:00
xen-kbdfront.c Input: xen-kbdfront - make xenbus device ids constant 2010-01-09 23:29:27 -08:00