|
DNI o you know how to adjust the HDMI PHY setting below, is it needed for setting HDMI output to differnt resolution? Thanks
Roger
static int hdmi_phy_set(struct video_para *video)
{
unsigned int id;
unsigned int tmp;
id = get_vid(video->vic);
hdmi_writel(0x10020,hdmi_readl(0x10020)&(~0xf000));
switch(ptbl[id].para[1])
{
case 1:
if(hdmi_version == 0)
hdmi_writel(0x1002c,0x31dc5fc0);
else
hdmi_writel(0x1002c,0x30dc5fc0);
hdmi_writel(0x10030,0x800863C0);
hdmi_udelay(10000);
hdmi_writel(0x10034,0x00000001);
hdmi_writel(0x1002c,hdmi_readl(0x1002c)|0x02000000);
hdmi_udelay(200000);
tmp = hdmi_readl(0x10038);
hdmi_writel(0x1002c,hdmi_readl(0x1002c)|0xC0000000);
if(((tmp&0x1f800)>>11) < 0x3d)
hdmi_writel(0x1002c,hdmi_readl(0x1002c)|(((tmp&0x1f800)>>11)+2));
else
hdmi_writel(0x1002c,hdmi_readl(0x1002c)|0x3f);
hdmi_udelay(100000);
hdmi_writel(0x10020,0x01FFFF7F);
hdmi_writel(0x10024,0x8063b000);
hdmi_writel(0x10028,0x0F8246B5);
break;
case 2:
hdmi_writel(0x1002c,0x39dc5040);
hdmi_writel(0x10030,0x80084381);
hdmi_udelay(10000);
hdmi_writel(0x10034,0x00000001);
hdmi_writel(0x1002c,hdmi_readl(0x1002c)|0x02000000);
hdmi_udelay(100000);
tmp = hdmi_readl(0x10038);
hdmi_writel(0x1002c,hdmi_readl(0x1002c)|0xC0000000);
hdmi_writel(0x1002c,hdmi_readl(0x1002c)|((tmp&0x1f800)>>11));
hdmi_writel(0x10020,0x01FFFF7F);
hdmi_writel(0x10024,0x8063a800);
hdmi_writel(0x10028,0x0F81C485);
break;
case 4:
hdmi_writel(0x1002c,0x39dc5040);
hdmi_writel(0x10030,0x80084343);
hdmi_udelay(10000);
hdmi_writel(0x10034,0x00000001);
hdmi_writel(0x1002c,hdmi_readl(0x1002c)|0x02000000);
hdmi_udelay(100000);
tmp = hdmi_readl(0x10038);
hdmi_writel(0x1002c,hdmi_readl(0x1002c)|0xC0000000);
hdmi_writel(0x1002c,hdmi_readl(0x1002c)|((tmp&0x1f800)>>11));
hdmi_writel(0x10020,0x01FFFF7F);
hdmi_writel(0x10024,0x8063b000);
hdmi_writel(0x10028,0x0F81C405);
break;
case 11:
hdmi_writel(0x1002c,0x39dc5040);
hdmi_writel(0x10030,0x8008430a);
hdmi_udelay(10000);
hdmi_writel(0x10034,0x00000001);
hdmi_writel(0x1002c,hdmi_readl(0x1002c)|0x02000000);
hdmi_udelay(100000);
tmp = hdmi_readl(0x10038);
hdmi_writel(0x1002c,hdmi_readl(0x1002c)|0xC0000000);
hdmi_writel(0x1002c,hdmi_readl(0x1002c)|((tmp&0x1f800)>>11));
hdmi_writel(0x10020,0x01FFFF7F);
hdmi_writel(0x10024,0x8063b000);
hdmi_writel(0x10028,0x0F81C405);
break;
default:
return -1;
}
return 0;
}
|
|