Hi Emanualle,
The support for 525p is planned to be included in the latest
release of the drivers.
The approx code for it looks something like this:
vpbe_set_display_default();
/* Reset video encoder module */
dispc_reg_out(VENC_VMOD, 0);
dispc_reg_out(OSD_BASEPX, dm->videomode.basepx);
dispc_reg_out(OSD_BASEPY, dm->videomode.basepy);
dispc_reg_out(VPSS_CLKCTL, 0x19);
dispc_reg_merge(VPBE_PCR, VPBE_PCR_VENC_DIV,
VPBE_PCR_VENC_DIV);
dispc_reg_out(VENC_OSDCLK0, 0);
dispc_reg_out(VENC_OSDCLK1, 1);
dispc_reg_merge(VENC_VDPRO, VENC_VDPRO_DAFRQ,
VENC_VDPRO_DAFRQ);
dispc_reg_merge(VENC_VDPRO, VENC_VDPRO_DAUPS,
VENC_VDPRO_DAUPS);
/* Enable Composite output and start video encoder */
/* Set VMOD to select VENC =ENABLE,
TVTYP = HDTV 525, HDMD = HDTV, ITLC = Non_interlace */
dispc_reg_out(VENC_VMOD, (VENC_VMOD_VIE | VENC_VMOD_VENC));
dispc_reg_merge(VENC_VMOD,
VENC_VMOD_VDMD_YCBCR8 <<
VENC_VMOD_VDMD_SHIFT, VENC_VMOD_VDMD);
dispc_reg_merge(VENC_VMOD, VENC_VMOD_HDMD, VENC_VMOD_HDMD);
dispc_reg_merge(VENC_VMOD,
HDTV_525P << VENC_VMOD_TVTYP_SHIFT,
VENC_VMOD_TVTYP);
/* Enable Component output; DAC A: Y, DAC B: Pb, DAC C: Pr
*/
dispc_reg_out(VENC_DACSEL, 0x543);
/* Set REC656 Mode */
dispc_reg_out(VENC_YCCCTL, 0x1);
/* Enable all DACs */
dispc_reg_out(VENC_DACTST, 0);
Please see if this can help you. Please get back if you need any
clarifications.
Thanks and Regards,
-Manju
________________________________
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On
Behalf Of Emanuele Ghidoli
Sent: Monday, January 29, 2007 10:58 PM
To: [email protected]
Subject: VPFE - 525p settings
Hello,
I want to run DVEMV to EDTV timings (525p).
I modify the linux driver in this way:
In the static int davincifb_probe(struct device *dev)
{
printk("Setting Up Clocks for DM420 OSD\n"); /* Initialize the VPSS
Clock Control register */
dispc_reg_out(VPSS_CLKCTL, 0x19); // 0x19 old value 0x18 (27MHz
clock)
printk(KERN_INFO "Enabling vsync and hsync output\n"); /* Ghido -
Enable VYSNC and HSYNC output */
dispc_reg_merge( VENC_VIDCTL, 0, VENC_VIDCTL_SYDIR); /* Ghido -
Enable VSYNC and HSYNC signals */
dispc_reg_out( VENC_SYNCCTL, 0xF);
etc...
and create this function:
static void davincifb_vga_rgb_config(int on)
{
DBGENTER;
if (on) {
/* Reset video encoder module */
dispc_reg_out(VENC_VMOD, 0);
/* Enable Composite output and start video encoder */
dispc_reg_out(VENC_VMOD, ( VENC_VMOD_VENC));
/* Video encoder clock divisor set to 1 (for progressive) */
dispc_reg_out(VPBE_PCR, VPBE_PCR_VENC_DIV);
/* Set REC656 Mode */
dispc_reg_out(VENC_YCCCTL, 0x1);
/* set RGB LPF sampling frequency to ENC clock / 2 */
dispc_reg_merge(VENC_RGBCTL, 0x0200, 0x0200);
/* Ghido - Enable output mode and NTSC progressive */
dispc_reg_out(VENC_VMOD, 0x1103);//0x0103);
/* Ghido - Say to DAC that it is running to 54 MHz */
dispc_reg_merge(VENC_VDPRO, VENC_VDPRO_DAFRQ|0x7,
VENC_VDPRO_DAFRQ|0x7); //|0x300 for test
/* Ghido - Say to DAC to go in RGB mode and remove sync on green*/
dispc_reg_merge(VENC_CMPNT, VENC_CMPNT_MRGB,
VENC_CMPNT_MRGB|VENC_CMPNT_MSYG);
/* Enable Component output; DAC A: Y, DAC B: Pb, DAC C:
Pr */
dispc_reg_out(VENC_DACSEL, 0x543);
/* Enable all DACs */
dispc_reg_out(VENC_DACTST, 0);
} else {
/* Reset video encoder module */
dispc_reg_out(VENC_VMOD, 0);
}
DBGEXIT;
}
I add this function in the correct position. I add some defines to
manage this but...
When I enable colorbar I see the colorbar in the correct way but when I
try to use the framebuffer the image is completely scrambled.
Anyone tried to do this or have some idea?
Thank you.
Emanuele Ghidoli
_______________________________________________
Davinci-linux-open-source mailing list
[email protected]
http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source