From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?utf-8?Q?Beno=C3=AEt_Th=C3=A9baudeau?= Date: Thu, 27 Sep 2012 22:23:08 +0200 (CEST) Subject: [U-Boot] [PATCH v2 09/14] mx5 clocks: Fix get_ipg_per_clk() In-Reply-To: <1065839952.5372238.1348777198067.JavaMail.root@advansee.com> Message-ID: <433970799.5372457.1348777388137.JavaMail.root@advansee.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de This fixes the "IPG PERCLK" frequency printed by the clocks command. The issue was that get_ipg_per_clk() used periph_clk instead of lp_apm in the case CCM.CBCMR.perclk_lp_apm_sel is set. It also fixes I?C support. Signed-off-by: Beno?t Th?baudeau Cc: Stefano Babic --- This patch supersedes http://patchwork.ozlabs.org/patch/177407/ . Changes for v2: - Consequences from the previous cleanup patches. - Improve detailed description. .../arch/arm/cpu/armv7/mx5/clock.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git u-boot-imx-e1eb75b.orig/arch/arm/cpu/armv7/mx5/clock.c u-boot-imx-e1eb75b/arch/arm/cpu/armv7/mx5/clock.c index b155214..c7a3c36 100644 --- u-boot-imx-e1eb75b.orig/arch/arm/cpu/armv7/mx5/clock.c +++ u-boot-imx-e1eb75b/arch/arm/cpu/armv7/mx5/clock.c @@ -310,16 +310,20 @@ static u32 get_ipg_clk(void) */ static u32 get_ipg_per_clk(void) { - u32 pred1, pred2, podf; + u32 freq, pred1, pred2, podf; if (readl(&mxc_ccm->cbcmr) & MXC_CCM_CBCMR_PERCLK_IPG_CLK_SEL) return get_ipg_clk(); - /* Fixme: not handle what about lpm*/ + + if (readl(&mxc_ccm->cbcmr) & MXC_CCM_CBCMR_PERCLK_LP_APM_CLK_SEL) + freq = get_lp_apm(); + else + freq = get_periph_clk(); podf = readl(&mxc_ccm->cbcdr); pred1 = MXC_CCM_CBCDR_PERCLK_PRED1_RD(podf); pred2 = MXC_CCM_CBCDR_PERCLK_PRED2_RD(podf); podf = MXC_CCM_CBCDR_PERCLK_PODF_RD(podf); - return get_periph_clk() / ((pred1 + 1) * (pred2 + 1) * (podf + 1)); + return freq / ((pred1 + 1) * (pred2 + 1) * (podf + 1)); } /*