]> www.pilppa.org Git - linux-2.6-omap-h63xx.git/blob - arch/arm/plat-omap/include/mach/keypad.h
Merge branch 'omap-fixes'
[linux-2.6-omap-h63xx.git] / arch / arm / plat-omap / include / mach / keypad.h
1 /*
2  *  arch/arm/plat-omap/include/mach/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         int irq;
18         unsigned int keymapsize;
19         unsigned int rep:1;
20         unsigned long delay;
21         unsigned int dbounce:1;
22         /* specific to OMAP242x*/
23         unsigned int *row_gpios;
24         unsigned int *col_gpios;
25 };
26
27 /* Group (0..3) -- when multiple keys are pressed, only the
28  * keys pressed in the same group are considered as pressed. This is
29  * in order to workaround certain crappy HW designs that produce ghost
30  * keypresses. */
31 #define GROUP_0         (0 << 16)
32 #define GROUP_1         (1 << 16)
33 #define GROUP_2         (2 << 16)
34 #define GROUP_3         (3 << 16)
35 #define GROUP_MASK      GROUP_3
36
37 #define ROWCOL_MASK             0xFF000000
38 #define KEY_PERSISTENT          0x00800000
39 #define KEYNUM_MASK             0x00EFFFFF
40 #define KEY(col, row, val) (((col) << 28) | ((row) << 24) | (val))
41 #define PERSISTENT_KEY(col, row) (((col) << 28) | ((row) << 24) | \
42                                                 KEY_PERSISTENT)
43
44 #endif
45