aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--drivers/input/u5500_keypad.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/drivers/input/u5500_keypad.c b/drivers/input/u5500_keypad.c
index 12375a215..4983105c7 100644
--- a/drivers/input/u5500_keypad.c
+++ b/drivers/input/u5500_keypad.c
@@ -66,7 +66,7 @@ static u16 key_code[KEYPAD_MAX_ROWS * KEYPAD_MAX_COLS] = {
/*C*/ 0, 0, 0, 0, KEY_CAMERA, 0 , 0, 0, KEY_END,
/*O*/ 0, 0, 0, 0, KEY_CAMERA_FOCUS, 0 , 0, 0, KEY_VOLUMEUP,
/*L*/ 0, 0, 0, 0, KEY_MENU, KEY_SEND, 0, 0, KEY_VOLUMEDOWN,
-/*L*/ 0, 0, 0, KEY_BACK, KEY_HOME, 0, 0, 0,
+/*L*/ 0, 0, 0, 0, KEY_BACK, KEY_HOME, 0, 0, 0,
/*U*/ 0, 0, 0, 0, 0, 0, 0, 0, 0,
/*M*/ 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -84,7 +84,7 @@ static void keypad_report(int row, u8 curr, u8 previous)
u8 col = generic_ffs(changed) - 1;
u8 press = curr & BIT_MASK(col);
printf("ROW X COL = %d X %d pressed = %d - key_code= %d\n",
- row, col, press, GET_INDEX_ROW_COL(row, col));
+ row, col, press, key_code[GET_INDEX_ROW_COL(row, col)]);
if (press)
pressed_key |= key_code[GET_INDEX_ROW_COL(row, col)];
else
@@ -170,6 +170,7 @@ void init_keypad(void)
int fun_handler_cam2_back(void)
{
+ printf("Soft reset !!!!! \n");
set_to_peripheral_boot_mode();
do_reset(NULL, 0, 0, NULL);
return 1;
@@ -224,6 +225,8 @@ int wait_for_keypress(ulong msec)
pressed_key = 0;/* Reset KEY press */
ulong usec = msec * 1000;/* milli sec to micro sec */
+ /* scan for key at one first */
+ keypad_scan();
/* set bit 1 in KEYPAD_IRQ_EN register to enable IRQ */
writel(0x01, KEYPAD_IRQ_EN);
/* For delays mor than 10 sec we need loop for every chunks of 10 sec */