diff options
-rw-r--r-- | arch/arm/plat-pxa/include/plat/pxa27x_keypad.h | 2 | ||||
-rw-r--r-- | drivers/input/keyboard/pxa27x_keypad.c | 9 |
2 files changed, 10 insertions, 1 deletions
diff --git a/arch/arm/plat-pxa/include/plat/pxa27x_keypad.h b/arch/arm/plat-pxa/include/plat/pxa27x_keypad.h index 7ffb16b80639..5ce8d5e6ea51 100644 --- a/arch/arm/plat-pxa/include/plat/pxa27x_keypad.h +++ b/arch/arm/plat-pxa/include/plat/pxa27x_keypad.h | |||
@@ -46,6 +46,8 @@ struct pxa27x_keypad_platform_data { | |||
46 | unsigned int direct_key_map[MAX_DIRECT_KEY_NUM]; | 46 | unsigned int direct_key_map[MAX_DIRECT_KEY_NUM]; |
47 | /* the key output may be low active */ | 47 | /* the key output may be low active */ |
48 | int direct_key_low_active; | 48 | int direct_key_low_active; |
49 | /* give board a chance to choose the start direct key */ | ||
50 | unsigned int direct_key_mask; | ||
49 | 51 | ||
50 | /* rotary encoders 0 */ | 52 | /* rotary encoders 0 */ |
51 | int enable_rotary0; | 53 | int enable_rotary0; |
diff --git a/drivers/input/keyboard/pxa27x_keypad.c b/drivers/input/keyboard/pxa27x_keypad.c index a60f14e7983e..7f7b72464a37 100644 --- a/drivers/input/keyboard/pxa27x_keypad.c +++ b/drivers/input/keyboard/pxa27x_keypad.c | |||
@@ -391,7 +391,14 @@ static void pxa27x_keypad_config(struct pxa27x_keypad *keypad) | |||
391 | if (pdata->direct_key_num > direct_key_num) | 391 | if (pdata->direct_key_num > direct_key_num) |
392 | direct_key_num = pdata->direct_key_num; | 392 | direct_key_num = pdata->direct_key_num; |
393 | 393 | ||
394 | keypad->direct_key_mask = ((1 << direct_key_num) - 1) & ~mask; | 394 | /* |
395 | * Direct keys usage may not start from KP_DKIN0, check the platfrom | ||
396 | * mask data to config the specific. | ||
397 | */ | ||
398 | if (pdata->direct_key_mask) | ||
399 | keypad->direct_key_mask = pdata->direct_key_mask; | ||
400 | else | ||
401 | keypad->direct_key_mask = ((1 << direct_key_num) - 1) & ~mask; | ||
395 | 402 | ||
396 | /* enable direct key */ | 403 | /* enable direct key */ |
397 | if (direct_key_num) | 404 | if (direct_key_num) |