800x600 VGA Driver in IMX31-Linux

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

800x600 VGA Driver in IMX31-Linux

Jump to solution
1,815 Views
siva2fs
Contributor I
hi,
       Iam working in IMX31 LInux platform, as we are working in VGA driver in the PDK version of the BSP, we facing a problem in 800x600 display VGA in our custom board. After i modified in the mxcfb.c and mxcfb_modedb.c file with VGA configuration, still the monitor flickering .But its working fine in 640x480 VGA display.Can anyone please suggest me to override this..

Thanks in advance
Best regards,
Sivakumar
0 Kudos
1 Solution
553 Views
fabio_estevam
NXP Employee
NXP Employee
There is also a nice demo of a 800x600 connected to a MX31 here: http://www.youtube.com/watch?v=gijvxOV14bE&feature=related
 
Regards,
 
Fabio Estevam

View solution in original post

0 Kudos
2 Replies
553 Views
GAV
Contributor I
Hello,
 
In the mxcfb_modedb.c file, what did you make the "Value in Picoseconds" for the DOTCLOCK?  For the Epson, as an example, its the number in RED...... its "Epson-VGA", 60, 480, 640, 41701, 20, 111, 10, 15, 20, 10,
 
In the file "linux-2.6.19.2/drivers/mxc/ipu/ipu_sdc.c there is a hard code divide by 4 that is forced when the 1/picosecond value increases beyond 33MHz.  (See code below)
 
Try forcing is number to an abnormally low value.  Like, 2500.  This will increase your DOTCLOCK to 33MHz.  Still under whats typically recommended for a SVGA display, but on some displays it looks fine.  (I have done this with an AOU SVGA display....and it looked good.)
 
Hope this helps!!!
 
Gerry
 
 
 
 div = (clk_get_rate(g_ipu_clk) * 16) / pixel_clk;
 if (div < 0x40) { /* Divider less than 4 */
  dev_dbg(g_ipu_dev,
   "InitPanel() - Pixel clock divider less than 1\n");
  div = 0x40;
0 Kudos
554 Views
fabio_estevam
NXP Employee
NXP Employee
There is also a nice demo of a 800x600 connected to a MX31 here: http://www.youtube.com/watch?v=gijvxOV14bE&feature=related
 
Regards,
 
Fabio Estevam
0 Kudos