Patchwork [U-Boot] mx31: Define default SoC input clock frequencies

login
register
mail settings
Submitter Benoît Thébaudeau
Date Aug. 21, 2012, 9:06 p.m.
Message ID <597890668.2662868.1345583163254.JavaMail.root@advansee.com>
Download mbox | patch
Permalink /patch/179178/
State Accepted
Commit 0dc7b82e4ec7cb95738aebd368d06a5cd8e37595
Delegated to: Stefano Babic
Headers show

Comments

Benoît Thébaudeau - Aug. 21, 2012, 9:06 p.m.
Define default SoC input clock frequencies for i.MX31 in order to get rid of
duplicated definitions.

Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com>
Cc: Stefano Babic <sbabic@denx.de>
Cc: Fabio Estevam <fabio.estevam@freescale.com>
Cc: Wolfgang Denk <wd@denx.de>
Cc: Helmut Raiger <helmut.raiger@hale.at>
---
 .../arch/arm/cpu/arm1136/mx31/generic.c            |    4 ++--
 .../arch/arm/cpu/arm1136/mx31/timer.c              |   16 ++++++++--------
 .../arch/arm/include/asm/arch-mx31/clock.h         |   14 ++++++++++++++
 .../include/configs/imx31_litekit.h                |    1 -
 .../include/configs/imx31_phycore.h                |    1 -
 .../include/configs/mx31ads.h                      |    2 --
 .../include/configs/mx31pdk.h                      |    2 --
 .../include/configs/qong.h                         |    2 --
 .../include/configs/tt01.h                         |    2 --
 9 files changed, 24 insertions(+), 20 deletions(-)
Stefano Babic - Sept. 6, 2012, 12:24 p.m.
On 21/08/2012 23:06, Benoît Thébaudeau wrote:
> Define default SoC input clock frequencies for i.MX31 in order to get rid of
> duplicated definitions.
> 
> Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com>
> Cc: Stefano Babic <sbabic@denx.de>
> Cc: Fabio Estevam <fabio.estevam@freescale.com>
> Cc: Wolfgang Denk <wd@denx.de>
> Cc: Helmut Raiger <helmut.raiger@hale.at>
> ---

Applied to u-boot-imx, thanks.

Best regards,
Stefano Babic

Patch

diff --git u-boot-imx-88e73dd.orig/arch/arm/cpu/arm1136/mx31/generic.c u-boot-imx-88e73dd/arch/arm/cpu/arm1136/mx31/generic.c
index 8873fb7..7b53437 100644
--- u-boot-imx-88e73dd.orig/arch/arm/cpu/arm1136/mx31/generic.c
+++ u-boot-imx-88e73dd/arch/arm/cpu/arm1136/mx31/generic.c
@@ -47,9 +47,9 @@  static u32 mx31_get_mpl_dpdgck_clk(void)
 	u32 infreq;
 
 	if ((readl(CCM_CCMR) & CCMR_PRCS_MASK) == CCMR_FPM)
-		infreq = CONFIG_MX31_CLK32 * 1024;
+		infreq = MXC_CLK32 * 1024;
 	else
-		infreq = CONFIG_MX31_HCLK_FREQ;
+		infreq = MXC_HCLK;
 
 	return mx31_decode_pll(readl(CCM_MPCTL), infreq);
 }
diff --git u-boot-imx-88e73dd.orig/arch/arm/cpu/arm1136/mx31/timer.c u-boot-imx-88e73dd/arch/arm/cpu/arm1136/mx31/timer.c
index 72081a8..36266da 100644
--- u-boot-imx-88e73dd.orig/arch/arm/cpu/arm1136/mx31/timer.c
+++ u-boot-imx-88e73dd/arch/arm/cpu/arm1136/mx31/timer.c
@@ -23,6 +23,7 @@ 
 
 #include <common.h>
 #include <asm/arch/imx-regs.h>
+#include <asm/arch/clock.h>
 #include <div64.h>
 #include <watchdog.h>
 #include <asm/io.h>
