Skip to content

Commit

Permalink
Input: pxa27x_keypad add choice to set direct_key_mask
Browse files Browse the repository at this point in the history
Direct keys usage may not start from KP_DKIN0, add a msk option
to configure the specifics for platforms that can skip some keys.

Signed-off-by: Chao Xie <[email protected]>
Signed-off-by: Haojian Zhuang <[email protected]>
  • Loading branch information
Chao Xie authored and hzhuang1 committed Apr 27, 2012
1 parent ee1d804 commit fb054bf
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 1 deletion.
2 changes: 2 additions & 0 deletions arch/arm/plat-pxa/include/plat/pxa27x_keypad.h
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,8 @@ struct pxa27x_keypad_platform_data {
unsigned int direct_key_map[MAX_DIRECT_KEY_NUM];
/* the key output may be low active */
int direct_key_low_active;
/* give board a chance to choose the start direct key */
unsigned int direct_key_mask;

/* rotary encoders 0 */
int enable_rotary0;
Expand Down
9 changes: 8 additions & 1 deletion drivers/input/keyboard/pxa27x_keypad.c
Original file line number Diff line number Diff line change
Expand Up @@ -391,7 +391,14 @@ static void pxa27x_keypad_config(struct pxa27x_keypad *keypad)
if (pdata->direct_key_num > direct_key_num)
direct_key_num = pdata->direct_key_num;

keypad->direct_key_mask = ((1 << direct_key_num) - 1) & ~mask;
/*
* Direct keys usage may not start from KP_DKIN0, check the platfrom
* mask data to config the specific.
*/
if (pdata->direct_key_mask)
keypad->direct_key_mask = pdata->direct_key_mask;
else
keypad->direct_key_mask = ((1 << direct_key_num) - 1) & ~mask;

/* enable direct key */
if (direct_key_num)
Expand Down

0 comments on commit fb054bf

Please sign in to comment.