|  | 
| 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;
 }
 
 
 
 | 
 |