[PATCH 2/4] AT91: move have_intensity_bit into board setup

Darren Garnier dgarnier at reinrag.net
Tue Sep 3 12:36:54 EDT 2013


On Sep 3, 2013, at 11:31 AM, Jean-Christophe PLAGNIOL-VILLARD <plagnioj at jcrosoft.com> wrote:

> On 09:34 Tue 03 Sep     , Darren Garnier wrote:
>> 
>> On Sep 3, 2013, at 7:39 AM, Jean-Christophe PLAGNIOL-VILLARD <plagnioj at jcrosoft.com> wrote:
>> 
>>> On 22:22 Mon 02 Sep     , Darren Garnier wrote:
>>>> Signed-off-by: Darren Garnier <dgarnier at reinrag.net>
>>> \why this is soc specific
>> 
>> Yes, the option is probably soc specific, but in the 9261 soc, we actually have 2 cpus. Both the 9261 and 9g10.
>> One of the few differences between these pin compatible chips is the way the LCD peripheral is wired.
>> 
>> My board has 2 varieties out in the wild.. one with the 9261 and the other with the 9g10 and because of the
>> way they are wired, the "intensity bit" is only appropriate to the 9261 cpu board.  Since you can't change this setting easily after you pass it off
>> to at91_add_device_lcdc, it's important that it only be set in the board file.
>> 
> 
> I need to check the datasheet but I'm enarly sure this is not board specific
> but SoC
> 


I guess that depends on what you mean by SoC. It is CPU specific to the 9261.  The 9g10 part (same SoC), doesn't use it.  I don't know if this change also effected the 9263/9g20 change.

Actually, I didn't notice it till now, but my patch is broken for at91sam9261ek  (swapped "has" for "have").  And didn't take into consideration the problem of the 9263 SoC.

Personally, I think it the whole bit should be removed and just change to the .lcd_wiring_mode with new constants of:

ATMEL_LCD_WIRING_BGR555
ATMEL_LCD_WIRING_RGB555

but this probably effects more boards and I'm more of a minimalist when I go mucking about in other code.

Anyway, this patch is necessary  in some form.. my 9g10 boards have funky colors with the .have_intensity_bit set.

Let me know which option you prefer and I'll rework it.


>> 
>>> 
>>> Best Regards,
>>> J.
>>>> ---
>>>> arch/arm/boards/at91sam9261ek/init.c     | 2 ++
>>>> arch/arm/mach-at91/at91sam9261_devices.c | 2 --
>>>> 2 files changed, 2 insertions(+), 2 deletions(-)
>>>> 
>>>> diff --git a/arch/arm/boards/at91sam9261ek/init.c b/arch/arm/boards/at91sam9261ek/init.c
>>>> index 00fc745..b420a48 100644
>>>> --- a/arch/arm/boards/at91sam9261ek/init.c
>>>> +++ b/arch/arm/boards/at91sam9261ek/init.c
>>>> @@ -223,6 +223,8 @@ static void ek_add_device_lcdc(void)
>>>> 
>>>> 	if (machine_is_at91sam9g10ek())
>>>> 		ek_lcdc_data.lcd_wiring_mode = ATMEL_LCDC_WIRING_RGB;
>>>> +	else
>>>> +		ek_lcdc_data.has_intensity_bit = true;
>>>> 
>>>> 	at91_add_device_lcdc(&ek_lcdc_data);
>>>> }
>>>> diff --git a/arch/arm/mach-at91/at91sam9261_devices.c b/arch/arm/mach-at91/at91sam9261_devices.c
>>>> index b522afb..ba52e56 100644
>>>> --- a/arch/arm/mach-at91/at91sam9261_devices.c
>>>> +++ b/arch/arm/mach-at91/at91sam9261_devices.c
>>>> @@ -218,8 +218,6 @@ void __init at91_add_device_lcdc(struct atmel_lcdfb_platform_data *data)
>>>> {
>>>> 	BUG_ON(!data);
>>>> 
>>>> -	data->have_intensity_bit = true;
>>>> -
>>>> #if defined(CONFIG_FB_ATMEL_STN)
>>>> 	at91_set_A_periph(AT91_PIN_PB0, 0);	/* LCDVSYNC */
>>>> 	at91_set_A_periph(AT91_PIN_PB1, 0);	/* LCDHSYNC */
>>>> -- 
>>>> 1.8.3.1
>>>> 
>>>> 
>>>> 
>>>> _______________________________________________
>>>> barebox mailing list
>>>> barebox at lists.infradead.org
>>>> http://lists.infradead.org/mailman/listinfo/barebox
>> 




More information about the barebox mailing list