现在的位置: 首页 > 综合 > 正文

MSM7X平台LCD_PCLK的设置

2013年08月11日 ⁄ 综合 ⁄ 共 794字 ⁄ 字号 评论关闭

原始代码中Pclk设置为8M但对于320*480的lcd需要提高到10M左右。
于是直接修改bootloader和kernel中的两处
lcdc_clock_init(8000000);
pinfo->clk_rate = 8000000;

下载后开机失败,打印log显示:
Can't set MDP LCDC pixel clock to rate 10000000

ret = clk_set_rate(pixel_mdp_clk, mfd->fbi->var.pixclock);
if (ret) {
pr_err("%s: Can't set MDP LCDC pixel clock to rate %u\n",
__func__, mfd->fbi->var.pixclock);
goto out;
}

查找pixel_mdp_clk后显示
pixel_mdp_clk = clk_get(NULL, "mdp_lcdc_pclk_clk");
CLK_PCOM("mdp_lcdc_pclk_clk", MDP_LCDC_PCLK_CLK, NULL, 0),
查到此处后发现clk是通过RPC共享内存的方式来调用ARM9端的设置。

再arm9段查找 MDP_LCDC_PCLK_CLK 可得到是使用此 clk_regime_sel_mdp_lcdc_clk()函数来设置pclk
一路查找(这代码找得真郁闷)
boolean clk_regime_bsp_init (void) //pclk的赋值
  clkrgm_bsp = &clkrgm_bsp_data; //值传递
clk_regime_bsp_load_mdp_lcdc_cfgs //传递数组的值

最后找到clkrgm_bsp_7627.c文件的
clkrgm_bsp_msm_clk_cfg_type clkrgm_bsp_msm_cfg_mdp_lcdc[]
{
//在此函数中添加你想要的pclk即可,尼吗的,这代码找得真蛋痛!
}

抱歉!评论已关闭.