summaryrefslogtreecommitdiffstats
path: root/include/linux/input
diff options
context:
space:
mode:
authorLuotao Fu <l.fu@pengutronix.de>2010-06-10 12:05:23 -0700
committerDmitry Torokhov <dmitry.torokhov@gmail.com>2010-06-10 12:33:59 -0700
commitfb76dd10b91146e9cefbb3cd4e6812c5a95ee43b (patch)
treea5f944375a2e7965ee61223a02455a20469483a9 /include/linux/input
parent1719ec4136035472d3e83a373908dd1b186dbc0b (diff)
downloadlinux-fb76dd10b91146e9cefbb3cd4e6812c5a95ee43b.tar.gz
linux-fb76dd10b91146e9cefbb3cd4e6812c5a95ee43b.tar.bz2
linux-fb76dd10b91146e9cefbb3cd4e6812c5a95ee43b.zip
Input: matrix_keypad - add support for clustered irq
This one adds support of a combined irq source for the whole matrix keypad. This can be useful if all rows and columns of the keypad are e.g. connected to a GPIO expander, which only has one interrupt line for all events on every single GPIO. Signed-off-by: Luotao Fu <l.fu@pengutronix.de> Acked-by: Eric Miao <eric.y.miao@gmail.com> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
Diffstat (limited to 'include/linux/input')
-rw-r--r--include/linux/input/matrix_keypad.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/include/linux/input/matrix_keypad.h b/include/linux/input/matrix_keypad.h
index c964cd7f436a..80352ad6581a 100644
--- a/include/linux/input/matrix_keypad.h
+++ b/include/linux/input/matrix_keypad.h
@@ -41,6 +41,9 @@ struct matrix_keymap_data {
* @col_scan_delay_us: delay, measured in microseconds, that is
* needed before we can keypad after activating column gpio
* @debounce_ms: debounce interval in milliseconds
+ * @clustered_irq: may be specified if interrupts of all row/column GPIOs
+ * are bundled to one single irq
+ * @clustered_irq_flags: flags that are needed for the clustered irq
* @active_low: gpio polarity
* @wakeup: controls whether the device should be set up as wakeup
* source
@@ -63,6 +66,9 @@ struct matrix_keypad_platform_data {
/* key debounce interval in milli-second */
unsigned int debounce_ms;
+ unsigned int clustered_irq;
+ unsigned int clustered_irq_flags;
+
bool active_low;
bool wakeup;
bool no_autorepeat;