We are trying to connect a Innolux LCD to the DISP0/LCD port on a SabreSD board, but when booting Android a few issues are present:
Has anyone else seen the same behavior or have a clue on what can be wrong?
We have modified mxc_lcdif.c and defined a our Innolux-LCD with correct values (according to the display datasheet). We have also defined fb3 as our LCD in board-mx6q_sabresd.c
And we have verified that the timing is correct using a oscilloscope.
Hi,
Sorry for the delay. Would you be nice enough to share your SW changes, HW connections and datasheet of the LCD you are using?
Best Regards,
Alejandro
SW changes are very few. In "mxc_lcdif.c" I've added a third entry to the lcdif_modedb[] array and called it "INNOLUX", like this;
static struct fb_videomode lcdif_modedb[] {
....
{
"INNOLUX", 80, 800, 480, 22727,
26, 154, 20, 47, 20, 3,
FB_SYNC_CLK_LAT_FALL,
FB_VMODE_NONINTERLACED,
0,},
};
Then I've replaced the fb0 entry in "board-mx6q_sabresd.c" with:
.disp_dev = "lcd",
.interface_pix_fmt = IPU_PIX_FMT_BGR24,
.mode_str = "INNOLUX",
.default_bpp = 32,
.int_clk = false,
.late_init = false
The third and last change is to the boot parameters to use the lcd/INNOLUX values instead of the default value.
The LCD datasheet can be found here: http://www.displayalliance.com/storage/1-spec-sheets/EJ070NA-03A.pdf
The timings might seem odd, but I've tried using the values from the "typical" column and it gives the same result. The values mentioned above are from measurements from another device that use the same LCD (for another platform), but were we dont have the source code changes. I've also tried different clock speeds and refresh-rates without any success (the view is always offset to the left about the same amount)
When we measure the output from the LCD pinns on DISP0/LCD connector we can see that the output is correct according to the LCD-datasheet. However the color channels goes quiet for the last ~56 pixels for each line and the resulting image on the LCD is offset but roughly the same amount of pixels (drawn somewhat outside the view to the left of the LCD). Almost every reboot causes all channels but the blue one to output nothing at all. Once Android is running and goes to sleep and comes back, the red and green channels "wake up". Changing the pixel format to _RGB24 causes all colors to "work" (directly from boot) without the sleep/wake.
As for how the LCD is connected to the DISP0/LCD-connector refer to the attached document.
Best Regards,
Hans Rönnbäck
Ok,
Let me delve into this. I will work with one of my peers who is the expert.
I will get back to you as soon as possible.
Best Regards,
Alejandro
Something else I did just notice is that the video output is not only offset to the left, but also seem to be stretched in the Y axis. Making the system ui "buttons" disappear below the bottom of the screen.
I've also edited the file "display_mode_fb0.conf" so that is only contains the resolution supported by our LCD (800x480)