diff options
| -rw-r--r-- | board/freescale/mx53loco/mx53loco.c | 2 | ||||
| -rw-r--r-- | board/freescale/mx53loco/mx53loco_video.c | 38 | 
2 files changed, 35 insertions, 5 deletions
| diff --git a/board/freescale/mx53loco/mx53loco.c b/board/freescale/mx53loco/mx53loco.c index 60cd4f0cf..8f39c383f 100644 --- a/board/freescale/mx53loco/mx53loco.c +++ b/board/freescale/mx53loco/mx53loco.c @@ -503,8 +503,6 @@ int board_init(void)  	mxc_set_sata_internal_clock();  	setup_iomux_i2c(); -	lcd_enable(); -  	return 0;  } diff --git a/board/freescale/mx53loco/mx53loco_video.c b/board/freescale/mx53loco/mx53loco_video.c index 69991e851..a4d5a6a36 100644 --- a/board/freescale/mx53loco/mx53loco_video.c +++ b/board/freescale/mx53loco/mx53loco_video.c @@ -46,6 +46,21 @@ static struct fb_videomode const claa_wvga = {  	.vmode		= FB_VMODE_NONINTERLACED  }; +static struct fb_videomode const seiko_wvga = { +	.name		= "Seiko-43WVF1G", +	.refresh	= 60, +	.xres		= 800, +	.yres		= 480, +	.pixclock	= 29851, /* picosecond (33.5 MHz) */ +	.left_margin	= 89, +	.right_margin	= 164, +	.upper_margin	= 23, +	.lower_margin	= 10, +	.hsync_len	= 10, +	.vsync_len	= 10, +	.sync		= 0, +}; +  void setup_iomux_lcd(void)  {  	mxc_request_iomux(MX53_PIN_DI0_DISP_CLK, IOMUX_CONFIG_ALT0); @@ -86,9 +101,26 @@ void setup_iomux_lcd(void)  	gpio_direction_output(IOMUX_TO_GPIO(MX53_PIN_GPIO_1), 1);  } -void lcd_enable(void) +int board_video_skip(void)  { -	int ret = ipuv3_fb_init(&claa_wvga, 0, IPU_PIX_FMT_RGB565); +	int ret; +	char const *e = getenv("panel"); + +	if (e) { +		if (strcmp(e, "seiko") == 0) { +			ret = ipuv3_fb_init(&seiko_wvga, 0, IPU_PIX_FMT_RGB24); +			if (ret) +				printf("Seiko cannot be configured: %d\n", ret); +			return ret; +		} +	} + +	/* +	 * 'panel' env variable not found or has different value than 'seiko' +	 *  Defaulting to claa lcd. +	 */ +	ret = ipuv3_fb_init(&claa_wvga, 0, IPU_PIX_FMT_RGB565);  	if (ret) -		printf("LCD cannot be configured: %d\n", ret); +		printf("CLAA cannot be configured: %d\n", ret); +	return ret;  } |