summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLiu Ying <Ying.Liu@freescale.com>2012-06-27 16:08:49 +0800
committerLiu Ying <Ying.Liu@freescale.com>2012-06-29 15:40:46 +0800
commitace3723ceff0d546e0176f74ad38d58a6d11b7ee (patch)
treefbaf50ae37a9f95bef4374455f6d7f366f0ca4c0
parent3827c82e439b6a8bbb6569a01327043251875964 (diff)
ENGR00215041-2 MX6 SabreSD:Set clko parent to be clko2
On MX6 SabreSD board, gpio_0 is muxed to clko to be audio mclk and camera mclk. 24MHz osc clk is a stable clock source, which can meet the requirement of audio mclk and camera mclk. This patch sets clko parent clock to be clko2 clock so that camera mclk and audio mclk can source from osc clk. There are 2 benifits after applying this patch: 1) clko's original parent clock(pll4_audio_main_clk) can be gated off to save power or used by another module. 2) ov5640/ov5642 camera most settings can reach claimed 15fps or 30fps with no human eye recognizable video quality downgrade. Signed-off-by: Liu Ying <Ying.Liu@freescale.com>
-rw-r--r--arch/arm/mach-mx6/board-mx6q_sabresd.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/arch/arm/mach-mx6/board-mx6q_sabresd.c b/arch/arm/mach-mx6/board-mx6q_sabresd.c
index ca66d4933b85..9d4d9e689ef3 100644
--- a/arch/arm/mach-mx6/board-mx6q_sabresd.c
+++ b/arch/arm/mach-mx6/board-mx6q_sabresd.c
@@ -1631,7 +1631,7 @@ static void __init mx6_sabresd_board_init(void)
{
int i;
int ret;
- struct clk *clko2;
+ struct clk *clko, *clko2;
struct clk *new_parent;
struct clk *sdio_clk;
int rate;
@@ -1806,6 +1806,11 @@ static void __init mx6_sabresd_board_init(void)
clk_set_rate(clko2, rate);
clk_enable(clko2);
+ /* Camera and audio use osc clock */
+ clko = clk_get(NULL, "clko_clk");
+ if (!IS_ERR(clko))
+ clk_set_parent(clko, clko2);
+
/* Enable Aux_5V */
gpio_request(SABRESD_AUX_5V_EN, "aux_5v_en");
gpio_direction_output(SABRESD_AUX_5V_EN, 1);