diff options
| -rw-r--r-- | arch/powerpc/cpu/mpc512x/diu.c | 62 | ||||
| -rw-r--r-- | board/davedenx/aria/aria.c | 5 | ||||
| -rw-r--r-- | board/freescale/common/fsl_diu_fb.c | 41 | ||||
| -rw-r--r-- | board/freescale/mpc8610hpcd/mpc8610hpcd_diu.c | 74 | ||||
| -rw-r--r-- | board/pdm360ng/pdm360ng.c | 3 | ||||
| -rw-r--r-- | include/fsl_diu_fb.h (renamed from board/freescale/common/fsl_diu_fb.h) | 1 | 
6 files changed, 59 insertions, 127 deletions
| diff --git a/arch/powerpc/cpu/mpc512x/diu.c b/arch/powerpc/cpu/mpc512x/diu.c index fa4a0bc97..c4108af33 100644 --- a/arch/powerpc/cpu/mpc512x/diu.c +++ b/arch/powerpc/cpu/mpc512x/diu.c @@ -27,17 +27,10 @@  #include <command.h>  #include <asm/io.h> -#include "../../../../board/freescale/common/fsl_diu_fb.h" - -#if defined(CONFIG_VIDEO) || defined(CONFIG_CFB_CONSOLE) -#include <stdio_dev.h> -#include <video_fb.h> -#endif +#include <fsl_diu_fb.h>  DECLARE_GLOBAL_DATA_PTR; -static int xres, yres; -  void diu_set_pixel_clock(unsigned int pixclock)  {  	volatile immap_t *immap = (immap_t *)CONFIG_SYS_IMMR; @@ -58,61 +51,20 @@ void diu_set_pixel_clock(unsigned int pixclock)  	debug("DIU: Modified value of CLKDVDR = 0x%08x\n", in_be32(clkdvdr));  } -int mpc5121_diu_init(void) +int platform_diu_init(unsigned int *xres, unsigned int *yres)  {  	unsigned int pixel_format;  #if defined(CONFIG_VIDEO_XRES) & defined(CONFIG_VIDEO_YRES) -	xres = CONFIG_VIDEO_XRES; -	yres = CONFIG_VIDEO_YRES; +	*xres = CONFIG_VIDEO_XRES; +	*yres = CONFIG_VIDEO_YRES;  #else -	xres = 1024; -	yres = 768; +	*xres = 1024; +	*yres = 768;  #endif  	pixel_format = 0x88883316;  	debug("mpc5121_diu_init\n"); -	return fsl_diu_init(xres, pixel_format, 0); +	return fsl_diu_init(*xres, pixel_format, 0);  } - -#if defined(CONFIG_VIDEO) || defined(CONFIG_CFB_CONSOLE) - -/* - * The Graphic Device - */ -GraphicDevice ctfb; -void *video_hw_init(void) -{ -	GraphicDevice *pGD = (GraphicDevice *) &ctfb; -	struct fb_info *info; - -	if (mpc5121_diu_init() < 0) -		return NULL; - -	/* fill in Graphic device struct */ -	sprintf(pGD->modeIdent, "%dx%dx%d %dkHz %dHz", -		xres, yres, 32, 64, 60); - -	pGD->frameAdrs = (unsigned int)fsl_fb_open(&info); -	pGD->winSizeX = xres; -	pGD->winSizeY = yres; -	pGD->plnSizeX = pGD->winSizeX; -	pGD->plnSizeY = pGD->winSizeY; - -	pGD->gdfBytesPP = 4; -	pGD->gdfIndex = GDF_32BIT_X888RGB; - -	pGD->isaBase = 0; -	pGD->pciBase = 0; -	pGD->memSize = info->screen_size; - -	/* Cursor Start Address */ -	pGD->dprBase = 0; -	pGD->vprBase = 0; -	pGD->cprBase = 0; - -	return (void *)pGD; -} - -#endif /* defined(CONFIG_VIDEO) || defined(CONFIG_CFB_CONSOLE) */ diff --git a/board/davedenx/aria/aria.c b/board/davedenx/aria/aria.c index f17df60c2..31b079b1c 100644 --- a/board/davedenx/aria/aria.c +++ b/board/davedenx/aria/aria.c @@ -119,11 +119,6 @@ int misc_init_r(void)  		 tmp & 0x000000FF  	); -#ifdef CONFIG_FSL_DIU_FB -# if	!(defined(CONFIG_VIDEO) || defined(CONFIG_CFB_CONSOLE)) -	mpc5121_diu_init(); -# endif -#endif  	return 0;  } diff --git a/board/freescale/common/fsl_diu_fb.c b/board/freescale/common/fsl_diu_fb.c index 394b71f32..35ed938be 100644 --- a/board/freescale/common/fsl_diu_fb.c +++ b/board/freescale/common/fsl_diu_fb.c @@ -28,7 +28,7 @@  #include <malloc.h>  #include <asm/io.h> -#include "fsl_diu_fb.h" +#include <fsl_diu_fb.h>  struct fb_videomode {  	const char *name;	/* optional */ @@ -472,3 +472,42 @@ static int allocate_buf(struct diu_addr *buf, u32 size, u32 bytes_align)  		buf->offset = 0;  	return 0;  } + +#if defined(CONFIG_VIDEO) || defined(CONFIG_CFB_CONSOLE) +#include <stdio_dev.h> +#include <video_fb.h> +/* + * The Graphic Device + */ +static GraphicDevice ctfb; + +void *video_hw_init(void) +{ +	struct fb_info *info; + +	if (platform_diu_init(&ctfb.winSizeX, &ctfb.winSizeY) < 0) +		return NULL; + +	/* fill in Graphic device struct */ +	sprintf(ctfb.modeIdent, "%ix%ix%i %ikHz %iHz", +		ctfb.winSizeX, ctfb.winSizeY, 32, 64, 60); + +	ctfb.frameAdrs = (unsigned int)fsl_fb_open(&info); +	ctfb.plnSizeX = ctfb.winSizeX; +	ctfb.plnSizeY = ctfb.winSizeY; + +	ctfb.gdfBytesPP = 4; +	ctfb.gdfIndex = GDF_32BIT_X888RGB; + +	ctfb.isaBase = 0; +	ctfb.pciBase = 0; +	ctfb.memSize = info->screen_size; + +	/* Cursor Start Address */ +	ctfb.dprBase = 0; +	ctfb.vprBase = 0; +	ctfb.cprBase = 0; + +	return &ctfb; +} +#endif /* defined(CONFIG_VIDEO) || defined(CONFIG_CFB_CONSOLE) */ diff --git a/board/freescale/mpc8610hpcd/mpc8610hpcd_diu.c b/board/freescale/mpc8610hpcd/mpc8610hpcd_diu.c index 960c8eda7..81e53e734 100644 --- a/board/freescale/mpc8610hpcd/mpc8610hpcd_diu.c +++ b/board/freescale/mpc8610hpcd/mpc8610hpcd_diu.c @@ -26,17 +26,7 @@  #include <common.h>  #include <command.h>  #include <asm/io.h> - -#ifdef CONFIG_FSL_DIU_FB - -#include "../common/fsl_diu_fb.h" - -#if defined(CONFIG_VIDEO) || defined(CONFIG_CFB_CONSOLE) -#include <stdio_dev.h> -#include <video_fb.h> -#endif - -static int xres, yres; +#include <fsl_diu_fb.h>  void diu_set_pixel_clock(unsigned int pixclock)  { @@ -59,7 +49,7 @@ void diu_set_pixel_clock(unsigned int pixclock)  	debug("DIU: Modified value of CLKDVDR = 0x%08x\n", *guts_clkdvdr);  } -int mpc8610hpcd_diu_init(void) +int platform_diu_init(unsigned int *xres, unsigned int *yres)  {  	char *monitor_port;  	int gamma_fix; @@ -73,8 +63,8 @@ int mpc8610hpcd_diu_init(void)  	monitor_port = getenv("monitor");  	if (!strncmp(monitor_port, "0", 1)) {	/* 0 - DVI */ -		xres = 1280; -		yres = 1024; +		*xres = 1280; +		*yres = 1024;  		if (pixis_arch == 0x01)  			pixel_format = 0x88882317;  		else @@ -83,68 +73,26 @@ int mpc8610hpcd_diu_init(void)  		out_8(pixis_base + PIXIS_BRDCFG0, tmp_val | 0x08);  	} else if (!strncmp(monitor_port, "1", 1)) { /* 1 - Single link LVDS */ -		xres = 1024; -		yres = 768; +		*xres = 1024; +		*yres = 768;  		pixel_format = 0x88883316;  		gamma_fix = 0;  		out_8(pixis_base + PIXIS_BRDCFG0, (tmp_val & 0xf7) | 0x10);  	} else if (!strncmp(monitor_port, "2", 1)) { /* 2 - Double link LVDS */ -		xres = 1280; -		yres = 1024; +		*xres = 1280; +		*yres = 1024;  		pixel_format = 0x88883316;  		gamma_fix = 1;  		out_8(pixis_base + PIXIS_BRDCFG0, tmp_val & 0xe7);  	} else {	/* DVI */ -		xres = 1280; -		yres = 1024; +		*xres = 1280; +		*yres = 1024;  		pixel_format = 0x88882317;  		gamma_fix = 0;  		out_8(pixis_base + PIXIS_BRDCFG0, tmp_val | 0x08);  	} -	return fsl_diu_init(xres, pixel_format, gamma_fix); -} - -#if defined(CONFIG_VIDEO) || defined(CONFIG_CFB_CONSOLE) - -/* - * The Graphic Device - */ -static GraphicDevice ctfb; - -void *video_hw_init(void) -{ -	struct fb_info *info; - -	if (mpc8610hpcd_diu_init() < 0) -		return NULL; - -	/* fill in Graphic device struct */ -	sprintf(ctfb.modeIdent, "%ix%ix%i %ikHz %iHz", xres, yres, 32, 64, 60); - -	ctfb.frameAdrs = (unsigned int)fsl_fb_open(&info); -	ctfb.winSizeX = xres; -	ctfb.winSizeY = yres; -	ctfb.plnSizeX = ctfb.winSizeX; -	ctfb.plnSizeY = ctfb.winSizeY; - -	ctfb.gdfBytesPP = 4; -	ctfb.gdfIndex = GDF_32BIT_X888RGB; - -	ctfb.isaBase = 0; -	ctfb.pciBase = 0; -	ctfb.memSize = info->screen_size; - -	/* Cursor Start Address */ -	ctfb.dprBase = 0; -	ctfb.vprBase = 0; -	ctfb.cprBase = 0; - -	return &ctfb; +	return fsl_diu_init(*xres, pixel_format, gamma_fix);  } - -#endif /* defined(CONFIG_VIDEO) || defined(CONFIG_CFB_CONSOLE) */ - -#endif /* CONFIG_FSL_DIU_FB */ diff --git a/board/pdm360ng/pdm360ng.c b/board/pdm360ng/pdm360ng.c index e3abeb8ef..e8714e3a7 100644 --- a/board/pdm360ng/pdm360ng.c +++ b/board/pdm360ng/pdm360ng.c @@ -237,9 +237,6 @@ int misc_init_r(void)  #endif  #ifdef CONFIG_FSL_DIU_FB -# if	!(defined(CONFIG_VIDEO) || defined(CONFIG_CFB_CONSOLE)) -	mpc5121_diu_init(); -#endif  #if defined(CONFIG_SERIAL_MULTI)  	set_lcd_brightness(0);  #endif diff --git a/board/freescale/common/fsl_diu_fb.h b/include/fsl_diu_fb.h index 3a5fc9ff8..87443e10c 100644 --- a/board/freescale/common/fsl_diu_fb.h +++ b/include/fsl_diu_fb.h @@ -57,3 +57,4 @@ struct fb_info {  extern char *fsl_fb_open(struct fb_info **info);  int fsl_diu_init(int xres, unsigned int pixel_format, int gamma_fix); +int platform_diu_init(unsigned int *xres, unsigned int *yres); |