1 /* 2 * include/linux/keycombo.h - platform data structure for keycombo driver 3 * 4 * Copyright (C) 2014 Google, Inc. 5 * 6 * This software is licensed under the terms of the GNU General Public 7 * License version 2, as published by the Free Software Foundation, and 8 * may be copied, distributed, and modified under those terms. 9 * 10 * This program is distributed in the hope that it will be useful, 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 * GNU General Public License for more details. 14 * 15 */ 16 17 #ifndef _LINUX_KEYCOMBO_H 18 #define _LINUX_KEYCOMBO_H 19 20 #define KEYCOMBO_NAME "keycombo" 21 22 /* 23 * if key_down_fn and key_up_fn are both present, you are guaranteed that 24 * key_down_fn will return before key_up_fn is called, and that key_up_fn 25 * is called iff key_down_fn is called. 26 */ 27 struct keycombo_platform_data { 28 void (*key_down_fn)(void *); 29 void (*key_up_fn)(void *); 30 void *priv; 31 int key_down_delay; /* Time in ms */ 32 int *keys_up; 33 int keys_down[]; /* 0 terminated */ 34 }; 35 36 #endif /* _LINUX_KEYCOMBO_H */ 37