keypad.h 968 B

123456789101112131415161718192021222324252627282930313233343536
  1. /*
  2. * linux/include/asm-arm/arch-omap/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 rep:1;
  17. /* specific to OMAP242x*/
  18. unsigned int *row_gpios;
  19. unsigned int *col_gpios;
  20. };
  21. /* Group (0..3) -- when multiple keys are pressed, only the
  22. * keys pressed in the same group are considered as pressed. This is
  23. * in order to workaround certain crappy HW designs that produce ghost
  24. * keypresses. */
  25. #define GROUP_0 (0 << 16)
  26. #define GROUP_1 (1 << 16)
  27. #define GROUP_2 (2 << 16)
  28. #define GROUP_3 (3 << 16)
  29. #define GROUP_MASK GROUP_3
  30. #define KEY(col, row, val) (((col) << 28) | ((row) << 24) | (val))
  31. #endif