Commit fb054bf2 authored by Chao Xie's avatar Chao Xie Committed by Haojian Zhuang

Input: pxa27x_keypad add choice to set direct_key_mask

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: default avatarChao Xie <chao.xie@marvell.com>
Signed-off-by: default avatarHaojian Zhuang <haojian.zhuang@gmail.com>
parent ee1d8040
...@@ -46,6 +46,8 @@ struct pxa27x_keypad_platform_data { ...@@ -46,6 +46,8 @@ struct pxa27x_keypad_platform_data {
unsigned int direct_key_map[MAX_DIRECT_KEY_NUM]; unsigned int direct_key_map[MAX_DIRECT_KEY_NUM];
/* the key output may be low active */ /* the key output may be low active */
int direct_key_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 */ /* rotary encoders 0 */
int enable_rotary0; int enable_rotary0;
......
...@@ -391,6 +391,13 @@ static void pxa27x_keypad_config(struct pxa27x_keypad *keypad) ...@@ -391,6 +391,13 @@ static void pxa27x_keypad_config(struct pxa27x_keypad *keypad)
if (pdata->direct_key_num > direct_key_num) if (pdata->direct_key_num > direct_key_num)
direct_key_num = pdata->direct_key_num; direct_key_num = pdata->direct_key_num;
/*
* 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; keypad->direct_key_mask = ((1 << direct_key_num) - 1) & ~mask;
/* enable direct key */ /* enable direct key */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment