From: hjc Date: Thu, 17 Apr 2014 06:34:55 +0000 (+0800) Subject: rk3288 lcdc: add control vop power domain X-Git-Tag: firefly_0821_release~5530 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=6b1a7da875adf8c7af5ad36b8be79417f2034f20;p=firefly-linux-kernel-4.4.55.git rk3288 lcdc: add control vop power domain --- diff --git a/arch/arm/boot/dts/rk3288.dtsi b/arch/arm/boot/dts/rk3288.dtsi index 662a0f256dad..cfa032626d43 100755 --- a/arch/arm/boot/dts/rk3288.dtsi +++ b/arch/arm/boot/dts/rk3288.dtsi @@ -752,8 +752,8 @@ pinctrl-0 = <&lcdc0_lcdc>; pinctrl-1 = <&lcdc0_gpio>; status = "disabled"; - clocks = <&clk_gates15 7>, <&dclk_lcdc1>, <&clk_gates15 8>; - clock-names = "aclk_lcdc", "dclk_lcdc", "hclk_lcdc"; + clocks = <&clk_gates15 7>, <&dclk_lcdc1>, <&clk_gates15 8>, <&pd_vop1>; + clock-names = "aclk_lcdc", "dclk_lcdc", "hclk_lcdc", "pd_lcdc"; }; lcdc0: lcdc@ff930000 { @@ -766,8 +766,8 @@ //pinctrl-0 = <&lcdc0_lcdc>; //pinctrl-1 = <&lcdc0_gpio>; status = "disabled"; - clocks = <&clk_gates15 5>, <&dclk_lcdc0>, <&clk_gates15 6>; - clock-names = "aclk_lcdc", "dclk_lcdc", "hclk_lcdc"; + clocks = <&clk_gates15 5>, <&dclk_lcdc0>, <&clk_gates15 6>, <&pd_vop0>; + clock-names = "aclk_lcdc", "dclk_lcdc", "hclk_lcdc", "pd_lcdc"; }; adc: adc@ff100000 { diff --git a/drivers/video/rockchip/lcdc/rk3288_lcdc.c b/drivers/video/rockchip/lcdc/rk3288_lcdc.c index 9dc130775dd5..bd495095fb20 100755 --- a/drivers/video/rockchip/lcdc/rk3288_lcdc.c +++ b/drivers/video/rockchip/lcdc/rk3288_lcdc.c @@ -96,7 +96,7 @@ static int rk3288_lcdc_clk_enable(struct lcdc_device *lcdc_dev) clk_prepare_enable(lcdc_dev->hclk); clk_prepare_enable(lcdc_dev->dclk); clk_prepare_enable(lcdc_dev->aclk); - /*clk_enable(lcdc_dev->pd);*/ + clk_prepare_enable(lcdc_dev->pd); spin_lock(&lcdc_dev->reg_lock); lcdc_dev->clk_on = 1; spin_unlock(&lcdc_dev->reg_lock); @@ -119,7 +119,7 @@ static int rk3288_lcdc_clk_disable(struct lcdc_device *lcdc_dev) clk_disable_unprepare(lcdc_dev->dclk); clk_disable_unprepare(lcdc_dev->hclk); clk_disable_unprepare(lcdc_dev->aclk); - /*clk_disable(lcdc_dev->pd);*/ + clk_disable_unprepare(lcdc_dev->pd); } return 0; @@ -211,6 +211,7 @@ static int rk3288_lcdc_pre_init(struct rk_lcdc_driver *dev_drv) lcdc_dev->hclk = devm_clk_get(lcdc_dev->dev, "hclk_lcdc"); lcdc_dev->aclk = devm_clk_get(lcdc_dev->dev, "aclk_lcdc"); lcdc_dev->dclk = devm_clk_get(lcdc_dev->dev, "dclk_lcdc"); + lcdc_dev->pd = devm_clk_get(lcdc_dev->dev, "pd_lcdc"); if (IS_ERR(lcdc_dev->pd) || (IS_ERR(lcdc_dev->aclk)) || (IS_ERR(lcdc_dev->dclk)) || (IS_ERR(lcdc_dev->hclk))) {