diff options
Diffstat (limited to 'arch/arm/plat-omap/include/plat/keypad.h')
-rw-r--r-- | arch/arm/plat-omap/include/plat/keypad.h | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/arch/arm/plat-omap/include/plat/keypad.h b/arch/arm/plat-omap/include/plat/keypad.h new file mode 100644 index 00000000000..793ce9d5329 --- /dev/null +++ b/arch/arm/plat-omap/include/plat/keypad.h | |||
@@ -0,0 +1,50 @@ | |||
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 | #ifndef CONFIG_ARCH_OMAP1 | ||
14 | #warning Please update the board to use matrix-keypad driver | ||
15 | #endif | ||
16 | #include <linux/input/matrix_keypad.h> | ||
17 | |||
18 | struct omap_kp_platform_data { | ||
19 | int rows; | ||
20 | int cols; | ||
21 | const struct matrix_keymap_data *keymap_data; | ||
22 | bool rep; | ||
23 | unsigned long delay; | ||
24 | bool dbounce; | ||
25 | /* specific to OMAP242x*/ | ||
26 | unsigned int *row_gpios; | ||
27 | unsigned int *col_gpios; | ||
28 | }; | ||
29 | |||
30 | /* Group (0..3) -- when multiple keys are pressed, only the | ||
31 | * keys pressed in the same group are considered as pressed. This is | ||
32 | * in order to workaround certain crappy HW designs that produce ghost | ||
33 | * keypresses. Two free bits, not used by neither row/col nor keynum, | ||
34 | * must be available for use as group bits. The below GROUP_SHIFT | ||
35 | * macro definition is based on some prior knowledge of the | ||
36 | * matrix_keypad defined KEY() macro internals. | ||
37 | */ | ||
38 | #define GROUP_SHIFT 14 | ||
39 | #define GROUP_0 (0 << GROUP_SHIFT) | ||
40 | #define GROUP_1 (1 << GROUP_SHIFT) | ||
41 | #define GROUP_2 (2 << GROUP_SHIFT) | ||
42 | #define GROUP_3 (3 << GROUP_SHIFT) | ||
43 | #define GROUP_MASK GROUP_3 | ||
44 | #if KEY_MAX & GROUP_MASK | ||
45 | #error Group bits in conflict with keynum bits | ||
46 | #endif | ||
47 | |||
48 | |||
49 | #endif | ||
50 | |||