z5 phone:home key changed && codec8994 support
[firefly-linux-kernel-4.4.55.git] / arch / arm / mach-rk29 / board-rk29-z5-key.c
1 #include <mach/key.h>
2 #include <mach/gpio.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   = "menu",
13                 .code   = EV_MENU,
14                 .gpio   = RK29_PIN6_PA0,
15                 .active_low = PRESS_LEV_LOW,
16         },
17         {
18                 .desc   = "vol+",
19                 .code   = KEY_VOLUMEUP,
20                 .gpio   = RK29_PIN6_PA1,
21                 .active_low = PRESS_LEV_LOW,
22         },
23         {
24                 .desc   = "vol-",
25                 .code   = KEY_VOLUMEDOWN,
26                 .gpio   = RK29_PIN6_PA2,
27                 .active_low = PRESS_LEV_LOW,
28         },
29         {
30                 .desc   = "home",
31                 .code   = KEY_HOME,
32                 .gpio   = RK29_PIN6_PA3,
33                 .active_low = PRESS_LEV_LOW,
34         },
35         {
36                 .desc   = "search",
37                 .code   = KEY_SEARCH,
38                 .gpio   = RK29_PIN6_PA4,
39                 .active_low = PRESS_LEV_LOW,
40         },
41         {
42                 .desc   = "esc",
43                 .code   = KEY_BACK,
44                 .gpio   = RK29_PIN6_PA5,
45                 .active_low = PRESS_LEV_LOW,
46         },
47         {
48                 .desc   = "sensor",
49                 .code   = KEY_CAMERA,
50                 .gpio   = RK29_PIN6_PA6,
51                 .active_low = PRESS_LEV_LOW,
52         },
53         {
54                 .desc   = "play",
55                 .code   = KEY_POWER,
56                 .gpio   = RK29_PIN6_PA7,
57                 .active_low = PRESS_LEV_LOW,
58                 .wakeup = 1,
59         },
60 #if 0
61         {
62                 .desc   = "vol+",
63                 .code   = KEY_VOLUMEDOWN,
64                 .adc_value      = 95,
65                 .active_low = PRESS_LEV_LOW,
66         },
67         {
68                 .desc   = "vol-",
69                 .code   = KEY_VOLUMEUP,
70                 .adc_value      = 249,
71                 .active_low = PRESS_LEV_LOW,
72         },
73         {
74                 .desc   = "menu",
75                 .code   = EV_MENU,
76                 .adc_value      = 406,
77                 .active_low = PRESS_LEV_LOW,
78         },
79         {
80                 .desc   = "home",
81                 .code   = KEY_HOME,
82                 .code_long_press = KEY_F4,
83                 .adc_value      = 561,
84                 .active_low = PRESS_LEV_LOW,
85         },
86         {
87                 .desc   = "esc",
88                 .code   = KEY_ESC,
89                 .adc_value      = 726,
90                 .active_low = PRESS_LEV_LOW,
91         },
92         {
93                 .desc   = "adkey6",
94                 .code   = KEY_BACK,
95                 .code_long_press = EV_ENCALL,
96                 .adc_value      = 899,
97                 .active_low = PRESS_LEV_LOW,
98         },
99 #endif
100 };
101 struct rk29_keys_platform_data rk29_keys_pdata = {
102         .buttons        = key_button,
103         .nbuttons       = ARRAY_SIZE(key_button),
104         .chn    = -1,  //chn: 0-7, if do not use ADC,set 'chn' -1
105 };
106