@ -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 */
/* Small utility to check that you got the colours right */
# ifdef LCD_TEST_PATTERN
# ifdef LCD_TEST_PATTERN
# if LCD_BPP == LCD_COLOR8
# define N_BLK_VERT 2
# define N_BLK_VERT 2
# define N_BLK_HOR 3
# define N_BLK_HOR 3
static int test_colors [ N_BLK_HOR * N_BLK_VERT ] = {
static int test_colors [ N_BLK_HOR * N_BLK_VERT ] = {
CONSOLE_COLOR_RED , CONSOLE_COLOR_GREEN , CONSOLE_COLOR_YELLOW ,
CONSOLE_COLOR_RED , CONSOLE_COLOR_GREEN , CONSOLE_COLOR_YELLOW ,
CONSOLE_COLOR_BLUE , CONSOLE_COLOR_MAGENTA , CONSOLE_COLOR_CYAN ,
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 )
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 v_step = ( v_max + N_BLK_VERT - 1 ) / N_BLK_VERT ;
ushort h_step = ( h_max + N_BLK_HOR - 1 ) / N_BLK_HOR ;
ushort h_step = ( h_max + N_BLK_HOR - 1 ) / N_BLK_HOR ;
ushort v , h ;
ushort v , h ;
# if LCD_BPP == LCD_COLOR8
uchar * pix = ( uchar * ) lcd_base ;
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 " ,
printf ( " [LCD] Test Pattern: %d x %d [%d x %d] \n " ,
h_max , v_max , h_step , v_step ) ;
h_max , v_max , h_step , v_step ) ;
/* WARNING: Code silently assumes 8bit/pixel */
for ( v = 0 ; v < v_max ; + + v ) {
for ( v = 0 ; v < v_max ; + + v ) {
uchar iy = v / v_step ;
uchar iy = v / v_step ;
for ( h = 0 ; h < h_max ; + + h ) {
for ( h = 0 ; h < h_max ; + + h ) {