kbc.h 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. /*
  2. * Platform definitions for tegra-kbc keyboard input driver
  3. *
  4. * Copyright (c) 2010-2011, NVIDIA Corporation.
  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 as published by
  8. * the Free Software Foundation; either version 2 of the License, or
  9. * (at your option) any later version.
  10. *
  11. * This program is distributed in the hope that it will be useful, but WITHOUT
  12. * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  13. * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
  14. * more details.
  15. *
  16. * You should have received a copy of the GNU General Public License along
  17. * with this program; if not, write to the Free Software Foundation, Inc.,
  18. * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  19. */
  20. #ifndef ASMARM_ARCH_TEGRA_KBC_H
  21. #define ASMARM_ARCH_TEGRA_KBC_H
  22. #include <linux/types.h>
  23. #include <linux/input/matrix_keypad.h>
  24. #define KBC_MAX_GPIO 24
  25. #define KBC_MAX_KPENT 8
  26. #define KBC_MAX_ROW 16
  27. #define KBC_MAX_COL 8
  28. #define KBC_MAX_KEY (KBC_MAX_ROW * KBC_MAX_COL)
  29. enum tegra_pin_type {
  30. PIN_CFG_IGNORE,
  31. PIN_CFG_COL,
  32. PIN_CFG_ROW,
  33. };
  34. struct tegra_kbc_pin_cfg {
  35. enum tegra_pin_type type;
  36. unsigned char num;
  37. };
  38. struct tegra_kbc_wake_key {
  39. u8 row:4;
  40. u8 col:4;
  41. };
  42. struct tegra_kbc_platform_data {
  43. unsigned int debounce_cnt;
  44. unsigned int repeat_cnt;
  45. struct tegra_kbc_pin_cfg pin_cfg[KBC_MAX_GPIO];
  46. const struct matrix_keymap_data *keymap_data;
  47. u32 wakeup_key;
  48. bool wakeup;
  49. bool use_fn_map;
  50. bool use_ghost_filter;
  51. };
  52. #endif