[RFC PATCH 09/10] mx5: determine cpu type at runtime
Rob Herring
r.herring at freescale.com
Fri Apr 16 15:35:23 EDT 2010
Signed-off-by: Rob Herring <r.herring at freescale.com>
---
arch/arm/mach-mx5/cpu.c | 21 +++++++++++++++++++++
arch/arm/mach-mx5/mm.c | 2 +-
arch/arm/plat-mxc/include/mach/common.h | 1 +
3 files changed, 23 insertions(+), 1 deletions(-)
diff --git a/arch/arm/mach-mx5/cpu.c b/arch/arm/mach-mx5/cpu.c
index e5e0e30..f197089 100644
--- a/arch/arm/mach-mx5/cpu.c
+++ b/arch/arm/mach-mx5/cpu.c
@@ -16,6 +16,7 @@
#include <linux/init.h>
#include <linux/module.h>
#include <linux/io.h>
+#include <mach/common.h>
#include <mach/hardware.h>
static int cpu_silicon_rev = -1;
@@ -70,6 +71,26 @@ int mx51_revision(void)
}
EXPORT_SYMBOL(mx51_revision);
+int mx53_revision(void)
+{
+ if (!cpu_is_mx53())
+ return -EINVAL;
+
+ if (cpu_silicon_rev == -1)
+ query_silicon_parameter();
+
+ return cpu_silicon_rev;
+}
+EXPORT_SYMBOL(mx53_revision);
+
+void mx5_set_cpu_type(void)
+{
+ if (PHYS_OFFSET < MX51_PHYS_OFFSET)
+ mxc_set_cpu_type(MXC_CPU_MX53);
+ else
+ mxc_set_cpu_type(MXC_CPU_MX51);
+}
+
static int __init post_cpu_init(void)
{
unsigned int reg;
diff --git a/arch/arm/mach-mx5/mm.c b/arch/arm/mach-mx5/mm.c
index 1b0cf12..53b68c7 100644
--- a/arch/arm/mach-mx5/mm.c
+++ b/arch/arm/mach-mx5/mm.c
@@ -42,7 +42,7 @@ void __init mx5_map_io(void)
{
void __iomem *base;
- mxc_set_cpu_type(MXC_CPU_MX51);
+ mx5_set_cpu_type();
if (cpu_is_mx53())
mxc_io_desc[0].pfn -= __phys_to_pfn(0x20000000);
diff --git a/arch/arm/plat-mxc/include/mach/common.h b/arch/arm/plat-mxc/include/mach/common.h
index 478cf7b..b933847 100644
--- a/arch/arm/plat-mxc/include/mach/common.h
+++ b/arch/arm/plat-mxc/include/mach/common.h
@@ -48,6 +48,7 @@ extern int mxc91231_clocks_init(unsigned long fref);
extern int mxc_register_gpios(void);
extern int mxc_register_device(struct platform_device *pdev, void *data);
extern void mxc_set_cpu_type(unsigned int type);
+extern void mx5_set_cpu_type(void);
extern void mxc_arch_reset_init(void __iomem *);
extern void mxc91231_power_off(void);
extern void mxc91231_arch_reset(int, const char *);
--
1.6.0.4
More information about the linux-arm-kernel
mailing list