lcd: update tcon_pll lock setting for tl1 [1/1]
authorEvoke Zhang <evoke.zhang@amlogic.com>
Fri, 7 Dec 2018 03:27:24 +0000 (11:27 +0800)
committerJianxin Pan <jianxin.pan@amlogic.com>
Fri, 7 Dec 2018 11:09:51 +0000 (03:09 -0800)
PD#SWPL-2983

Problem:
tcon_pll lock is affected by VDDEE voltage

Solution:
change tcon_pll lock setting to avoid VDDEE effection

Verify:
x301

Change-Id: I2f9d4638274fe3acdf5d8954b3670e7c108782e1
Signed-off-by: Evoke Zhang <evoke.zhang@amlogic.com>
drivers/amlogic/media/vout/lcd/lcd_clk_config.c

index 6076d79..e133ab7 100644 (file)
@@ -517,88 +517,92 @@ static void lcd_set_pll_tl1(struct lcd_clk_config_s *cConf)
        switch (lcd_drv->lcd_config->lcd_basic.lcd_type) {
        case LCD_LVDS:
                lcd_hiu_write(HHI_TCON_PLL_CNTL0, 0x000704ad);
-               mdelay(10);
+               udelay(10);
                lcd_hiu_write(HHI_TCON_PLL_CNTL0, 0x200704ad);
-               mdelay(10);
+               udelay(10);
                lcd_hiu_write(HHI_TCON_PLL_CNTL0, 0x300704ad);
-               mdelay(10);
+               udelay(10);
                lcd_hiu_write(HHI_TCON_PLL_CNTL1, 0x10508000);
-               mdelay(10);
+               udelay(10);
                lcd_hiu_write(HHI_TCON_PLL_CNTL2, 0x00001108);
-               mdelay(10);
+               udelay(10);
                //lcd_hiu_write(HHI_TCON_PLL_CNTL3, 0x10058f30);
                lcd_hiu_write(HHI_TCON_PLL_CNTL3, 0x10051400);
-               mdelay(10);
+               udelay(10);
                lcd_hiu_write(HHI_TCON_PLL_CNTL4, 0x010100c0);
-               mdelay(10);
+               udelay(10);
                lcd_hiu_write(HHI_TCON_PLL_CNTL4, 0x038300c0);
-               mdelay(10);
+               udelay(10);
                lcd_hiu_write(HHI_TCON_PLL_CNTL0, 0x340704ad);
-               mdelay(10);
+               udelay(10);
                lcd_hiu_write(HHI_TCON_PLL_CNTL0, 0x142e04ad);
-               mdelay(10);
+               udelay(10);
                lcd_hiu_write(HHI_TCON_PLL_CNTL2, 0x00003008);
-               mdelay(10);
+               udelay(10);
                lcd_hiu_write(HHI_TCON_PLL_CNTL4, 0x0b8300c0);
-               mdelay(10);
+               udelay(10);
                break;
        case LCD_VBYONE:
                lcd_hiu_write(HHI_TCON_PLL_CNTL0, 0x000f04f7);
-               mdelay(10);
+               udelay(10);
                lcd_hiu_write(HHI_TCON_PLL_CNTL0, 0x200f04f7);
-               mdelay(10);
+               udelay(10);
                lcd_hiu_write(HHI_TCON_PLL_CNTL0, 0x300f04f7);
-               mdelay(10);
+               udelay(10);
                lcd_hiu_write(HHI_TCON_PLL_CNTL1, 0x10110000);
-               mdelay(10);
+               udelay(10);
                lcd_hiu_write(HHI_TCON_PLL_CNTL2, 0x00001108);
-               mdelay(10);
+               udelay(10);
                lcd_hiu_write(HHI_TCON_PLL_CNTL3, 0x10051400);
-               mdelay(10);
+               udelay(10);
                lcd_hiu_write(HHI_TCON_PLL_CNTL4, 0x010100c0);
-               mdelay(10);
+               udelay(10);
                lcd_hiu_write(HHI_TCON_PLL_CNTL4, 0x038300c0);
-               mdelay(10);
+               udelay(10);
                lcd_hiu_write(HHI_TCON_PLL_CNTL0, 0x340f04f7);
-               mdelay(10);
+               udelay(10);
                lcd_hiu_write(HHI_TCON_PLL_CNTL0, 0x140f04f7);
-               mdelay(10);
+               udelay(10);
                lcd_hiu_write(HHI_TCON_PLL_CNTL2, 0x00003008);
-               mdelay(10);
+               udelay(10);
                break;
        case LCD_P2P:
                lcd_hiu_write(HHI_TCON_PLL_CNTL0, 0x000f04e1);
-               mdelay(10);
+               udelay(10);
                lcd_hiu_write(HHI_TCON_PLL_CNTL0, 0x200604e1);
-               mdelay(10);
+               udelay(10);
                lcd_hiu_write(HHI_TCON_PLL_CNTL0, 0x300604e1);
-               mdelay(10);
+               udelay(10);
                lcd_hiu_write(HHI_TCON_PLL_CNTL1, 0x10208000);
-               mdelay(10);
+               udelay(10);
                lcd_hiu_write(HHI_TCON_PLL_CNTL2, 0x00001108);
-               mdelay(10);
+               udelay(10);
                lcd_hiu_write(HHI_TCON_PLL_CNTL3, 0x10058f30);
-               mdelay(10);
+               udelay(10);
                lcd_hiu_write(HHI_TCON_PLL_CNTL4, 0x010100c0);
-               mdelay(10);
+               udelay(10);
                lcd_hiu_write(HHI_TCON_PLL_CNTL4, 0x038300c0);
-               mdelay(10);
+               udelay(10);
                lcd_hiu_write(HHI_TCON_PLL_CNTL0, 0x340604e1);
-               mdelay(10);
+               udelay(10);
                lcd_hiu_write(HHI_TCON_PLL_CNTL0, 0x14af04e1);
-               mdelay(10);
+               udelay(10);
                lcd_hiu_write(HHI_TCON_PLL_CNTL2, 0x00003008);
-               mdelay(10);
+               udelay(10);
                lcd_hiu_write(HHI_TCON_PLL_CNTL4, 0x0b8300c0);
-               mdelay(10);
+               udelay(10);
                break;
        default:
                break;
        }
 #endif
        ret = lcd_pll_wait_lock(HHI_TCON_PLL_CNTL0, LCD_PLL_LOCK_TL1);
-       if (ret)
+       if (ret) {
                LCDERR("hpll lock failed\n");
+       } else {
+               udelay(100);
+               lcd_hiu_setb(HHI_TCON_PLL_CNTL2, 1, 5, 1);
+       }
 
        if (cConf->ss_level > 0)
                lcd_set_pll_ss_tl1(cConf->ss_level);