@ -104,7 +104,7 @@ static struct fb_videomode fsl_dcu_mode_480_272 = {
/*
* This setting is used for Siliconimage SiI9022A HDMI
*/
static struct fb_videomode fsl_dcu_mode_640_480 = {
static struct fb_videomode fsl_dcu_cea_ mode_640_480 = {
. name = " 640x480-60 " ,
. refresh = 60 ,
. xres = 640 ,
@ -120,6 +120,54 @@ static struct fb_videomode fsl_dcu_mode_640_480 = {
. vmode = FB_VMODE_NONINTERLACED ,
} ;
static struct fb_videomode fsl_dcu_mode_640_480 = {
. name = " 640x480-60 " ,
. refresh = 60 ,
. xres = 640 ,
. yres = 480 ,
. pixclock = 25175 ,
. left_margin = 40 ,
. right_margin = 24 ,
. upper_margin = 32 ,
. lower_margin = 11 ,
. hsync_len = 96 ,
. vsync_len = 2 ,
. sync = 0 ,
. vmode = FB_VMODE_NONINTERLACED ,
} ;
static struct fb_videomode fsl_dcu_mode_800_480 = {
. name = " 800x480-60 " ,
. refresh = 60 ,
. xres = 800 ,
. yres = 480 ,
. pixclock = 33260 ,
. left_margin = 216 ,
. right_margin = 40 ,
. upper_margin = 35 ,
. lower_margin = 10 ,
. hsync_len = 128 ,
. vsync_len = 2 ,
. sync = 0 ,
. vmode = FB_VMODE_NONINTERLACED ,
} ;
static struct fb_videomode fsl_dcu_mode_1024_600 = {
. name = " 1024x600-60 " ,
. refresh = 60 ,
. xres = 1024 ,
. yres = 600 ,
. pixclock = 48000 ,
. left_margin = 104 ,
. right_margin = 43 ,
. upper_margin = 24 ,
. lower_margin = 20 ,
. hsync_len = 5 ,
. vsync_len = 5 ,
. sync = 0 ,
. vmode = FB_VMODE_NONINTERLACED ,
} ;
/*
* DCU register map
*/
@ -342,7 +390,16 @@ void *video_hw_init(void)
fsl_dcu_mode_db = & fsl_dcu_mode_480_272 ;
break ;
case RESOLUTION ( 640 , 480 ) :
fsl_dcu_mode_db = & fsl_dcu_mode_640_480 ;
if ( ! strncmp ( options , " monitor=hdmi " , 12 ) )
fsl_dcu_mode_db = & fsl_dcu_cea_mode_640_480 ;
else
fsl_dcu_mode_db = & fsl_dcu_mode_640_480 ;
break ;
case RESOLUTION ( 800 , 480 ) :
fsl_dcu_mode_db = & fsl_dcu_mode_800_480 ;
break ;
case RESOLUTION ( 1024 , 600 ) :
fsl_dcu_mode_db = & fsl_dcu_mode_1024_600 ;
break ;
default :
printf ( " unsupported resolution %ux%u \n " ,