input: gpio_key: use dm universal interface to parse event

Change-Id: Ic3b7fca99be30ab7b1bb8a37fd54b603c1da223a
Signed-off-by: Joseph Chen <chenjh@rock-chips.com>
This commit is contained in:
Joseph Chen 2018-02-28 14:23:40 +08:00 committed by Kever Yang
parent 6cef563abc
commit d7a503edb0
1 changed files with 2 additions and 27 deletions

View File

@ -110,33 +110,8 @@ static int gpio_key_read(struct udevice *dev, int code)
for (i = 0; i < priv->key_nr; i++) {
if (key[i].code != code)
continue;
debug("%s: long key 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;