rk3288 lcdc: add CABC and FRC init value
authorhjc <hjc@rock-chips.com>
Tue, 25 Mar 2014 13:36:34 +0000 (21:36 +0800)
committerhjc <hjc@rock-chips.com>
Tue, 25 Mar 2014 13:36:42 +0000 (21:36 +0800)
drivers/video/rockchip/lcdc/rk3288_lcdc.c

index 1884e6f3fa7c5a3f721202a661fa0ba63cba38d4..2365706cf627af4ef54c56088bfafc285ef95287 100755 (executable)
@@ -242,6 +242,20 @@ static int rk3288_lcdc_pre_init(struct rk_lcdc_driver *dev_drv)
                writel_relaxed(v, RK_GRF_VIRT + RK3288_GRF_IO_VSEL);
        }
 #endif 
+       lcdc_writel(lcdc_dev,CABC_GAUSS_LINE0_0,0x15110903);
+       lcdc_writel(lcdc_dev,CABC_GAUSS_LINE0_1,0x00030911);
+       lcdc_writel(lcdc_dev,CABC_GAUSS_LINE1_0,0x1a150b04);
+       lcdc_writel(lcdc_dev,CABC_GAUSS_LINE1_1,0x00040b15);
+       lcdc_writel(lcdc_dev,CABC_GAUSS_LINE2_0,0x15110903);
+       lcdc_writel(lcdc_dev,CABC_GAUSS_LINE2_1,0x00030911);
+
+       lcdc_writel(lcdc_dev,FRC_LOWER01_0,0x12844821);
+       lcdc_writel(lcdc_dev,FRC_LOWER01_1,0x21488412);
+       lcdc_writel(lcdc_dev,FRC_LOWER10_0,0xa55a9696);
+       lcdc_writel(lcdc_dev,FRC_LOWER10_1,0x5aa56969);
+       lcdc_writel(lcdc_dev,FRC_LOWER11_0,0xdeb77deb);
+       lcdc_writel(lcdc_dev,FRC_LOWER11_1,0xed7bb7de);
+
        lcdc_set_bit(lcdc_dev, SYS_CTRL, m_AUTO_GATING_EN);
        lcdc_cfg_done(lcdc_dev);
        lcdc_dev->pre_init = true;
@@ -2845,8 +2859,12 @@ static int rk3288_lcdc_set_dsp_cabc(struct rk_lcdc_driver *dev_drv,int mode)
        /*iomux connect to vop or pwm*/
        if(mode == 0){
                DBG(3,"close cabc\n");
+               val = 0x30001;
+               writel_relaxed(val, RK_GRF_VIRT + RK3288_GRF_GPIO7A_IOMUX);/*pwm sel*/
+               lcdc_set_bit(lcdc_dev, SYS_CTRL, 0<<23);/*disable auto gating*/
                mask = m_CABC_EN;
                val = v_CABC_EN(0);
+               lcdc_set_bit(lcdc_dev, SYS_CTRL, m_AUTO_GATING_EN);
                /*lcdc_msk_reg(lcdc_dev, CABC_CTRL0, mask, val);*/
                return 0;
        }
@@ -2870,6 +2888,8 @@ static int rk3288_lcdc_set_dsp_cabc(struct rk_lcdc_driver *dev_drv,int mode)
                lcdc_cfg_done(lcdc_dev);
        }
        spin_unlock(&lcdc_dev->reg_lock);
+       val = 0x30003;
+       writel_relaxed(val, RK_GRF_VIRT + RK3288_GRF_GPIO7A_IOMUX);/*pwm sel*/
        return 0;
 }
 /*