kbc.h 1.6 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. #ifdef CONFIG_ARCH_TEGRA_2x_SOC
  25. #define KBC_MAX_GPIO 24
  26. #define KBC_MAX_KPENT 8
  27. #else
  28. #define KBC_MAX_GPIO 20
  29. #define KBC_MAX_KPENT 7
  30. #endif
  31. #define KBC_MAX_ROW 16
  32. #define KBC_MAX_COL 8
  33. #define KBC_MAX_KEY (KBC_MAX_ROW * KBC_MAX_COL)
  34. struct tegra_kbc_pin_cfg {
  35. bool is_row;
  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. unsigned int wake_cnt; /* 0:wake on any key >1:wake on wake_cfg */
  46. const struct tegra_kbc_wake_key *wake_cfg;
  47. struct tegra_kbc_pin_cfg pin_cfg[KBC_MAX_GPIO];
  48. const struct matrix_keymap_data *keymap_data;
  49. bool wakeup;
  50. bool use_fn_map;
  51. };
  52. #endif