input: rk_key: use dm universal interface to parse event

Change-Id: I80c7a75a4150f1a8ebbf3d70541aa737cd687f91
Signed-off-by: Joseph Chen <chenjh@rock-chips.com>
This commit is contained in:
Joseph Chen 2018-02-28 14:22:38 +08:00 committed by Kever Yang
parent 3fb8400061
commit 6cef563abc
1 changed files with 3 additions and 43 deletions

View File

@ -149,52 +149,12 @@ static int rk_keys_read(struct udevice *dev, int code)
printf("%s: failed to read saradc\n",
key[i].name);
} else {
/* Get min, max */
max = key[i].value + key[i].margin;
if (key[i].value > key[i].margin)
min = key[i].value - key[i].margin;
else
min = key[i].value;
/* Check */
if ((adcval <= max) && (adcval >= min)) {
report = KEY_PRESS_DOWN;
printf("'%s' key pressed down\n",
key[i].name);
} else {
report = KEY_PRESS_NONE;
}
report = key_parse_adc_event(key[i], adcval);
}
break;
} else {
debug("%s: ms: %llu, up=%llu, down=%llu\n",
key[i].name, key[i].up_t - key[i].down_t,
key[i].up_t, key[i].down_t);
if (key[i].down_t && (key[i].up_t > key[i].down_t) &&
(key[i].up_t - key[i].down_t) >= KEY_LONG_DOWN_MS) {
key[i].up_t = 0;
key[i].down_t = 0;
report = KEY_PRESS_LONG_DOWN;
printf("'%s' key long pressed down\n",
key[i].name);
} else if (key[i].down_t && key_get_timer(key[i].down_t) >=
KEY_LONG_DOWN_MS) {
key[i].up_t = 0;
key[i].down_t = 0;
report = KEY_PRESS_LONG_DOWN;
printf("'%s' key long pressed down(hold)\n",
key[i].name);
} else if ((key[i].up_t > key[i].down_t) &&
(key[i].up_t - key[i].down_t) < KEY_LONG_DOWN_MS) {
key[i].up_t = 0;
key[i].down_t = 0;
report = KEY_PRESS_DOWN;
printf("'%s' key pressed down\n", key[i].name);
} else {
report = KEY_PRESS_NONE;
}
report = key_parse_gpio_event(key[i]);
}
break;
}
return report;