aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFancy Fang <chen.fang@freescale.com>2014-05-08 05:20:43 -0400
committerFancy Fang <chen.fang@freescale.com>2014-06-26 21:56:30 -0400
commit5703deee410a2183b9c803902e78d579b5d611fa (patch)
treec212c69eeea2ccbf8d997443ced9ff88021bb517
parent28e18731417fd62e44d2f756c9fc9a5cd3e92a15 (diff)
ENGR00320185-2 IMX6SX/DISPMIX: add dispmix on/off support for 6SX platform
Modify the dispmix on/off interfaces to add specific support for 6sx platform. Signed-off-by: Fancy Fang <chen.fang@freescale.com> (cherry picked from commit 31aab0b205ea9438de96f04ac0201c6fec3a669c)
-rw-r--r--arch/arm/mach-imx/gpc.c50
1 files changed, 34 insertions, 16 deletions
diff --git a/arch/arm/mach-imx/gpc.c b/arch/arm/mach-imx/gpc.c
index 00f07f1c1dd1..9a0d6b4e87ce 100644
--- a/arch/arm/mach-imx/gpc.c
+++ b/arch/arm/mach-imx/gpc.c
@@ -81,25 +81,43 @@ static int pu_dummy_enable;
81 81
82static void imx_disp_clk(bool enable) 82static void imx_disp_clk(bool enable)
83{ 83{
84 if (enable) { 84 if (cpu_is_imx6sl()) {
85 clk_prepare_enable(lcd_axi_clk); 85 if (enable) {
86 clk_prepare_enable(lcd_pix_clk); 86 clk_prepare_enable(lcd_axi_clk);
87 clk_prepare_enable(epdc_axi_clk); 87 clk_prepare_enable(lcd_pix_clk);
88 clk_prepare_enable(epdc_pix_clk); 88 clk_prepare_enable(epdc_axi_clk);
89 clk_prepare_enable(pxp_axi_clk); 89 clk_prepare_enable(epdc_pix_clk);
90 } else { 90 clk_prepare_enable(pxp_axi_clk);
91 clk_disable_unprepare(lcd_axi_clk); 91 } else {
92 clk_disable_unprepare(lcd_pix_clk); 92 clk_disable_unprepare(lcd_axi_clk);
93 clk_disable_unprepare(epdc_axi_clk); 93 clk_disable_unprepare(lcd_pix_clk);
94 clk_disable_unprepare(epdc_pix_clk); 94 clk_disable_unprepare(epdc_axi_clk);
95 clk_disable_unprepare(pxp_axi_clk); 95 clk_disable_unprepare(epdc_pix_clk);
96 clk_disable_unprepare(pxp_axi_clk);
97 }
98 } else if (cpu_is_imx6sx()) {
99 if (enable) {
100 clk_prepare_enable(lcdif_axi_clk);
101 clk_prepare_enable(lcdif1_pix_clk);
102 clk_prepare_enable(lcdif2_pix_clk);
103 clk_prepare_enable(pxp_axi_clk);
104 clk_prepare_enable(csi_mclk);
105 clk_prepare_enable(disp_axi_clk);
106 } else {
107 clk_disable_unprepare(lcdif_axi_clk);
108 clk_disable_unprepare(lcdif1_pix_clk);
109 clk_disable_unprepare(lcdif2_pix_clk);
110 clk_disable_unprepare(pxp_axi_clk);
111 clk_disable_unprepare(csi_mclk);
112 clk_disable_unprepare(disp_axi_clk);
113 }
96 } 114 }
97} 115}
98 116
99static void imx_gpc_dispmix_on(void) 117static void imx_gpc_dispmix_on(void)
100{ 118{
101 if (cpu_is_imx6sl() && 119 if ((cpu_is_imx6sl() &&
102 imx_get_soc_revision() >= IMX_CHIP_REVISION_1_2) { 120 imx_get_soc_revision() >= IMX_CHIP_REVISION_1_2) || cpu_is_imx6sx()) {
103 imx_disp_clk(true); 121 imx_disp_clk(true);
104 122
105 writel_relaxed(0x0, gpc_base + GPC_PGC_DISP_PGCR_OFFSET); 123 writel_relaxed(0x0, gpc_base + GPC_PGC_DISP_PGCR_OFFSET);
@@ -114,8 +132,8 @@ static void imx_gpc_dispmix_on(void)
114 132
115static void imx_gpc_dispmix_off(void) 133static void imx_gpc_dispmix_off(void)
116{ 134{
117 if (cpu_is_imx6sl() && 135 if ((cpu_is_imx6sl() &&
118 imx_get_soc_revision() >= IMX_CHIP_REVISION_1_2) { 136 imx_get_soc_revision() >= IMX_CHIP_REVISION_1_2) || cpu_is_imx6sx()) {
119 imx_disp_clk(true); 137 imx_disp_clk(true);
120 138
121 writel_relaxed(0xFFFFFFFF, 139 writel_relaxed(0xFFFFFFFF,