2013-05-17 14:06:43

by Hector Palacios

[permalink] [raw]
Subject: mxsfb on i.MX28 uses bypassed ref_xtal 24MHz clock for LCD

Hello,

I was testing the framebuffer on an i.MX28 based platform and found out that the lcdif
clock is actually bypassed to use the ref_xtal of 24MHz, which makes the
clk_set_rate() call in the driver useless (as well as the pixclock settings in
fb_videomode variables in mach-mxs.c):

static void mxsfb_enable_controller(struct fb_info *fb_info)
{
struct mxsfb_info *host = to_imxfb_host(fb_info);
u32 reg;

dev_dbg(&host->pdev->dev, "%s\n", __func__);

clk_prepare_enable(host->clk);
clk_set_rate(host->clk, PICOS2KHZ(fb_info->var.pixclock) * 1000U);

This can easily be checked by probing the pixel clock signal.
Is this known or did it go unnoticed because the supported displays work ok with the
bypassed 24MHz frequency?
If using a pixel clock below 24MHz, the divisor will round to 2 thus generating a
12MHz signal.

On the MX28EVK board with the Seiko 4.3" LCD, I do not see the penguin or any image in
v3.8 or v3.9 though the framebuffer device is present and correctly loaded and
backlight on.
This LCD works in kernel v2.6.35 with the same 24MHz frequency.
@Fabio, does this LCD work out of the box on v3.9? Am I missing something?

Thank you.
--
H?ctor Palacios


2013-05-17 14:07:26

by Fabio Estevam

[permalink] [raw]
Subject: Re: mxsfb on i.MX28 uses bypassed ref_xtal 24MHz clock for LCD

On 05/17/2013 10:57 AM, Hector Palacios wrote:

> On the MX28EVK board with the Seiko 4.3" LCD, I do not see the penguin
> or any image in v3.8 or v3.9 though the framebuffer device is present
> and correctly loaded and backlight on.
> This LCD works in kernel v2.6.35 with the same 24MHz frequency.
> @Fabio, does this LCD work out of the box on v3.9? Am I missing something?

Yes, works fine here.

Make sure you update both the kernel and dtb files on your tests.

Regards,

Fabio Estevam

2013-05-20 15:00:06

by Hector Palacios

[permalink] [raw]
Subject: Re: mxsfb on i.MX28 uses bypassed ref_xtal 24MHz clock for LCD

Dear Fabio,

On 05/17/2013 04:07 PM, Fabio Estevam wrote:
> On 05/17/2013 10:57 AM, Hector Palacios wrote:
>
>> On the MX28EVK board with the Seiko 4.3" LCD, I do not see the penguin
>> or any image in v3.8 or v3.9 though the framebuffer device is present
>> and correctly loaded and backlight on.
>> This LCD works in kernel v2.6.35 with the same 24MHz frequency.
>> @Fabio, does this LCD work out of the box on v3.9? Am I missing something?
>
> Yes, works fine here.
>
> Make sure you update both the kernel and dtb files on your tests.

Agh. Now it works on the EVK. I had something wrong with the backlight (maybe a bad DTB).

Do you have any comment on the fact that the lcdif clock is bypassed to the 24MHz ref
clock? Doesn't this make useless the definition of pixelclk for the different displays
in mach-mxs.c?
You can only obtain whole divisors of this frequency (24, 12, 6, 4), which may not be
accurate enough to fit some displays.

Regards,
--
H?ctor Palacios

2013-05-20 15:11:21

by Fabio Estevam

[permalink] [raw]
Subject: Re: mxsfb on i.MX28 uses bypassed ref_xtal 24MHz clock for LCD

On Mon, May 20, 2013 at 11:59 AM, Hector Palacios
<[email protected]> wrote:

> Agh. Now it works on the EVK. I had something wrong with the backlight
> (maybe a bad DTB).
>
> Do you have any comment on the fact that the lcdif clock is bypassed to the
> 24MHz ref clock? Doesn't this make useless the definition of pixelclk for
> the different displays in mach-mxs.c?
> You can only obtain whole divisors of this frequency (24, 12, 6, 4), which
> may not be accurate enough to fit some displays.

I haven't had a chance to look at it yet, but feel free to submit
patches if you think you can improve the driver.

Thanks,

Fabio Estevam