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 21 #ifndef ASMARM_ARCH_TEGRA_KBC_H 22 #define ASMARM_ARCH_TEGRA_KBC_H 23 24 #include <linux/types.h> 25 #include <linux/input/matrix_keypad.h> 26 27 #ifdef CONFIG_ARCH_TEGRA_2x_SOC 28 #define KBC_MAX_GPIO 24 29 #define KBC_MAX_KPENT 8 30 #else 31 #define KBC_MAX_GPIO 20 32 #define KBC_MAX_KPENT 7 33 #endif 34 35 #define KBC_MAX_ROW 16 36 #define KBC_MAX_COL 8 37 #define KBC_MAX_KEY (KBC_MAX_ROW * KBC_MAX_COL) 38 39 struct tegra_kbc_pin_cfg { 40 bool is_row; 41 unsigned char num; 42 }; 43 44 struct tegra_kbc_wake_key { 45 u8 row:4; 46 u8 col:4; 47 }; 48 49 struct tegra_kbc_platform_data { 50 unsigned int debounce_cnt; 51 unsigned int repeat_cnt; 52 53 struct tegra_kbc_pin_cfg pin_cfg[KBC_MAX_GPIO]; 54 const struct matrix_keymap_data *keymap_data; 55 56 u32 wakeup_key; 57 bool wakeup; 58 bool use_fn_map; 59 bool use_ghost_filter; 60 }; 61 #endif 62