[PATCH 2/2] ARM pcm043: Use PDR0 to change cpu freq

Teresa Gámez t.gamez at phytec.de
Thu Jul 28 09:14:14 EDT 2011


Instead of changing the MPCTL to set an other cpu frequency,
use the post divider.

This prevents freezing when changing the clock from 399MHz to 532MHz.

Signed-off-by: Teresa Gámez <t.gamez at phytec.de>
---
 arch/arm/boards/pcm043/pcm043.c |    8 ++++----
 1 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/arch/arm/boards/pcm043/pcm043.c b/arch/arm/boards/pcm043/pcm043.c
index 3bd6402..8629ae6 100644
--- a/arch/arm/boards/pcm043/pcm043.c
+++ b/arch/arm/boards/pcm043/pcm043.c
@@ -308,8 +308,8 @@ static int pcm043_core_setup(void)
 
 core_initcall(pcm043_core_setup);
 
-#define MPCTL_PARAM_399     (IMX_PLL_PD(0) | IMX_PLL_MFD(15) | IMX_PLL_MFI(8) | IMX_PLL_MFN(5))
-#define MPCTL_PARAM_532     ((1 << 31) | IMX_PLL_PD(0) | IMX_PLL_MFD(11) | IMX_PLL_MFI(11) | IMX_PLL_MFN(1))
+#define	CCM_PDR0_PARAM_399	((1 << 12) | (1 << 16))
+#define	CCM_PDR0_PARAM_532	(1 << 12)
 
 static int do_cpufreq(struct command *cmdtp, int argc, char *argv[])
 {
@@ -322,10 +322,10 @@ static int do_cpufreq(struct command *cmdtp, int argc, char *argv[])
 
 	switch (freq) {
 	case 399:
-		writel(MPCTL_PARAM_399, IMX_CCM_BASE + CCM_MPCTL);
+		writel(CCM_PDR0_PARAM_399, IMX_CCM_BASE + CCM_PDR0);
 		break;
 	case 532:
-		writel(MPCTL_PARAM_532, IMX_CCM_BASE + CCM_MPCTL);
+		writel(CCM_PDR0_PARAM_532, IMX_CCM_BASE + CCM_PDR0);
 		break;
 	default:
 		return COMMAND_ERROR_USAGE;
-- 
1.7.0.4




More information about the barebox mailing list