diff options
author | Fancy Fang <chen.fang@freescale.com> | 2014-05-08 05:20:43 -0400 |
---|---|---|
committer | Fancy Fang <chen.fang@freescale.com> | 2014-06-26 21:56:30 -0400 |
commit | 5703deee410a2183b9c803902e78d579b5d611fa (patch) | |
tree | c212c69eeea2ccbf8d997443ced9ff88021bb517 | |
parent | 28e18731417fd62e44d2f756c9fc9a5cd3e92a15 (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.c | 50 |
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 | ||
82 | static void imx_disp_clk(bool enable) | 82 | static 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 | ||
99 | static void imx_gpc_dispmix_on(void) | 117 | static 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 | ||
115 | static void imx_gpc_dispmix_off(void) | 133 | static 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, |