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: Chao Xie <chao.xie@marvell.com> Signed-off-by: Haojian Zhuang <haojian.zhuang@gmail.com>
This commit is contained in:
Родитель
ee1d8040a6
Коммит
fb054bf269
|
@ -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;
|
||||
|
|
|
@ -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)
|
||||
|
|
Загрузка…
Ссылка в новой задаче