rk2928 add phonepad support
[firefly-linux-kernel-4.4.55.git] / arch / arm / mach-rk2928 / board-rk2928-phonepad-key.c
1 #include <mach/gpio.h>
2 #include <plat/key.h>
3
4 #define EV_ENCALL                               KEY_F4
5 #define EV_MENU                                 KEY_F1
6
7 #define PRESS_LEV_LOW                   1
8 #define PRESS_LEV_HIGH                  0
9
10 static struct rk29_keys_button key_button[] = {
11         {
12                 .desc   = "play",
13                 .code   = KEY_POWER,
14                 .gpio   = RK2928_PIN1_PA4,
15                 .active_low = PRESS_LEV_LOW,
16                 //.code_long_press = EV_ENCALL,
17                 .wakeup = 1,
18         },
19 #if defined(CONFIG_MACH_RK2928_PHONEPAD_760)
20         {
21                 .desc   = "vol+",
22                 .code   = KEY_VOLUMEDOWN,
23                 .gpio = INVALID_GPIO,
24                 .adc_value      = 1,
25                 .active_low = PRESS_LEV_LOW,
26         },
27         {
28                 .desc   = "vol-",
29                 .code   = KEY_VOLUMEUP,
30                 .gpio = INVALID_GPIO,
31                 .adc_value      = 512,
32                 .active_low = PRESS_LEV_LOW,
33         },
34 #else
35         {
36                 .desc   = "vol+",
37                 .code   = KEY_VOLUMEUP,
38                 .gpio = INVALID_GPIO,
39                 .adc_value      = 1,
40                 .active_low = PRESS_LEV_LOW,
41         },
42         {
43                 .desc   = "vol-",
44                 .code   = KEY_VOLUMEDOWN,
45                 .gpio = INVALID_GPIO,
46                 .adc_value      = 512,
47                 .active_low = PRESS_LEV_LOW,
48         },
49
50 #endif
51
52 };
53 struct rk29_keys_platform_data rk29_keys_pdata = {
54         .buttons        = key_button,
55         .nbuttons       = ARRAY_SIZE(key_button),
56         .chn    = 1,  //chn: 0-7, if do not use ADC,set 'chn' -1
57 };
58