mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-24 21:54:01 +00:00
lcd: fix the color testpattern in 16bit mode
The testpattern of the lcd was only working in 8bit mode(2x3 tiles in different colors). With this patch now 8bit and 16bit is supported. In 16bit mode there are 2x4 tiles in different colors. The number of LCD-colors is defined in the include/configs/<boardfile>.h Signed-off-by: Andreas Neubacher <neubacher.andreas@gmail.com> Signed-off-by: Anatolij Gustschin <agust@denx.de>
This commit is contained in:
parent
913d1be208
commit
e32951b525
2 changed files with 24 additions and 3 deletions
16
common/lcd.c
16
common/lcd.c
|
@ -89,13 +89,24 @@ static void lcd_stub_puts(struct stdio_dev *dev, const char *s)
|
|||
/* Small utility to check that you got the colours right */
|
||||
#ifdef LCD_TEST_PATTERN
|
||||
|
||||
#if LCD_BPP == LCD_COLOR8
|
||||
#define N_BLK_VERT 2
|
||||
#define N_BLK_HOR 3
|
||||
|
||||
static int test_colors[N_BLK_HOR * N_BLK_VERT] = {
|
||||
CONSOLE_COLOR_RED, CONSOLE_COLOR_GREEN, CONSOLE_COLOR_YELLOW,
|
||||
CONSOLE_COLOR_BLUE, CONSOLE_COLOR_MAGENTA, CONSOLE_COLOR_CYAN,
|
||||
}; /*LCD_BPP == LCD_COLOR8 */
|
||||
|
||||
#elif LCD_BPP == LCD_COLOR16
|
||||
#define N_BLK_VERT 2
|
||||
#define N_BLK_HOR 4
|
||||
|
||||
static int test_colors[N_BLK_HOR * N_BLK_VERT] = {
|
||||
CONSOLE_COLOR_RED, CONSOLE_COLOR_GREEN, CONSOLE_COLOR_YELLOW, CONSOLE_COLOR_BLUE,
|
||||
CONSOLE_COLOR_MAGENTA, CONSOLE_COLOR_CYAN, CONSOLE_COLOR_GREY, CONSOLE_COLOR_WHITE,
|
||||
};
|
||||
#endif /*LCD_BPP == LCD_COLOR16 */
|
||||
|
||||
static void test_pattern(void)
|
||||
{
|
||||
|
@ -104,12 +115,15 @@ static void test_pattern(void)
|
|||
ushort v_step = (v_max + N_BLK_VERT - 1) / N_BLK_VERT;
|
||||
ushort h_step = (h_max + N_BLK_HOR - 1) / N_BLK_HOR;
|
||||
ushort v, h;
|
||||
#if LCD_BPP == LCD_COLOR8
|
||||
uchar *pix = (uchar *)lcd_base;
|
||||
#elif LCD_BPP == LCD_COLOR16
|
||||
ushort *pix = (ushort *)lcd_base;
|
||||
#endif
|
||||
|
||||
printf("[LCD] Test Pattern: %d x %d [%d x %d]\n",
|
||||
h_max, v_max, h_step, v_step);
|
||||
|
||||
/* WARNING: Code silently assumes 8bit/pixel */
|
||||
for (v = 0; v < v_max; ++v) {
|
||||
uchar iy = v / v_step;
|
||||
for (h = 0; h < h_max; ++h) {
|
||||
|
|
|
@ -195,8 +195,15 @@ void lcd_sync(void);
|
|||
#define CONSOLE_COLOR_WHITE 0x00ffffff /* Must remain last / highest */
|
||||
#define NBYTES(bit_code) (NBITS(bit_code) >> 3)
|
||||
#else /* 16bpp color definitions */
|
||||
#define CONSOLE_COLOR_BLACK 0x0000
|
||||
#define CONSOLE_COLOR_WHITE 0xffff /* Must remain last / highest */
|
||||
# define CONSOLE_COLOR_BLACK 0x0000
|
||||
# define CONSOLE_COLOR_RED 0xF800
|
||||
# define CONSOLE_COLOR_GREEN 0x07E0
|
||||
# define CONSOLE_COLOR_YELLOW 0xFFE0
|
||||
# define CONSOLE_COLOR_BLUE 0x001F
|
||||
# define CONSOLE_COLOR_MAGENTA 0xF81F
|
||||
# define CONSOLE_COLOR_CYAN 0x07FF
|
||||
# define CONSOLE_COLOR_GREY 0xC618
|
||||
# define CONSOLE_COLOR_WHITE 0xffff /* Must remain last / highest */
|
||||
#endif /* color definitions */
|
||||
|
||||
#if LCD_BPP == LCD_COLOR16
|
||||
|
|
Loading…
Reference in a new issue