[U-Boot] PATCH add rgb555 for at91

Giulio Benetti giulio.benetti at micronovasrl.com
Thu Jun 18 16:23:32 CEST 2009


Detlev Zundel wrote:

> Hi Giulio,
> 
>> Signed-off-by: giulio.benetti at micronovasrl.com
> 
> Can you please provide a somewhat more descriptive description?  It may
> be obvious for you what this does (or what new features can now be
> used), but it isn't for me.
> 
>>
>> diff -urpN b/common/lcd.c a/common/lcd.c
>> --- b/common/lcd.c      2009-06-14 21:30:39.000000000 +0200
>> +++ a/common/lcd.c      2009-06-18 12:45:15.000000000 +0200
>> @@ -1,4 +1,4 @@
>> -/*
>> +/*OC
>>   * Common LCD routines for supported CPUs
>>   *
>>   * (C) Copyright 2001-2002
>> @@ -575,6 +575,10 @@ void bitmap_plot (int x, int y)
>>                         lut_entry = ((colreg & 0x000F) << 11) |
>>                                     ((colreg & 0x00F0) <<  2) |
>>                                     ((colreg & 0x0F00) >>  7);
>> +#elif defined (CONFIG_ATMEL_LCD_RGB555)
>> +                       lut_entry = ((colreg & 0x000F) << 1) |
>> +                                   ((colreg & 0x00F0) <<  2) |
>> +                                   ((colreg & 0x0F00) <<  3);
>>  #else /* CONFIG_ATMEL_LCD_RGB565 */
>>                         lut_entry = ((colreg & 0x000F) << 1) |
>>                                     ((colreg & 0x00F0) << 3) |
>> diff -urpN b/drivers/video/atmel_lcdfb.c a/drivers/video/atmel_lcdfb.c
>> --- b/drivers/video/atmel_lcdfb.c       2009-06-14 21:30:39.000000000
>> +0200
>> +++ a/drivers/video/atmel_lcdfb.c       2009-06-18 12:45:15.000000000
>> +0200 @@ -57,6 +57,9 @@ void lcd_setcolreg(ushort regno, ushort
>>  #if defined(CONFIG_ATMEL_LCD_BGR555)
>                                 ^^^
> I know this line is not touched by you, but is BGR correct?
> 
>>         lcdc_writel(panel_info.mmio, ATMEL_LCDC_LUT(regno),
>>                     (red >> 3) | ((green & 0xf8) << 2) | ((blue & 0xf8)
>>                     << 7));
>> +#elif defined(CONFIG_ATMEL_LCD_RGB555)
>> +       lcdc_writel(panel_info.mmio, ATMEL_LCDC_LUT(regno),
>> +                   (blue >> 3) | ((green & 0xf8) << 2) | ((red & 0xf8)
>> << 7));
>>  #else
>>         lcdc_writel(panel_info.mmio, ATMEL_LCDC_LUT(regno),
>>                     (blue >> 3) | ((green & 0xfc) << 3) | ((red & 0xf8)
>>                     << 8));
> 
> Cheers
>   Detlev
> 

You're right, sorry.
This patch add support for Rgb 555 bits following a precise hardware wiring
that should be more correct respect the at91sam9263ek.
I mean 
LCD2 - LCD7 are RED0 - RED4, 
LCD10 - LCD15 are GREEN0 - GREEN4, 
LCD18 - LCD23 are BLUE0 - BLUE4

Regarding "LCD_BGR555", it is correct only because at91sam9263ek was wired
swapped between red and blue. It should be in that way but I'm not sure.
Anyway I think the wiring should be done better before, instead of create a
new "standard". Fortunately with software you can change more than
something, but not everything.

-- 
Giulio Benetti
R&D
Micronova srl



More information about the U-Boot mailing list