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 #define KBC_MAX_GPIO 24 28 #define KBC_MAX_KPENT 8 29 30 #define KBC_MAX_ROW 16 31 #define KBC_MAX_COL 8 32 #define KBC_MAX_KEY (KBC_MAX_ROW * KBC_MAX_COL) 33 34 enum tegra_pin_type { 35 PIN_CFG_IGNORE, 36 PIN_CFG_COL, 37 PIN_CFG_ROW, 38 }; 39 40 struct tegra_kbc_pin_cfg { 41 enum tegra_pin_type type; 42 unsigned char num; 43 }; 44 45 struct tegra_kbc_wake_key { 46 u8 row:4; 47 u8 col:4; 48 }; 49 50 struct tegra_kbc_platform_data { 51 unsigned int debounce_cnt; 52 unsigned int repeat_cnt; 53 54 struct tegra_kbc_pin_cfg pin_cfg[KBC_MAX_GPIO]; 55 const struct matrix_keymap_data *keymap_data; 56 57 u32 wakeup_key; 58 bool wakeup; 59 bool use_fn_map; 60 bool use_ghost_filter; 61 }; 62 #endif 63