diff options
Diffstat (limited to 'common/lcd.c')
| -rw-r--r-- | common/lcd.c | 113 | 
1 files changed, 26 insertions, 87 deletions
| diff --git a/common/lcd.c b/common/lcd.c index 25f866434..ae79051d1 100644 --- a/common/lcd.c +++ b/common/lcd.c @@ -32,7 +32,6 @@  #include <config.h>  #include <common.h>  #include <command.h> -#include <version.h>  #include <stdarg.h>  #include <linux/types.h>  #include <devices.h> @@ -52,7 +51,6 @@  #if defined(CONFIG_ATMEL_LCD)  #include <atmel_lcdc.h> -#include <nand.h>  #endif  /************************************************************************/ @@ -225,6 +223,20 @@ void lcd_puts (const char *s)  	}  } +/*----------------------------------------------------------------------*/ + +void lcd_printf(const char *fmt, ...) +{ +	va_list args; +	char buf[CONFIG_SYS_PBSIZE]; + +	va_start(args, fmt); +	vsprintf(buf, fmt, args); +	va_end(args); + +	lcd_puts(buf); +} +  /************************************************************************/  /* ** Low-Level Graphics Routines					*/  /************************************************************************/ @@ -386,13 +398,13 @@ static int lcd_clear (cmd_tbl_t * cmdtp, int flag, int argc, char *argv[])  	lcd_setcolreg  (CONSOLE_COLOR_WHITE,	0xFF, 0xFF, 0xFF);  #endif -#ifndef CFG_WHITE_ON_BLACK +#ifndef CONFIG_SYS_WHITE_ON_BLACK  	lcd_setfgcolor (CONSOLE_COLOR_BLACK);  	lcd_setbgcolor (CONSOLE_COLOR_WHITE);  #else  	lcd_setfgcolor (CONSOLE_COLOR_WHITE);  	lcd_setbgcolor (CONSOLE_COLOR_BLACK); -#endif	/* CFG_WHITE_ON_BLACK */ +#endif	/* CONFIG_SYS_WHITE_ON_BLACK */  #ifdef	LCD_TEST_PATTERN  	test_pattern(); @@ -426,6 +438,7 @@ static int lcd_init (void *lcdbase)  	debug ("[LCD] Initializing LCD frambuffer at %p\n", lcdbase);  	lcd_ctrl_init (lcdbase); +	lcd_is_enabled = 1;  	lcd_clear (NULL, 1, 1, NULL);	/* dummy args */  	lcd_enable (); @@ -436,7 +449,6 @@ static int lcd_init (void *lcdbase)  #else  	console_row = 1;	/* leave 1 blank line below logo */  #endif -	lcd_is_enabled = 1;  	return 0;  } @@ -531,7 +543,7 @@ void bitmap_plot (int x, int y)  #if defined(CONFIG_PXA250)  	struct pxafb_info *fbi = &panel_info.pxa;  #elif defined(CONFIG_MPC823) -	volatile immap_t *immr = (immap_t *) CFG_IMMR; +	volatile immap_t *immr = (immap_t *) CONFIG_SYS_IMMR;  	volatile cpm8xx_t *cp = &(immr->im_cpm);  #endif @@ -571,7 +583,7 @@ void bitmap_plot (int x, int y)  			*(cmap + BMP_LOGO_OFFSET) = lut_entry;  			cmap++;  #else /* !CONFIG_ATMEL_LCD */ -#ifdef  CFG_INVERT_COLORS +#ifdef  CONFIG_SYS_INVERT_COLORS  			*cmap++ = 0xffff - colreg;  #else  			*cmap++ = colreg; @@ -627,7 +639,7 @@ int lcd_display_bitmap(ulong bmp_image, int x, int y)  #if defined(CONFIG_PXA250)  	struct pxafb_info *fbi = &panel_info.pxa;  #elif defined(CONFIG_MPC823) -	volatile immap_t *immr = (immap_t *) CFG_IMMR; +	volatile immap_t *immr = (immap_t *) CONFIG_SYS_IMMR;  	volatile cpm8xx_t *cp = &(immr->im_cpm);  #endif @@ -681,7 +693,7 @@ int lcd_display_bitmap(ulong bmp_image, int x, int y)  				( ((cte.red)   << 8) & 0xf800) |  				( ((cte.green) << 3) & 0x07e0) |  				( ((cte.blue)  >> 3) & 0x001f) ; -#ifdef CFG_INVERT_COLORS +#ifdef CONFIG_SYS_INVERT_COLORS  			*cmap = 0xffff - colreg;  #else  			*cmap = colreg; @@ -748,15 +760,6 @@ extern bmp_image_t *gunzip_bmp(unsigned long addr, unsigned long *lenp);  static void *lcd_logo (void)  { -#ifdef CONFIG_LCD_INFO -	char info[80]; -	char temp[32]; -#ifdef CONFIG_ATMEL_LCD -	int i; -	ulong dram_size, nand_size; -#endif -#endif /* CONFIG_LCD_INFO */ -  #ifdef CONFIG_SPLASH_SCREEN  	char *s;  	ulong addr; @@ -786,75 +789,11 @@ static void *lcd_logo (void)  	bitmap_plot (0, 0);  #endif /* CONFIG_LCD_LOGO */ -#ifdef CONFIG_MPC823 -# ifdef CONFIG_LCD_INFO -	sprintf (info, "%s (%s - %s) ", U_BOOT_VERSION, __DATE__, __TIME__); -	lcd_drawchars (LCD_INFO_X, LCD_INFO_Y, (uchar *)info, strlen(info)); - -	sprintf (info, "(C) 2008 DENX Software Engineering GmbH"); -	lcd_drawchars (LCD_INFO_X, LCD_INFO_Y + VIDEO_FONT_HEIGHT, -					(uchar *)info, strlen(info)); - -	sprintf (info, "    Wolfgang DENK, wd@denx.de"); -	lcd_drawchars (LCD_INFO_X, LCD_INFO_Y + VIDEO_FONT_HEIGHT * 2, -					(uchar *)info, strlen(info)); -#  ifdef CONFIG_LCD_INFO_BELOW_LOGO -	sprintf (info, "MPC823 CPU at %s MHz", -		strmhz(temp, gd->cpu_clk)); -	lcd_drawchars (LCD_INFO_X, LCD_INFO_Y + VIDEO_FONT_HEIGHT * 3, -					info, strlen(info)); -	sprintf (info, "  %ld MB RAM, %ld MB Flash", -		gd->ram_size >> 20, -		gd->bd->bi_flashsize >> 20 ); -	lcd_drawchars (LCD_INFO_X, LCD_INFO_Y + VIDEO_FONT_HEIGHT * 4, -					info, strlen(info)); -#  else -	/* leave one blank line */ - -	sprintf (info, "MPC823 CPU at %s MHz, %ld MB RAM, %ld MB Flash", -		strmhz(temp, gd->cpu_clk), -		gd->ram_size >> 20, -		gd->bd->bi_flashsize >> 20 ); -	lcd_drawchars (LCD_INFO_X, LCD_INFO_Y + VIDEO_FONT_HEIGHT * 4, -					(uchar *)info, strlen(info)); - -#  endif /* CONFIG_LCD_INFO_BELOW_LOGO */ -# endif /* CONFIG_LCD_INFO */ -#endif /* CONFIG_MPC823 */ - -#ifdef CONFIG_ATMEL_LCD -# ifdef CONFIG_LCD_INFO -	sprintf (info, "%s", U_BOOT_VERSION); -	lcd_drawchars (LCD_INFO_X, LCD_INFO_Y, (uchar *)info, strlen(info)); - -	sprintf (info, "(C) 2008 ATMEL Corp"); -	lcd_drawchars (LCD_INFO_X, LCD_INFO_Y + VIDEO_FONT_HEIGHT, -					(uchar *)info, strlen(info)); - -	sprintf (info, "at91support@atmel.com"); -	lcd_drawchars (LCD_INFO_X, LCD_INFO_Y + VIDEO_FONT_HEIGHT * 2, -					(uchar *)info, strlen(info)); - -	sprintf (info, "%s CPU at %s MHz", -		AT91_CPU_NAME, -		strmhz(temp, AT91_MAIN_CLOCK)); -	lcd_drawchars (LCD_INFO_X, LCD_INFO_Y + VIDEO_FONT_HEIGHT * 3, -					(uchar *)info, strlen(info)); - -	dram_size = 0; -	for (i = 0; i < CONFIG_NR_DRAM_BANKS; i++) -		dram_size += gd->bd->bi_dram[i].size; -	nand_size = 0; -	for (i = 0; i < CFG_MAX_NAND_DEVICE; i++) -		nand_size += nand_info[i].size; -	sprintf (info, "  %ld MB SDRAM, %ld MB NAND", -		dram_size >> 20, -		nand_size >> 20 ); -	lcd_drawchars (LCD_INFO_X, LCD_INFO_Y + VIDEO_FONT_HEIGHT * 4, -					(uchar *)info, strlen(info)); -# endif /* CONFIG_LCD_INFO */ -#endif /* CONFIG_ATMEL_LCD */ - +#ifdef CONFIG_LCD_INFO +	console_col = LCD_INFO_X / VIDEO_FONT_WIDTH; +	console_row = LCD_INFO_Y / VIDEO_FONT_HEIGHT; +	lcd_show_board_info(); +#endif /* CONFIG_LCD_INFO */  #if defined(CONFIG_LCD_LOGO) && !defined(CONFIG_LCD_INFO_BELOW_LOGO)  	return ((void *)((ulong)lcd_base + BMP_LOGO_HEIGHT * lcd_line_length)); |