@ -16,17 +16,28 @@ DECLARE_GLOBAL_DATA_PTR;
static int lcd_dt_simplefb_configure_node ( void * blob , int off )
{
int vl_col = lcd_get_pixel_width ( ) ;
int vl_row = lcd_get_pixel_height ( ) ;
# if LCD_BPP == LCD_COLOR16
return fdt_setup_simplefb_node ( blob , off , gd - > fb_base , vl_col , vl_row ,
vl_col * 2 , " r5g6b5 " ) ;
# elif LCD_BPP == LCD_COLOR32
return fdt_setup_simplefb_node ( blob , off , gd - > fb_base , vl_col , vl_row ,
vl_col * 4 , " a8r8g8b8 " ) ;
# else
return - 1 ;
# endif
int xsize , ysize ;
int bpix ; /* log2 of bits per pixel */
const char * name ;
ulong fb_base ;
xsize = lcd_get_pixel_width ( ) ;
ysize = lcd_get_pixel_height ( ) ;
bpix = LCD_BPP ;
fb_base = gd - > fb_base ;
switch ( bpix ) {
case 4 : /* VIDEO_BPP16 */
name = " r5g6b5 " ;
break ;
case 5 : /* VIDEO_BPP32 */
name = " a8r8g8b8 " ;
break ;
default :
return - EINVAL ;
}
return fdt_setup_simplefb_node ( blob , off , fb_base , xsize , ysize ,
xsize * ( 1 < < bpix ) / 8 , name ) ;
}
int lcd_dt_simplefb_add_node ( void * blob )