rk3288 lvds: add control lvds power domain

This commit is contained in:
hjc
2014-04-17 14:50:00 +08:00
parent 6b1a7da875
commit 64c4609a6a
2 changed files with 9 additions and 1 deletions

View File

@@ -23,6 +23,7 @@ static int rk32_lvds_disable(void)
writel_relaxed(0x00, lvds->regs + LVDS_CFG_REG_21); /*disable tx*/
writel_relaxed(0xff, lvds->regs + LVDS_CFG_REG_c); /*disable pll*/
clk_disable_unprepare(lvds->clk);
clk_disable_unprepare(lvds->pd);
return 0;
}
@@ -34,6 +35,7 @@ static int rk32_lvds_en(void)
u32 i,j, val ;
clk_prepare_enable(lvds->clk);
clk_prepare_enable(lvds->pd);
screen->type = SCREEN_RGB;
screen->lcdc_id = 1;
@@ -271,11 +273,16 @@ static int rk32_lvds_probe(struct platform_device *pdev)
dev_err(&pdev->dev, "ioremap reg failed\n");
return PTR_ERR(lvds->regs);
}
lvds->clk = devm_clk_get(&pdev->dev,NULL);
lvds->clk = devm_clk_get(&pdev->dev,"pclk_lvds");
if (IS_ERR(lvds->clk)) {
dev_err(&pdev->dev, "get clk failed\n");
return PTR_ERR(lvds->clk);
}
lvds->pd = devm_clk_get(&pdev->dev,"pd_lvds");
if (IS_ERR(lvds->pd)) {
dev_err(&pdev->dev, "get clk failed\n");
return PTR_ERR(lvds->pd);
}
rk32_lvds = lvds;
rk_fb_trsm_ops_register(&trsm_lvds_ops,SCREEN_LVDS);
dev_info(&pdev->dev, "rk32 lvds driver probe success\n");

View File

@@ -31,6 +31,7 @@ struct rk32_lvds {
struct device *dev;
void __iomem *regs;
struct clk *clk; /*phb clk*/
struct clk *pd;
struct rk_screen screen;
};