summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CHANGELOG5
-rw-r--r--board/trab/trab.c5
-rw-r--r--common/cmd_vfd.c37
-rw-r--r--include/cmd_vfd.h8
-rw-r--r--include/vfd_logo.h20
5 files changed, 40 insertions, 35 deletions
diff --git a/CHANGELOG b/CHANGELOG
index 2a1ce93..6341f28 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -2,6 +2,11 @@
Changes since U-Boot 0.3.1:
======================================================================
+* Add support for arbitrary bitmaps for TRAB's VFD command
+
+* Patch by Christian Geißinger, 19 May 2002:
+ On TRAB: wait until the dummy byte has been completely sent
+
* Patch by David Updegraff, 22 Apr 2003:
update for CrayL1 board
diff --git a/board/trab/trab.c b/board/trab/trab.c
index e3e8553..6c9971f 100644
--- a/board/trab/trab.c
+++ b/board/trab/trab.c
@@ -33,7 +33,7 @@
#ifdef CFG_BRIGHTNESS
static void spi_init(void);
static void wait_transmit_done(void);
-static void tsc2000_write(unsigned int page, unsigned int reg,
+static void tsc2000_write(unsigned int page, unsigned int reg,
unsigned int data);
static void tsc2000_set_brightness(void);
#endif
@@ -328,6 +328,7 @@ static void spi_init(void)
for (i = 0; i < 10; i++) {
rSPTDAT = 0xFF;
}
+ wait_transmit_done();
}
static void wait_transmit_done(void)
@@ -335,7 +336,7 @@ static void wait_transmit_done(void)
while (!(rSPSTA & 0x01)); /* wait until transfer is done */
}
-static void tsc2000_write(unsigned int page, unsigned int reg,
+static void tsc2000_write(unsigned int page, unsigned int reg,
unsigned int data)
{
unsigned int command;
diff --git a/common/cmd_vfd.c b/common/cmd_vfd.c
index 49df56c..ac0224c 100644
--- a/common/cmd_vfd.c
+++ b/common/cmd_vfd.c
@@ -36,11 +36,10 @@
#include <command.h>
#if (CONFIG_COMMANDS & CFG_CMD_VFD)
-#ifdef VFD_TEST_LOGO
+
#include <vfd_logo.h>
#define VFD_TEST_LOGO_BMPNR 0
#define VFD_REMOTE_LOGO_BMPNR 1
-#endif
extern int transfer_pic(unsigned char, unsigned char *, int, int);
@@ -55,9 +54,15 @@ int do_vfd (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
return 1;
}
- bitmap = simple_strtoul(argv[1], NULL, 10);
+ if (argv[1][0] == '#') { /* select bitmap by number */
+ bitmap = simple_strtoul(argv[1]+1, NULL, 10);
+ return (trab_vfd(bitmap));
+ }
- return (trab_vfd(bitmap));
+ /* display bitmap at given address */
+ bitmap = simple_strtoul(argv[1], NULL, 16);
+ transfer_pic(1, (uchar *)bitmap, VFD_LOGO_HEIGHT, VFD_LOGO_WIDTH);
+ return 0;
}
#endif /* CFG_CMD_VFD */
@@ -65,19 +70,17 @@ int do_vfd (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
int trab_vfd (ulong bitmap)
{
switch (bitmap) {
-#ifdef VFD_TEST_LOGO
- case VFD_TEST_LOGO_BMPNR:
- transfer_pic(1, &vfd_test_logo_bitmap[0],
- VFD_TEST_LOGO_HEIGHT, VFD_TEST_LOGO_WIDTH);
- return 0;
- case VFD_REMOTE_LOGO_BMPNR:
- transfer_pic(1, &vfd_remote_logo_bitmap[0],
- VFD_REMOTE_LOGO_HEIGHT, VFD_REMOTE_LOGO_WIDTH);
- return 0;
-#endif
- default:
- printf("Unknown bitmap %ld\n", bitmap);
- return 1;
+ case VFD_TEST_LOGO_BMPNR:
+ transfer_pic(1, &vfd_test_logo_bitmap[0],
+ VFD_LOGO_HEIGHT, VFD_LOGO_WIDTH);
+ return 0;
+ case VFD_REMOTE_LOGO_BMPNR:
+ transfer_pic(1, &vfd_remote_logo_bitmap[0],
+ VFD_LOGO_HEIGHT, VFD_LOGO_WIDTH);
+ return 0;
+ default:
+ printf("Unknown bitmap %ld\n", bitmap);
+ return 1;
}
/* NOTREACHED */
}
diff --git a/include/cmd_vfd.h b/include/cmd_vfd.h
index 40a9b34..ad6f21a 100644
--- a/include/cmd_vfd.h
+++ b/include/cmd_vfd.h
@@ -29,10 +29,12 @@
#if (CONFIG_COMMANDS & CFG_CMD_VFD)
#define CMD_TBL_VFD MK_CMD_TBL_ENTRY( \
- "vfd", 3, 2, 0, do_vfd, \
+ "vfd", 3, 2, 0, do_vfd, \
"vfd - load a bitmap to the VFDs on TRAB\n", \
- "N\n" \
- " - load bitmap N to the VFDs (N is _decimal_ !!!)\n"\
+ "#N\n" \
+ " - load bitmap no. N to the VFDs (N is _decimal_ !!!)\n" \
+ "vfd addr\n" \
+ " - load bitmap at address _addr_ to the VFDs\n" \
),
/* Implemented in common/cmd_misc.c */
diff --git a/include/vfd_logo.h b/include/vfd_logo.h
index bda20cd..c41867a 100644
--- a/include/vfd_logo.h
+++ b/include/vfd_logo.h
@@ -6,13 +6,13 @@
*/
-#ifndef __VFD_TEST_LOGO_H__
-#define __VFD_TEST_LOGO_H__
+#ifndef __VFD_LOGO_H__
+#define __VFD_LOGO_H__
-#define VFD_TEST_LOGO_WIDTH 112
-#define VFD_TEST_LOGO_HEIGHT 72
-#define VFD_TEST_LOGO_COLORS 0
-#define VFD_TEST_LOGO_OFFSET 0
+#define VFD_LOGO_WIDTH 112
+#define VFD_LOGO_HEIGHT 72
+#define VFD_LOGO_COLORS 0
+#define VFD_LOGO_OFFSET 0
unsigned char vfd_test_logo_bitmap[] = {
@@ -522,12 +522,6 @@ unsigned char vfd_test_logo_bitmap[] = {
0xFF, 0xFF, 0xFF, 0xFF, 0xFD, 0xDD, 0xDD, 0xDD,
};
-#define VFD_REMOTE_LOGO_WIDTH 112
-#define VFD_REMOTE_LOGO_HEIGHT 72
-#define VFD_REMOTE_LOGO_COLORS 0
-#define VFD_REMOTE_LOGO_OFFSET 0
-
-
unsigned char vfd_remote_logo_bitmap[] = {
0x99, 0x99, 0x99, 0x9F, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
@@ -1035,4 +1029,4 @@ unsigned char vfd_remote_logo_bitmap[] = {
0xFF, 0xFF, 0xFF, 0xFF, 0xF9, 0x99, 0x99, 0x99,
};
-#endif /* __VFD_TEST_LOGO_H__ */
+#endif /* __VFD_LOGO_H__ */