keypad.h 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  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. #warning: Please update the board to use matrix_keypad.h instead
  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. /* Group (0..3) -- when multiple keys are pressed, only the
  26. * keys pressed in the same group are considered as pressed. This is
  27. * in order to workaround certain crappy HW designs that produce ghost
  28. * keypresses. */
  29. #define GROUP_0 (0 << 16)
  30. #define GROUP_1 (1 << 16)
  31. #define GROUP_2 (2 << 16)
  32. #define GROUP_3 (3 << 16)
  33. #define GROUP_MASK GROUP_3
  34. #define KEY_PERSISTENT 0x00800000
  35. #define KEYNUM_MASK 0x00EFFFFF
  36. #define KEY(col, row, val) (((col) << 28) | ((row) << 24) | (val))
  37. #define PERSISTENT_KEY(col, row) (((col) << 28) | ((row) << 24) | \
  38. KEY_PERSISTENT)
  39. #endif