summaryrefslogtreecommitdiff
path: root/firmware/target
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/target')
-rw-r--r--firmware/target/arm/as3525/debug-as3525.c52
1 files changed, 41 insertions, 11 deletions
diff --git a/firmware/target/arm/as3525/debug-as3525.c b/firmware/target/arm/as3525/debug-as3525.c
index 3f3536a6e2..2528b1a8ad 100644
--- a/firmware/target/arm/as3525/debug-as3525.c
+++ b/firmware/target/arm/as3525/debug-as3525.c
@@ -432,17 +432,18 @@ end:
432 432
433bool __dbg_ports(void) 433bool __dbg_ports(void)
434{ 434{
435 int line; 435 int line, btn, i;
436 436
437 lcd_clear_display();
438 lcd_setfont(FONT_SYSFIXED); 437 lcd_setfont(FONT_SYSFIXED);
439 438
440 while(1) 439 while(1)
441 { 440 {
441 lcd_clear_display();
442
442 while(1) 443 while(1)
443 { 444 {
444 line = 0; 445 line = 0;
445 lcd_puts(0, line++, "[GPIO Values and Directions]"); 446 lcd_puts(0, line++, "[GPIO Vals and Dirs]");
446 lcd_putsf(0, line++, "GPIOA: %2x DIR: %2x", GPIOA_DATA, GPIOA_DIR); 447 lcd_putsf(0, line++, "GPIOA: %2x DIR: %2x", GPIOA_DATA, GPIOA_DIR);
447 lcd_putsf(0, line++, "GPIOB: %2x DIR: %2x", GPIOB_DATA, GPIOB_DIR); 448 lcd_putsf(0, line++, "GPIOB: %2x DIR: %2x", GPIOB_DATA, GPIOB_DIR);
448 lcd_putsf(0, line++, "GPIOC: %2x DIR: %2x", GPIOC_DATA, GPIOC_DIR); 449 lcd_putsf(0, line++, "GPIOC: %2x DIR: %2x", GPIOC_DATA, GPIOC_DIR);
@@ -459,7 +460,7 @@ bool __dbg_ports(void)
459 if (button_get_w_tmo(HZ/10) == (DEBUG_CANCEL|BUTTON_REL)) 460 if (button_get_w_tmo(HZ/10) == (DEBUG_CANCEL|BUTTON_REL))
460 break; 461 break;
461 462
462 int btn = button_get_w_tmo(HZ/10); 463 btn = button_get_w_tmo(HZ/10);
463 if(btn == (DEBUG_CANCEL|BUTTON_REL)) 464 if(btn == (DEBUG_CANCEL|BUTTON_REL))
464 goto end; 465 goto end;
465 else if(btn == (BUTTON_DOWN|BUTTON_REL)) 466 else if(btn == (BUTTON_DOWN|BUTTON_REL))
@@ -467,6 +468,7 @@ bool __dbg_ports(void)
467 } 468 }
468 469
469#if CONFIG_CPU == AS3525 /* as3525v2 channels are different */ 470#if CONFIG_CPU == AS3525 /* as3525v2 channels are different */
471#define BATTEMP_UNIT 5/2 /* 2.5mV */
470 static const char *adc_name[13] = { 472 static const char *adc_name[13] = {
471 "CHG_OUT ", 473 "CHG_OUT ",
472 "RTCSUP ", 474 "RTCSUP ",
@@ -482,9 +484,29 @@ bool __dbg_ports(void)
482 "I_MicSup2", 484 "I_MicSup2",
483 "VBAT ", 485 "VBAT ",
484 }; 486 };
487#elif CONFIG_CPU == AS3525v2
488#define BATTEMP_UNIT 2 /* 2mV */
489 static const char *adc_name[16] = {
490 "BVDD ",
491 "BVDDR ",
492 "CHGIN ",
493 "CHGOUT ",
494 "VBUS ",
495 NULL,
496 "BatTemp ",
497 NULL,
498 "MicSup ",
499 NULL,
500 "I_MiSsup",
501 NULL,
502 "VBE_1uA ",
503 "VBE_2uA ",
504 "I_CHGact",
505 "I_CHGref",
506 };
507#endif
485 508
486 lcd_clear_display(); 509 lcd_clear_display();
487 int i, btn;
488 510
489 while(1) 511 while(1)
490 { 512 {
@@ -493,7 +515,9 @@ bool __dbg_ports(void)
493 for(i=0; i<5; i++) 515 for(i=0; i<5; i++)
494 lcd_putsf(0, line++, "%s: %d mV", adc_name[i], adc_read(i) * 5); 516 lcd_putsf(0, line++, "%s: %d mV", adc_name[i], adc_read(i) * 5);
495 for(; i<8; i++) 517 for(; i<8; i++)
496 lcd_putsf(0, line++, "%s: %d mV", adc_name[i], adc_read(i)*5/2); 518 if(adc_name[i])
519 lcd_putsf(0, line++, "%s: %d mV", adc_name[i],
520 adc_read(i) * BATTEMP_UNIT);
497#if LCD_HEIGHT < 176 /* clip */ 521#if LCD_HEIGHT < 176 /* clip */
498 lcd_update(); 522 lcd_update();
499 523
@@ -507,12 +531,19 @@ bool __dbg_ports(void)
507 while(1) 531 while(1)
508 { 532 {
509 line = 0; 533 line = 0;
510#endif 534#endif /* LCD_HEIGHT < 176 */
511 for(i=8; i<10; i++) 535 for(i=8; i<10; i++)
512 lcd_putsf(0, line++, "%s: %d mV", adc_name[i], adc_read(i)); 536 if(adc_name[i])
537 lcd_putsf(0, line++, "%s: %d mV", adc_name[i], adc_read(i));
513 for(; i<12; i++) 538 for(; i<12; i++)
514 lcd_putsf(0, line++, "%s: %d uA", adc_name[i], adc_read(i)); 539 if(adc_name[i])
515 lcd_putsf(0, line++, "%s: %d mV", adc_name[i], (adc_read(i) * 5)/2); 540 lcd_putsf(0, line++, "%s: %d uA", adc_name[i], adc_read(i));
541#if CONFIG_CPU == AS3525 /* different units */
542 lcd_putsf(0, line++, "%s: %d mV", adc_name[i], adc_read(i)*5/2);
543#elif CONFIG_CPU == AS3525v2
544 for(; i<16; i++)
545 lcd_putsf(0, line++, "%s: %d mV", adc_name[i], adc_read(i));
546#endif
516 lcd_update(); 547 lcd_update();
517 548
518 btn = button_get_w_tmo(HZ/10); 549 btn = button_get_w_tmo(HZ/10);
@@ -521,7 +552,6 @@ bool __dbg_ports(void)
521 else if(btn == (BUTTON_DOWN|BUTTON_REL)) 552 else if(btn == (BUTTON_DOWN|BUTTON_REL))
522 break; 553 break;
523 } 554 }
524#endif
525 } 555 }
526 556
527end: 557end: