5 #include <asm/arch/mfp.h>
6 #include <asm/arch/chip_drv_common_io.h>
8 void board_keypad_init(void)
10 sprd_gpio_request(NULL, 124);
11 sprd_gpio_direction_input(NULL, 124);
13 sprd_gpio_request(NULL, 125);
14 sprd_gpio_direction_input(NULL, 125);
16 printf("[gpio keys] init!\n");
20 unsigned char board_key_scan(void)
22 uint32_t key_code = KEY_RESERVED;
23 int gpio_volumeup = -1;
24 int gpio_volumedown = -1;
26 gpio_volumedown = sprd_gpio_get(NULL, 124);
27 if(gpio_volumedown < 0)
28 printf("[gpio keys] volumedown : sprd_gpio_get return ERROR!\n");
30 gpio_volumeup = sprd_gpio_get(NULL, 125);
32 printf("[gpio keys] volumeup : sprd_gpio_get return ERROR!\n");
34 if(0 == gpio_volumedown) {
35 key_code = KEY_VOLUMEDOWN;
36 printf("[gpio keys] volumedown pressed!\n");
40 if(0 == gpio_volumeup) {
41 key_code = KEY_VOLUMEUP;
42 printf("[gpio keys] volumeup pressed!\n");
46 printf("[gpio keys] no key pressed!\n");
50 unsigned int check_key_boot(unsigned char key)
52 if(KEY_VOLUMEUP == key)
53 return BOOT_CALIBRATE;
54 else if(KEY_HOME == key)
56 else if(KEY_VOLUMEDOWN== key)