Input: pxa27x_keypad - introduce driver structure and use KEY() to define matrix...
authorEric Miao <eric.y.miao@gmail.com>
Thu, 31 Jan 2008 05:58:37 +0000 (00:58 -0500)
committerDmitry Torokhov <dmitry.torokhov@gmail.com>
Thu, 31 Jan 2008 05:58:37 +0000 (00:58 -0500)
commit1814db69698479eec2c000a43c83b5f263f6fbb6
tree311c8980e0224d4842125ff1cf49c117f6d2a4e7
parent1a1cd739a4b985f87c47e2809db7e240dba2c385
Input: pxa27x_keypad - introduce driver structure and use KEY() to define matrix keys

 1. Introduce the "struct pxa27x_keypad" structure for driver specific
    information, such as "struct clk", generated matrix key codes and
    so on

 2. Use KEY() macro to define matrix keys, instead of original 8x8 map
    this makes definition easier with keypad where keys are sparse

 3. Keep a generated array in "struct pxa27x_keypad" for fast lookup

 4. Separate the matrix scan into a dedicated function for readability
    and report only those keys whose state has been changed, instead
    of report all states

 5. Make use of KPAS to decide the faster path if only one key has been
    detected

Signed-off-by: Eric Miao <eric.miao@marvell.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
drivers/input/keyboard/pxa27x_keypad.c
include/asm-arm/arch-pxa/pxa27x_keypad.h