|
@@ -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)
|