Merge master.kernel.org:/pub/scm/linux/kernel/git/davej/agpgart
[sfrench/cifs-2.6.git] / include / asm-arm / arch-omap / keypad.h
1 /*
2  *  linux/include/asm-arm/arch-omap/keypad.h
3  *
4  *  Copyright (C) 2006 Komal Shah <komal_shah802003@yahoo.com>
5  *
6  * This program is free software; you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License version 2 as
8  * published by the Free Software Foundation.
9  */
10 #ifndef ASMARM_ARCH_KEYPAD_H
11 #define ASMARM_ARCH_KEYPAD_H
12
13 struct omap_kp_platform_data {
14         int rows;
15         int cols;
16         int *keymap;
17         unsigned int keymapsize;
18         unsigned int rep:1;
19         unsigned long delay;
20         unsigned int dbounce:1;
21         /* specific to OMAP242x*/
22         unsigned int *row_gpios;
23         unsigned int *col_gpios;
24 };
25
26 /* Group (0..3) -- when multiple keys are pressed, only the
27  * keys pressed in the same group are considered as pressed. This is
28  * in order to workaround certain crappy HW designs that produce ghost
29  * keypresses. */
30 #define GROUP_0         (0 << 16)
31 #define GROUP_1         (1 << 16)
32 #define GROUP_2         (2 << 16)
33 #define GROUP_3         (3 << 16)
34 #define GROUP_MASK      GROUP_3
35
36 #define KEY(col, row, val) (((col) << 28) | ((row) << 24) | (val))
37
38 #endif
39