keypad.h 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839
  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. struct omap_kp_platform_data {
  13. int rows;
  14. int cols;
  15. int *keymap;
  16. unsigned int keymapsize;
  17. unsigned int rep:1;
  18. unsigned long delay;
  19. unsigned int dbounce:1;
  20. /* specific to OMAP242x*/
  21. unsigned int *row_gpios;
  22. unsigned int *col_gpios;
  23. };
  24. /* Group (0..3) -- when multiple keys are pressed, only the
  25. * keys pressed in the same group are considered as pressed. This is
  26. * in order to workaround certain crappy HW designs that produce ghost
  27. * keypresses. */
  28. #define GROUP_0 (0 << 16)
  29. #define GROUP_1 (1 << 16)
  30. #define GROUP_2 (2 << 16)
  31. #define GROUP_3 (3 << 16)
  32. #define GROUP_MASK GROUP_3
  33. #define KEY(col, row, val) (((col) << 28) | ((row) << 24) | (val))
  34. #endif