[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