@@ -53,28 +54,27 @@  DECLARE_GLOBAL_DATA_PTR;
 static inline unsigned long long tick_to_time(unsigned long long tick)
 {
 	tick *= CONFIG_SYS_HZ;
-	do_div(tick, CONFIG_MX31_CLK32);
+	do_div(tick, MXC_CLK32);
 	return tick;
 }
 
 static inline unsigned long long time_to_tick(unsigned long long time)
 {
-	time *= CONFIG_MX31_CLK32;
+	time *= MXC_CLK32;
 	do_div(time, CONFIG_SYS_HZ);
 	return time;
 }
 
 static inline unsigned long long us_to_tick(unsigned long long us)
 {
-	us = us * CONFIG_MX31_CLK32 + 999999;
+	us = us * MXC_CLK32 + 999999;
 	do_div(us, 1000000);
 	return us;
 }
 #else
 /* ~2% error */
-#define TICK_PER_TIME	((CONFIG_MX31_CLK32 + CONFIG_SYS_HZ / 2) \
-							/ CONFIG_SYS_HZ)
-#define US_PER_TICK	(1000000 / CONFIG_MX31_CLK32)
+#define TICK_PER_TIME	((MXC_CLK32 + CONFIG_SYS_HZ / 2) / CONFIG_SYS_HZ)
+#define US_PER_TICK	(1000000 / MXC_CLK32)
 
 static inline unsigned long long tick_to_time(unsigned long long tick)
 {
@@ -128,7 +128,7 @@  ulong get_timer_masked(void)
 {
 	/*
 	 * get_ticks() returns a long long (64 bit), it wraps in
-	 * 2^64 / CONFIG_MX31_CLK32 = 2^64 / 2^15 = 2^49 ~ 5 * 10^14 (s) ~
+	 * 2^64 / MXC_CLK32 = 2^64 / 2^15 = 2^49 ~ 5 * 10^14 (s) ~
 	 * 5 * 10^9 days... and get_ticks() * CONFIG_SYS_HZ wraps in
 	 * 5 * 10^6 days - long enough.
 	 */
@@ -159,7 +159,7 @@  void __udelay(unsigned long usec)
  */
 ulong get_tbclk(void)
 {
-	return CONFIG_MX31_CLK32;
+	return MXC_CLK32;
 }
 
 void reset_cpu(ulong addr)
diff --git u-boot-imx-88e73dd.orig/arch/arm/include/asm/arch-mx31/clock.h u-boot-imx-88e73dd/arch/arm/include/asm/arch-mx31/clock.h
index 852c19c..9468b45 100644
--- u-boot-imx-88e73dd.orig/arch/arm/include/asm/arch-mx31/clock.h
+++ u-boot-imx-88e73dd/arch/arm/include/asm/arch-mx31/clock.h
@@ -24,6 +24,20 @@ 
 #ifndef __ASM_ARCH_CLOCK_H
 #define __ASM_ARCH_CLOCK_H
 
+#include <common.h>
+
+#ifdef CONFIG_MX31_HCLK_FREQ
+#define MXC_HCLK	CONFIG_MX31_HCLK_FREQ
+#else
+#define MXC_HCLK	26000000
+#endif
+
+#ifdef CONFIG_MX31_CLK32
+#define MXC_CLK32	CONFIG_MX31_CLK32
+#else
+#define MXC_CLK32	32768
+#endif
+
 enum mxc_clock {
 	MXC_ARM_CLK,
 	MXC_IPG_CLK,
diff --git u-boot-imx-88e73dd.orig/include/configs/imx31_litekit.h u-boot-imx-88e73dd/include/configs/imx31_litekit.h
index a340e97..4af6c4b 100644
--- u-boot-imx-88e73dd.orig/include/configs/imx31_litekit.h
+++ u-boot-imx-88e73dd/include/configs/imx31_litekit.h
@@ -33,7 +33,6 @@ 
  /* High Level Configuration Options */
 #define CONFIG_ARM1136		1    /* This is an arm1136 CPU core */
 #define CONFIG_MX31		1    /* in a mx31 */
-#define CONFIG_MX31_HCLK_FREQ	26000000
 #define CONFIG_MX31_CLK32	32000
 
 #define CONFIG_DISPLAY_CPUINFO
diff --git u-boot-imx-88e73dd.orig/include/configs/imx31_phycore.h u-boot-imx-88e73dd/include/configs/imx31_phycore.h
index a412cf6..bf763f6 100644
--- u-boot-imx-88e73dd.orig/include/configs/imx31_phycore.h
+++ u-boot-imx-88e73dd/include/configs/imx31_phycore.h
@@ -33,7 +33,6 @@ 
 /* High Level Configuration Options */
 #define CONFIG_ARM1136			/* This is an arm1136 CPU core */
 #define CONFIG_MX31			/* in a mx31 */
-#define CONFIG_MX31_HCLK_FREQ	26000000
 #define CONFIG_MX31_CLK32	32000
 
 #define CONFIG_DISPLAY_CPUINFO
diff --git u-boot-imx-88e73dd.orig/include/configs/mx31ads.h u-boot-imx-88e73dd/include/configs/mx31ads.h
index cc720e8..205319d 100644
--- u-boot-imx-88e73dd.orig/include/configs/mx31ads.h
+++ u-boot-imx-88e73dd/include/configs/mx31ads.h
@@ -27,8 +27,6 @@ 
  /* High Level Configuration Options */
 #define CONFIG_ARM1136		1		/* This is an arm1136 CPU core */
 #define CONFIG_MX31		1		/* in a mx31 */
-#define CONFIG_MX31_HCLK_FREQ	26000000	/* RedBoot says 26MHz */
-#define CONFIG_MX31_CLK32	32768
 
 #define CONFIG_DISPLAY_CPUINFO
 #define CONFIG_DISPLAY_BOARDINFO
diff --git u-boot-imx-88e73dd.orig/include/configs/mx31pdk.h u-boot-imx-88e73dd/include/configs/mx31pdk.h
index 7634de7..7f5d209 100644
--- u-boot-imx-88e73dd.orig/include/configs/mx31pdk.h
+++ u-boot-imx-88e73dd/include/configs/mx31pdk.h
@@ -35,8 +35,6 @@ 
 /* High Level Configuration Options */
 #define CONFIG_ARM1136			/* This is an arm1136 CPU core */
 #define CONFIG_MX31			/* in a mx31 */
-#define CONFIG_MX31_HCLK_FREQ	26000000
-#define CONFIG_MX31_CLK32	32768
 
 #define CONFIG_DISPLAY_CPUINFO
 #define CONFIG_DISPLAY_BOARDINFO
diff --git u-boot-imx-88e73dd.orig/include/configs/qong.h u-boot-imx-88e73dd/include/configs/qong.h
index e824e17..2ca6b5f 100644
--- u-boot-imx-88e73dd.orig/include/configs/qong.h
+++ u-boot-imx-88e73dd/include/configs/qong.h
@@ -28,8 +28,6 @@ 
 #define CONFIG_ARM1136			/* This is an arm1136 CPU core */
 #define CONFIG_MX31			/* in a mx31 */
 #define CONFIG_QONG
-#define CONFIG_MX31_HCLK_FREQ	26000000	/* 26MHz */
-#define CONFIG_MX31_CLK32	32768
 
 #define CONFIG_DISPLAY_CPUINFO
 #define CONFIG_DISPLAY_BOARDINFO
diff --git u-boot-imx-88e73dd.orig/include/configs/tt01.h u-boot-imx-88e73dd/include/configs/tt01.h
index 2b2e7fd..900366f 100644
--- u-boot-imx-88e73dd.orig/include/configs/tt01.h
+++ u-boot-imx-88e73dd/include/configs/tt01.h
@@ -31,8 +31,6 @@ 
 /* High Level Configuration Options */
 #define CONFIG_ARM1136
 #define CONFIG_MX31
-#define CONFIG_MX31_HCLK_FREQ	26000000
-#define CONFIG_MX31_CLK32	32768
 
 #define CONFIG_DISPLAY_CPUINFO
 #define CONFIG_DISPLAY_BOARDINFO