summaryrefslogtreecommitdiff
path: root/common
diff options
context:
space:
mode:
authorAndreas Neubacher <neubacher.andreas@gmail.com>2016-01-21 13:06:32 +0100
committerAnatolij Gustschin <agust@denx.de>2016-01-24 00:38:40 +0100
commite32951b525c5cd67aece0dffb7d4012b1567dcaf (patch)
treed8512bae6be735e3ff089ee66d40d77339c7b77b /common
parent913d1be20801c3fed3dd1e832d3bf5bdde159f32 (diff)
downloadu-boot-imx-e32951b525c5cd67aece0dffb7d4012b1567dcaf.zip
u-boot-imx-e32951b525c5cd67aece0dffb7d4012b1567dcaf.tar.gz
u-boot-imx-e32951b525c5cd67aece0dffb7d4012b1567dcaf.tar.bz2
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>
Diffstat (limited to 'common')
-rw-r--r--common/lcd.c16
1 files changed, 15 insertions, 1 deletions
diff --git a/common/lcd.c b/common/lcd.c
index 2f3594a..51705ad 100644
--- a/common/lcd.c
+++ b/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) {