Hello.
I read a number of article about digital output from thsi forum
but i can't find success digital outpuy settnig or any information
I want to below
Digital output of DM365 (YCbCr16,720P-60) -> External Hardware (For Example, AD9889 or TDA988x) -> HDMI Display
I work under dvsdk_2_10_01_18 & Linux 2.6.18_pro500(montavista)
I modify driver drivers/media/video/davinci/davinci_platform.c and logicpd_encoder.c
I add 720P-60 mode at logicpd_encoder.c (reference sprufg9)
.standards[0] = {
.name = VID_ENC_STD_720P_60,
.std = 1,
.if_type = VID_ENC_IF_YCC16,
.interlaced = 0,
.xres = 1280,
.yres = 720,
.fps = {60, 1},
.left_margin = 300,
.right_margin = 70,
.upper_margin = 26,
.lower_margin = 4,
.hsync_len = 63,
.vsync_len = 5,
.flags = 0},
I add my function, reference davinci_enc_set_digital_prbg function
static void davinci_enc_set_digital_ycbcr16(struct vid_enc_mode_info *mode_info)
{
printk(KERN_ERR "%s:%s:%d Enter\n",__FILE__,__func__,__LINE__);
enableDigitalOutput(1);
dispc_reg_out(VENC_VIDCTL, 0x141);
/* set VPSS clock */
//VPSS Clock Mux Control Register
davinci_writel(0x58, SYS_VPSS_CLKCTL); // MXI OSC
davinci_writel(0x081141EF, DM3XX_VDAC_CONFIG);
printk(KERN_ERR "%s:%s:%d Set Color Bar\n",__FILE__,__func__,__LINE__);
dispc_reg_merge(VENC_VDPRO, (1<<8), (1<<8));
/* DM365 pinmux */
dispc_reg_out(VENC_CLKCTL, 0x11);
davinci_cfg_reg(DM365_VOUT_HVSYNC, PINMUX_RESV);
davinci_cfg_reg(DM365_VOUT_COUTL_EN, PINMUX_RESV);
davinci_cfg_reg(DM365_VOUT_COUTH_EN, PINMUX_RESV);
/* Set VIDCTL to select VCLKE = 1,
VCLKZ =0, SYDIR = 0 (set o/p), DOMD = 0 */
dispc_reg_merge(VENC_VIDCTL, 1 << VENC_VIDCTL_VCLKE_SHIFT,
VENC_VIDCTL_VCLKE);
dispc_reg_merge(VENC_VIDCTL, 0 << VENC_VIDCTL_VCLKZ_SHIFT,
VENC_VIDCTL_VCLKZ);
dispc_reg_merge(VENC_VIDCTL, 0 << VENC_VIDCTL_SYDIR_SHIFT,
VENC_VIDCTL_SYDIR);
dispc_reg_merge(VENC_VIDCTL, 0 << VENC_VIDCTL_YCDIR_SHIFT,
VENC_VIDCTL_YCDIR);
davinci_enc_set_display_timing(mode_info);
dispc_reg_out(VENC_SYNCCTL,
(VENC_SYNCCTL_SYEV |
VENC_SYNCCTL_SYEH | VENC_SYNCCTL_HPL
| VENC_SYNCCTL_VPL));
/* Configure VMOD. No change in VENC bit */
dispc_reg_out(VENC_VMOD, 0x01C3);
dispc_reg_out(VENC_LCDOUT, 0x1);
printk(KERN_ERR "%s:%s:%d Leave[0x%x]\n",__FILE__,__func__,__LINE__,dispc_reg_in(VENC_VMOD));
}
and i call this function at davinci_enc_priv_setmode
But i can't any signal YOUT & COUT (of couse , I type "echo LCD > /sys/class/davinci_display/ch0/output")
what's wrong ?