diff options
| -rw-r--r-- | board/a4m072/a4m072.c | 62 | 
1 files changed, 23 insertions, 39 deletions
| diff --git a/board/a4m072/a4m072.c b/board/a4m072/a4m072.c index ae7ccbb4e..09a5a5183 100644 --- a/board/a4m072/a4m072.c +++ b/board/a4m072/a4m072.c @@ -270,8 +270,6 @@ static u8 display_buf[DISPLAY_BUF_SIZE];  static u8 display_putc_pos;  static u8 display_out_pos; -static u8 display_dot_enable; -  void display_set(int cmd) {  	if (cmd & DISPLAY_CLEAR) { @@ -281,12 +279,6 @@ void display_set(int cmd) {  	if (cmd & DISPLAY_HOME) {  		display_putc_pos = 0;  	} - -	if (cmd & DISPLAY_MARK) { -		display_dot_enable = 1; -	} else { -		display_dot_enable = 0; -	}  }  #define SEG_A    (1<<0) @@ -314,10 +306,12 @@ void display_set(int cmd) {   * A..Z		index 10..35   * -		index 36   * _		index 37 + * .		index 38   */  #define SYMBOL_DASH		(36)  #define SYMBOL_UNDERLINE	(37) +#define SYMBOL_DOT		(38)  static u8 display_char2seg7_tbl[]=  { @@ -337,28 +331,29 @@ static u8 display_char2seg7_tbl[]=  	SEG_B | SEG_C | SEG_D | SEG_E | SEG_G,			/* d */  	SEG_A | SEG_D | SEG_E | SEG_F | SEG_G,			/* E */  	SEG_A | SEG_E | SEG_F | SEG_G,				/* F */ -	SEG_A | SEG_B | SEG_C | SEG_D | SEG_F | SEG_G,		/* g */ +	0,					/* g - not displayed */  	SEG_B | SEG_C | SEG_E | SEG_F | SEG_G,			/* H */ -	SEG_E | SEG_F,						/* I */ -	SEG_B | SEG_C | SEG_D | SEG_E,				/* J */ -	SEG_A,						/* K - special 1 */ +	SEG_B | SEG_C,						/* I */ +	0,					/* J - not displayed */ +	0,					/* K - not displayed */  	SEG_D | SEG_E | SEG_F,					/* L */ -	SEG_B,						/* m - special 2 */ -	SEG_C | SEG_E | SEG_G,					/* n */ -	SEG_C | SEG_D | SEG_E | SEG_G,				/* o */ +	0,					/* m - not displayed */ +	0,					/* n - not displayed */ +	SEG_A | SEG_B | SEG_C | SEG_D | SEG_E | SEG_F,		/* O */  	SEG_A | SEG_B | SEG_E | SEG_F | SEG_G,			/* P */ -	SEG_A | SEG_B | SEG_C | SEG_F | SEG_G,			/* q */ -	SEG_E | SEG_G,						/* r */ +	0,					/* q - not displayed */ +	0,					/* r - not displayed */  	SEG_A | SEG_C | SEG_D | SEG_F | SEG_G,			/* S */  	SEG_D | SEG_E | SEG_F | SEG_G,				/* t */  	SEG_B | SEG_C | SEG_D | SEG_E | SEG_F,			/* U */ -	SEG_C | SEG_D | SEG_E | SEG_F,				/* V */ -	SEG_C,						/* w - special 3 */ -	SEG_B | SEG_C | SEG_E | SEG_F | SEG_G,			/* X */ +	0,					/* V - not displayed */ +	0,					/* w - not displayed */ +	0,					/* X - not displayed */  	SEG_B | SEG_C | SEG_D | SEG_F | SEG_G,			/* Y */ -	SEG_A | SEG_B | SEG_D | SEG_E | SEG_G,			/* Z */ +	0,					/* Z - not displayed */  	SEG_G,							/* - */ -	SEG_D							/* _ */ +	SEG_D,							/* _ */ +	SEG_P							/* . */  };  /* Convert char to the LED segments representation */ @@ -374,23 +369,20 @@ static u8 display_char2seg7(char c)  		c -= 'A' - 10;  	else if (c == '-')  		c = SYMBOL_DASH; -	else if ((c == '_') || (c == '.')) +	else if (c == '_')  		c = SYMBOL_UNDERLINE; +	else if (c == '.') +		c = SYMBOL_DOT;  	else  		c = ' ';	/* display unsupported symbols as space */  	if (c != ' ')  		val = display_char2seg7_tbl[(int)c]; -	/* Handle DP LED here */ -	if (display_dot_enable) { -		val |= SEG_P; -	} -  	return val;  } -static inline int display_putc_nomark(char c) +int display_putc(char c)  {  	if (display_putc_pos >= DISPLAY_BUF_SIZE)  		return -1; @@ -403,13 +395,6 @@ static inline int display_putc_nomark(char c)  	return c;  } -int display_putc(char c) -{ -	/* Mark the codes from the "display" command with the DP LED */ -	display_set(DISPLAY_MARK); -	return display_putc_nomark(c); -} -  /*   * Flush current symbol to the LED display hardware   */ @@ -493,9 +478,8 @@ void show_boot_progress(int status)  	if (a4m072_status2code(status, buf) < 0)  		return; -	display_set(0);	/* Clear DP Led */ -	display_putc_nomark(buf[0]); -	display_putc_nomark(buf[1]); +	display_putc(buf[0]); +	display_putc(buf[1]);  	display_set(DISPLAY_HOME);  	display_out_pos = 0;	/* reset output position */ |