rockchip:rk312x-lcdc: add support enable or disable vio power domain
authorzwl <zwl@rockchips.com>
Mon, 18 Aug 2014 13:23:55 +0000 (21:23 +0800)
committerzwl <zwl@rockchips.com>
Mon, 18 Aug 2014 13:24:28 +0000 (21:24 +0800)
arch/arm/boot/dts/rk312x.dtsi
drivers/video/rockchip/lcdc/rk312x_lcdc.c

index 8483401d8b434d1fd03a57a6c3a1216e78ba678a..43372be7b68ea04f287cffe0a5419d37bbee173f 100755 (executable)
                rockchip,prop = <PRMRY>;
                reg = <0x1010e000 0x2000>;
                interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
-               clocks = <&clk_gates6 0>, <&dclk_lcdc0>, <&clk_gates6 1>, <&sclk_lcdc0>;
-               clock-names = "aclk_lcdc", "dclk_lcdc", "hclk_lcdc", "sclk_lcdc";
+               clocks = <&clk_gates6 0>, <&dclk_lcdc0>, <&clk_gates6 1>, <&sclk_lcdc0>, <&pd_vio>;
+               clock-names = "aclk_lcdc", "dclk_lcdc", "hclk_lcdc", "sclk_lcdc", "pd_lcdc";
                rockchip,iommu-enabled = <1>;
                status = "disabled";
        };
index 20e45b33874c00dc0fba9af5004c30bc1ae6940c..d7554ecac7fb8cc0ac7101e94adfdde8c2fa2a8d 100755 (executable)
@@ -103,7 +103,7 @@ static int rk312x_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_prepare_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);
@@ -126,7 +126,7 @@ static int rk312x_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_unprepare(lcdc_dev->pd);
+               clk_disable_unprepare(lcdc_dev->pd);
        }
 
        return 0;
@@ -526,7 +526,7 @@ static int rk312x_lcdc_pre_init(struct rk_lcdc_driver *dev_drv)
        lcdc_dev->aclk = devm_clk_get(lcdc_dev->dev, "aclk_lcdc");
        lcdc_dev->dclk = devm_clk_get(lcdc_dev->dev, "dclk_lcdc");
        lcdc_dev->sclk = devm_clk_get(lcdc_dev->dev, "sclk_lcdc");
-//      lcdc_dev->pd   = devm_clk_get(lcdc_dev->dev, "pd_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))) {