Linux-libre 3.10.98-gnu
[librecmc/linux-libre.git] / include / linux / input / pmic8xxx-keypad.h
1 /* Copyright (c) 2011, Code Aurora Forum. All rights reserved.
2  *
3  * This program is free software; you can redistribute it and/or modify
4  * it under the terms of the GNU General Public License version 2 and
5  * only version 2 as published by the Free Software Foundation.
6  *
7  * This program is distributed in the hope that it will be useful,
8  * but WITHOUT ANY WARRANTY; without even the implied warranty of
9  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
10  * GNU General Public License for more details.
11  */
12
13 #ifndef __PMIC8XXX_KEYPAD_H__
14 #define __PMIC8XXX_KEYPAD_H__
15
16 #include <linux/input/matrix_keypad.h>
17
18 #define PM8XXX_KEYPAD_DEV_NAME     "pm8xxx-keypad"
19
20 /**
21  * struct pm8xxx_keypad_platform_data - platform data for keypad
22  * @keymap_data - matrix keymap data
23  * @input_name - input device name
24  * @input_phys_device - input device name
25  * @num_cols - number of columns of keypad
26  * @num_rows - number of row of keypad
27  * @debounce_ms - debounce period in milliseconds
28  * @scan_delay_ms - scan delay in milliseconds
29  * @row_hold_ns - row hold period in nanoseconds
30  * @wakeup - configure keypad as wakeup
31  * @rep - enable or disable key repeat bit
32  */
33 struct pm8xxx_keypad_platform_data {
34         const struct matrix_keymap_data *keymap_data;
35
36         const char *input_name;
37         const char *input_phys_device;
38
39         unsigned int num_cols;
40         unsigned int num_rows;
41         unsigned int rows_gpio_start;
42         unsigned int cols_gpio_start;
43
44         unsigned int debounce_ms;
45         unsigned int scan_delay_ms;
46         unsigned int row_hold_ns;
47
48         bool wakeup;
49         bool rep;
50 };
51
52 #endif /*__PMIC8XXX_KEYPAD_H__ */