mxsfb on i.MX28 uses bypassed ref_xtal 24MHz clock for LCD

From: Hector Palacios
Date: Fri May 17 2013 - 10:06:47 EST


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_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
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at
Please read the FAQ at