Skip to content

Commit 17b9bf5

Browse files
author
Joy Cho
committed
cmd: odroidtest: Update gpiokey auto test
- Add termination mode using key combination F1+F6 - Update key event display Change-Id: I66d1ba2303dc4050ce022b303cc1a60e45604e47
1 parent 8273f69 commit 17b9bf5

2 files changed

Lines changed: 35 additions & 17 deletions

File tree

cmd/odroidtest.c

Lines changed: 30 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -255,7 +255,7 @@ static int do_odroidtest_lcd(cmd_tbl_t * cmdtp, int flag,
255255
return ret;
256256
}
257257

258-
void btn_draw_key_arrays(int numkeys)
258+
void btn_draw_key_arrays(int numkeys, int key_idx)
259259
{
260260
int i;
261261

@@ -266,7 +266,7 @@ void btn_draw_key_arrays(int numkeys)
266266
lcd_printf(0, 1, 1, "[ GPIO KEY TEST ]");
267267

268268
for (i = 0; i < numkeys; i++) {
269-
if (gpiokeys[i].chk)
269+
if ((gpiokeys[i].chk) && (i != key_idx))
270270
lcd_setfg_color("blue");
271271
else
272272
lcd_setfg_color("red");
@@ -275,6 +275,11 @@ void btn_draw_key_arrays(int numkeys)
275275
0, gpiokeys[i].name);
276276
}
277277

278+
mdelay(200);
279+
280+
lcd_setfg_color("blue");
281+
lcd_printf(gpiokeys[key_idx].x, gpiokeys[key_idx].y,
282+
0, gpiokeys[key_idx].name);
278283
}
279284

280285
static int btn_passed;
@@ -287,15 +292,13 @@ int btn_update_key_status(int key)
287292
if(!(gpiokeys[i].chk)) {
288293
gpiokeys[i].chk = 1;
289294
btn_passed++;
290-
return 1;
291-
} else {
292-
return 0;
293295
}
296+
return i;
294297
}
295298
i++;
296299
}
297300

298-
return 0;
301+
return -1;
299302
}
300303

301304
void btn_set_default(void)
@@ -310,26 +313,41 @@ void btn_set_default(void)
310313
static int do_odroidtest_btn(cmd_tbl_t * cmdtp, int flag,
311314
int argc, char * const argv[])
312315
{
313-
int key, numkeys;
316+
int key, numkeys, key_idx;
314317
const char *hwrev = env_get("hwrev");
315318

316319
if (hwrev && !strcmp(hwrev, "v11"))
317320
numkeys = NUMGPIOKEYS;
318321
else
319322
numkeys = NUMGPIOKEYS - 2;
320323

321-
btn_draw_key_arrays(numkeys);
324+
key_idx = -1;
325+
btn_draw_key_arrays(numkeys, key_idx);
322326
mdelay(2000);
323327

324-
while (btn_passed < numkeys) {
328+
while (1) {
325329
key = wait_key_event();
326-
if (btn_update_key_status(key))
327-
btn_draw_key_arrays(numkeys);
330+
key_idx = btn_update_key_status(key);
331+
btn_draw_key_arrays(numkeys, key_idx);
328332
printf("key 0x%x, passed %d\n", key, btn_passed);
333+
334+
/* termination using F1+F6 */
335+
if ((key == BTN_TRIGGER_HAPPY1) || (key == BTN_TRIGGER_HAPPY6)) {
336+
printf("check termination keys, key_idx %d\n", key_idx);
337+
338+
if(!run_command("gpio input C0", 0)
339+
&& !run_command("gpio input C5", 0)) {
340+
printf("Got termination key!\n");
341+
break;
342+
}
343+
}
329344
}
330345

331346
lcd_setfg_color("white");
332-
lcd_printf(0, 18, 1, "GPIO KEY TEST PASS!");
347+
if (btn_passed == numkeys)
348+
lcd_printf(0, 18, 1, "GPIO KEY TEST PASS!");
349+
else
350+
lcd_printf(0, 18, 1, "GPIO KEY TEST TERMINATED!");
333351

334352
btn_set_default();
335353

cmd/odroidtest.h

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -34,12 +34,12 @@ struct key_arrays gpiokeys[NUMGPIOKEYS] = {
3434
{"[sw6]", BTN_SOUTH, 336, 11, 0},
3535
{"[sw7]", BTN_WEST, 288, 9, 0},
3636
{"[sw8]", BTN_NORTH, 336, 7, 0},
37-
{"[sw9]", BTN_TRIGGER_HAPPY1, 52, 15, 0},
37+
{"[sw9]", BTN_TRIGGER_HAPPY1, 50, 15, 0},
3838
{"[sw10]", BTN_TRIGGER_HAPPY2, 96, 15, 0},
39-
{"[sw11]", BTN_TRIGGER_HAPPY3, 190, 15, 0},
40-
{"[sw12]", BTN_TRIGGER_HAPPY4, 240, 15, 0},
41-
{"[sw13]", BTN_TRIGGER_HAPPY5, 334, 15, 0},
42-
{"[sw14]", BTN_TRIGGER_HAPPY6, 384, 15, 0},
39+
{"[sw11]", BTN_TRIGGER_HAPPY3, 188, 15, 0},
40+
{"[sw12]", BTN_TRIGGER_HAPPY4, 242, 15, 0},
41+
{"[sw13]", BTN_TRIGGER_HAPPY5, 332, 15, 0},
42+
{"[sw14]", BTN_TRIGGER_HAPPY6, 386, 15, 0},
4343
{"[sw15]", BTN_TL, 48, 5, 0},
4444
{"[sw16]", BTN_TR, 384, 5, 0},
4545
{"[sw20]", BTN_TL2, 48, 3, 0},

0 commit comments

Comments
 (0)