diff options
author | Fancy Fang <chen.fang@freescale.com> | 2014-05-07 23:33:45 -0400 |
---|---|---|
committer | Fancy Fang <chen.fang@freescale.com> | 2014-06-26 21:56:29 -0400 |
commit | 28e18731417fd62e44d2f756c9fc9a5cd3e92a15 (patch) | |
tree | 259273247bd301623a925db0746fa009e7f6b3aa | |
parent | 8bd1eb3574d1b9871f6bca0ee4ed997c848d8a4d (diff) |
ENGR00320185-1 IMX6SX/DISPMIX: add dispmix on/off support for 6SX platform
Add the required clocks for the dispmix on/off operation.
This include clocks definition and initialization.
Signed-off-by: Fancy Fang <chen.fang@freescale.com>
(cherry picked from commit 638acb3c30b135901631e59c9938e06422cc4b76)
-rw-r--r-- | arch/arm/boot/dts/imx6sx.dtsi | 8 | ||||
-rw-r--r-- | arch/arm/mach-imx/gpc.c | 10 |
2 files changed, 15 insertions, 3 deletions
diff --git a/arch/arm/boot/dts/imx6sx.dtsi b/arch/arm/boot/dts/imx6sx.dtsi index 502e4820225a..71f58da72003 100644 --- a/arch/arm/boot/dts/imx6sx.dtsi +++ b/arch/arm/boot/dts/imx6sx.dtsi | |||
@@ -553,8 +553,12 @@ | |||
553 | compatible = "fsl,imx6q-gpc"; | 553 | compatible = "fsl,imx6q-gpc"; |
554 | reg = <0x020dc000 0x4000>; | 554 | reg = <0x020dc000 0x4000>; |
555 | interrupts = <0 89 0x04>; | 555 | interrupts = <0 89 0x04>; |
556 | clocks = <&clks IMX6SX_CLK_GPU>, <&clks IMX6SX_CLK_IPG>; | 556 | clocks = <&clks IMX6SX_CLK_GPU>, <&clks IMX6SX_CLK_IPG>, |
557 | clock-names = "gpu3d_core", "ipg"; | 557 | <&clks IMX6SX_CLK_PXP_AXI>, <&clks IMX6SX_CLK_DISPLAY_AXI>, |
558 | <&clks IMX6SX_CLK_LCDIF1_PIX>, <&clks IMX6SX_CLK_LCDIF_APB>, | ||
559 | <&clks IMX6SX_CLK_LCDIF2_PIX>, <&clks IMX6SX_CLK_CSI>; | ||
560 | clock-names = "gpu3d_core", "ipg", "pxp_axi", "disp_axi", "lcdif1_pix", | ||
561 | "lcdif_axi", "lcdif2_pix", "csi_mclk"; | ||
558 | pu-supply = <&pu_dummy>; | 562 | pu-supply = <&pu_dummy>; |
559 | pcie-supply = <®_pcie>; | 563 | pcie-supply = <®_pcie>; |
560 | fsl,mf-mix-wakeup-irq = <0x7c00000 0x3d00 0x0 0x400200>; | 564 | fsl,mf-mix-wakeup-irq = <0x7c00000 0x3d00 0x0 0x400200>; |
diff --git a/arch/arm/mach-imx/gpc.c b/arch/arm/mach-imx/gpc.c index 2823d4ab8a5b..00f07f1c1dd1 100644 --- a/arch/arm/mach-imx/gpc.c +++ b/arch/arm/mach-imx/gpc.c | |||
@@ -63,6 +63,7 @@ static u32 gpc_saved_imrs[IMR_NUM]; | |||
63 | static struct clk *gpu3d_clk, *gpu3d_shader_clk, *gpu2d_clk, *gpu2d_axi_clk; | 63 | static struct clk *gpu3d_clk, *gpu3d_shader_clk, *gpu2d_clk, *gpu2d_axi_clk; |
64 | static struct clk *lcd_axi_clk, *lcd_pix_clk, *epdc_axi_clk, *epdc_pix_clk; | 64 | static struct clk *lcd_axi_clk, *lcd_pix_clk, *epdc_axi_clk, *epdc_pix_clk; |
65 | static struct clk *pxp_axi_clk; | 65 | static struct clk *pxp_axi_clk; |
66 | static struct clk *disp_axi_clk, *lcdif_axi_clk, *lcdif1_pix_clk, *lcdif2_pix_clk, *csi_mclk; | ||
66 | static struct clk *openvg_axi_clk, *vpu_clk, *ipg_clk; | 67 | static struct clk *openvg_axi_clk, *vpu_clk, *ipg_clk; |
67 | static struct device *gpc_dev; | 68 | static struct device *gpc_dev; |
68 | static struct regulator *pu_reg; | 69 | static struct regulator *pu_reg; |
@@ -593,7 +594,14 @@ static int imx_gpc_probe(struct platform_device *pdev) | |||
593 | } else if (cpu_is_imx6sx()) { | 594 | } else if (cpu_is_imx6sx()) { |
594 | gpu3d_clk = devm_clk_get(gpc_dev, "gpu3d_core"); | 595 | gpu3d_clk = devm_clk_get(gpc_dev, "gpu3d_core"); |
595 | ipg_clk = devm_clk_get(gpc_dev, "ipg"); | 596 | ipg_clk = devm_clk_get(gpc_dev, "ipg"); |
596 | if (IS_ERR(gpu3d_clk) || IS_ERR(ipg_clk)) { | 597 | pxp_axi_clk = devm_clk_get(gpc_dev, "pxp_axi"); |
598 | disp_axi_clk = devm_clk_get(gpc_dev, "disp_axi"); | ||
599 | lcdif1_pix_clk = devm_clk_get(gpc_dev, "lcdif1_pix"); | ||
600 | lcdif_axi_clk = devm_clk_get(gpc_dev, "lcdif_axi"); | ||
601 | lcdif2_pix_clk = devm_clk_get(gpc_dev, "lcdif2_pix"); | ||
602 | csi_mclk = devm_clk_get(gpc_dev, "csi_mclk"); | ||
603 | if (IS_ERR(gpu3d_clk) || IS_ERR(ipg_clk) || IS_ERR(pxp_axi_clk) || IS_ERR(disp_axi_clk) || | ||
604 | IS_ERR(lcdif1_pix_clk) || IS_ERR(lcdif_axi_clk) || IS_ERR(lcdif2_pix_clk) || IS_ERR(csi_mclk)) { | ||
597 | dev_err(gpc_dev, "failed to get clk!\n"); | 605 | dev_err(gpc_dev, "failed to get clk!\n"); |
598 | return -ENOENT; | 606 | return -ENOENT; |
599 | } | 607 | } |