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 | u-boot-imx-7f0d241d5ce8c7d0dff49f74498bf5708002424e.zip u-boot-imx-7f0d241d5ce8c7d0dff49f74498bf5708002424e.tar.gz u-boot-imx-7f0d241d5ce8c7d0dff49f74498bf5708002424e.tar.bz2 |
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 6c11aa6..d5d5d8c 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++); } } |