diff options
| author | Ilya Yanok <yanok@emcraft.com> | 2010-09-09 23:03:32 +0200 | 
|---|---|---|
| committer | Wolfgang Denk <wd@denx.de> | 2010-10-12 22:44:33 +0200 | 
| commit | 7f0d241d5ce8c7d0dff49f74498bf5708002424e (patch) | |
| tree | b387723c6e648381087103c11e9e95ee28f772a0 /common/cmd_display.c | |
| parent | 9531a2388ccaeaabb33a359a0bbf2e1d792c7dde (diff) | |
| download | olio-uboot-2014.01-7f0d241d5ce8c7d0dff49f74498bf5708002424e.tar.xz olio-uboot-2014.01-7f0d241d5ce8c7d0dff49f74498bf5708002424e.zip | |
led_display: split led display support into generic and hw-dependent parts
Split the display command into generic interface and hardware-specific
realization for PDSP188x LED display found on hmi1001 and manroland
boards. Simple interface for LED displays is defined in
include/led-display.h and described in doc/README.LED_display.
Driver-specific implementation was moved into drivers/misc/pdsp188x.c
file (enabled with CONFIG_PDSP188x set).
Signed-off-by: Ilya Yanok <yanok@emcraft.com>
Diffstat (limited to 'common/cmd_display.c')
| -rw-r--r-- | common/cmd_display.c | 26 | 
1 files changed, 9 insertions, 17 deletions
| diff --git a/common/cmd_display.c b/common/cmd_display.c index 6c11aa6e3..d5d5d8c31 100644 --- a/common/cmd_display.c +++ b/common/cmd_display.c @@ -23,40 +23,32 @@  #include <common.h>  #include <command.h> +#include <led-display.h>  #undef DEBUG_DISP -#define DISP_SIZE	8 -#define CWORD_CLEAR	0x80 -#define CLEAR_DELAY	(110 * 2) -  int do_display (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])  {  	int i; -	int pos;  	/* Clear display */ -	*((volatile char*)(CONFIG_SYS_DISP_CWORD)) = CWORD_CLEAR; -	udelay(1000 * CLEAR_DELAY); +	display_set(DISPLAY_CLEAR | DISPLAY_HOME);  	if (argc < 2)  		return (0); -	for (pos = 0, i = 1; i < argc && pos < DISP_SIZE; i++) { -		char *p = argv[i], c; +	for (i = 1; i < argc; i++) { +		char *p = argv[i]; -		if (i > 1) { -			*((volatile uchar *) (CONFIG_SYS_DISP_CHR_RAM + pos++)) = ' '; -#ifdef DEBUG_DISP -			putc(' '); -#endif +		if (i > 1) { /* Insert a space between strings */ +			display_putc(' ');  		} -		while ((c = *p++) != '\0' && pos < DISP_SIZE) { -			*((volatile uchar *) (CONFIG_SYS_DISP_CHR_RAM + pos++)) = c; +		while ((*p)) {  #ifdef DEBUG_DISP -			putc(c); +			putc(*p);  #endif +			display_putc(*p++);  		}  	} |