]>
Commit | Line | Data |
---|---|---|
1814db69 EM |
1 | #ifndef __ASM_ARCH_PXA27x_KEYPAD_H |
2 | #define __ASM_ARCH_PXA27x_KEYPAD_H | |
3 | ||
4 | #include <linux/input.h> | |
5 | ||
6 | #define MAX_MATRIX_KEY_ROWS (8) | |
7 | #define MAX_MATRIX_KEY_COLS (8) | |
5a90e5bc | 8 | |
62059d9e EM |
9 | /* pxa3xx keypad platform specific parameters |
10 | * | |
11 | * NOTE: | |
12 | * 1. direct_key_num indicates the number of keys in the direct keypad | |
13 | * _plus_ the number of rotary-encoder sensor inputs, this can be | |
14 | * left as 0 if only rotary encoders are enabled, the driver will | |
15 | * automatically calculate this | |
16 | * | |
17 | * 2. direct_key_map is the key code map for the direct keys, if rotary | |
18 | * encoder(s) are enabled, direct key 0/1(2/3) will be ignored | |
19 | * | |
20 | * 3. rotary can be either interpreted as a relative input event (e.g. | |
21 | * REL_WHEEL/REL_HWHEEL) or specific keys (e.g. UP/DOWN/LEFT/RIGHT) | |
22 | */ | |
0e5f11aa | 23 | struct pxa27x_keypad_platform_data { |
1814db69 EM |
24 | |
25 | /* code map for the matrix keys */ | |
26 | unsigned int matrix_key_rows; | |
27 | unsigned int matrix_key_cols; | |
28 | unsigned int *matrix_key_map; | |
29 | int matrix_key_map_size; | |
62059d9e EM |
30 | |
31 | /* direct keys */ | |
32 | int direct_key_num; | |
33 | unsigned int direct_key_map[8]; | |
34 | ||
35 | /* rotary encoders 0 */ | |
36 | int enable_rotary0; | |
37 | int rotary0_rel_code; | |
38 | int rotary0_up_key; | |
39 | int rotary0_down_key; | |
40 | ||
41 | /* rotary encoders 1 */ | |
42 | int enable_rotary1; | |
43 | int rotary1_rel_code; | |
44 | int rotary1_up_key; | |
45 | int rotary1_down_key; | |
5a90e5bc | 46 | }; |
1814db69 EM |
47 | |
48 | #define KEY(row, col, val) (((row) << 28) | ((col) << 24) | (val)) | |
49 | ||
50 | #endif /* __ASM_ARCH_PXA27x_KEYPAD_H */ |