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 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 40