From: xubilv Date: Wed, 25 Mar 2015 10:03:40 +0000 (+0800) Subject: mipi: rk3368 support power domain - pd_mipi_dsi. X-Git-Tag: firefly_0821_release~4158^2~284 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=f62320a5270ed96cd787a66e84964926863296d5;p=firefly-linux-kernel-4.4.55.git mipi: rk3368 support power domain - pd_mipi_dsi. Signed-off-by: xubilv --- diff --git a/arch/arm64/boot/dts/rk3368.dtsi b/arch/arm64/boot/dts/rk3368.dtsi index e6ac58903182..53858947744e 100755 --- a/arch/arm64/boot/dts/rk3368.dtsi +++ b/arch/arm64/boot/dts/rk3368.dtsi @@ -747,8 +747,8 @@ reg = <0x0 0xff960000 0x0 0x4000>, <0x0 0xff968000 0x0 0x4000>; reg-names = "mipi_dsi_host" ,"mipi_dsi_phy"; interrupts = ; - clocks = <&clk_gates4 14>, <&clk_gates22 10>, <&clk_gates17 3>; - clock-names = "clk_mipi_24m", "pclk_mipi_dsi", "pclk_mipi_dsi_host"; + clocks = <&clk_gates4 14>, <&clk_gates22 10>, <&clk_gates17 3>, <&pd_mipidsi>; + clock-names = "clk_mipi_24m", "pclk_mipi_dsi", "pclk_mipi_dsi_host", "pd_mipi_dsi"; status = "okay"; }; diff --git a/drivers/video/rockchip/transmitter/rk32_mipi_dsi.c b/drivers/video/rockchip/transmitter/rk32_mipi_dsi.c index 7f624934d0ee..c5e39ef6f3e9 100755 --- a/drivers/video/rockchip/transmitter/rk32_mipi_dsi.c +++ b/drivers/video/rockchip/transmitter/rk32_mipi_dsi.c @@ -442,7 +442,8 @@ static int rk312x_phy_power_up(struct dsi *dsi) if (dsi->ops.id == DWC_DSI_VERSION_RK312x) { clk_prepare_enable(dsi->h2p_hclk); clk_prepare_enable(dsi->dsi_pd); - } + } else + clk_prepare_enable(dsi->dsi_pd); udelay(10); @@ -503,7 +504,8 @@ static int rk312x_phy_power_down(struct dsi *dsi) if (dsi->ops.id == DWC_DSI_VERSION_RK312x) { clk_disable_unprepare(dsi->h2p_hclk); clk_disable_unprepare(dsi->dsi_pd); - } + } else + clk_disable_unprepare(dsi->dsi_pd); return 0; } @@ -1748,6 +1750,12 @@ static int rk32_mipi_dsi_probe(struct platform_device *pdev) dev_err(&pdev->dev, "get pclk_mipi_dsi_host clock fail\n"); return PTR_ERR(dsi->dsi_host_pclk); } + + dsi->dsi_pd = devm_clk_get(&pdev->dev, "pd_mipi_dsi"); + if (unlikely(IS_ERR(dsi->dsi_pd))) { + dev_err(&pdev->dev, "get pd_mipi_dsi clock fail\n"); + return PTR_ERR(dsi->dsi_pd); + } } if (dsi->ops.id == DWC_DSI_VERSION_RK312x) {