summaryrefslogtreecommitdiff
path: root/arch/arm/mach-omap2/id.c
diff options
context:
space:
mode:
authorSanjeev Premi <premi@ti.com>2009-11-22 21:10:58 +0300
committerTony Lindgren <tony@atomide.com>2009-11-22 21:24:32 +0300
commit4cac60180649b83e094d4ea5c440229814488431 (patch)
treea5adbdcb0cd085d497727ba152407745ed06a607 /arch/arm/mach-omap2/id.c
parentf18af0a847f9e1a843bcb8ba69697ccbba2d03e9 (diff)
downloadlinux-4cac60180649b83e094d4ea5c440229814488431.tar.xz
omap3: AM35xx: Runtime detection of the device
Add support to detect AM3505/AM3517 devices at runtime. Also updates the CPU names printed during boot. Signed-off-by: Sanjeev Premi <premi@ti.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
Diffstat (limited to 'arch/arm/mach-omap2/id.c')
-rw-r--r--arch/arm/mach-omap2/id.c36
1 files changed, 30 insertions, 6 deletions
diff --git a/arch/arm/mach-omap2/id.c b/arch/arm/mach-omap2/id.c
index 189cf7a6e61b..f8252c64c423 100644
--- a/arch/arm/mach-omap2/id.c
+++ b/arch/arm/mach-omap2/id.c
@@ -242,6 +242,14 @@ void __init omap3_check_revision(void)
omap_revision = OMAP3630_REV_ES1_0;
}
break;
+ case 0xb868:
+ /* Handle OMAP35xx/AM35xx devices
+ *
+ * Set the device to be OMAP3505 here. Actual device
+ * is identified later based on the features.
+ */
+ omap_revision = OMAP3505_REV(rev);
+ break;
default:
/* Unknown default to latest silicon rev as default*/
omap_revision = OMAP3630_REV_ES1_0;
@@ -267,20 +275,36 @@ void __init omap3_cpuinfo(void)
* and CPU class bits.
*/
if (cpu_is_omap3630())
- strcpy(cpu_name, "3630");
+ strcpy(cpu_name, "OMAP3630");
+ else if (cpu_is_omap3505()) {
+ /*
+ * AM35xx devices
+ */
+ if (omap3_has_sgx()) {
+ omap_revision = OMAP3517_REV(rev);
+ strcpy(cpu_name, "AM3517");
+ }
+ else {
+ /* Already set in omap3_check_revision() */
+ strcpy(cpu_name, "AM3505");
+ }
+ }
+ /*
+ * OMAP3430, OMAP3525, OMAP3515, OMAP3503 devices
+ */
else if (omap3_has_iva() && omap3_has_sgx())
- strcpy(cpu_name, "3430/3530");
+ strcpy(cpu_name, "OMAP3430/3530");
else if (omap3_has_sgx()) {
omap_revision = OMAP3525_REV(rev);
- strcpy(cpu_name, "3525");
+ strcpy(cpu_name, "OMAP3525");
}
else if (omap3_has_iva()) {
omap_revision = OMAP3515_REV(rev);
- strcpy(cpu_name, "3515");
+ strcpy(cpu_name, "OMAP3515");
}
else {
omap_revision = OMAP3503_REV(rev);
- strcpy(cpu_name, "3503");
+ strcpy(cpu_name, "OMAP3503");
}
switch (rev) {
@@ -307,7 +331,7 @@ void __init omap3_cpuinfo(void)
/*
* Print verbose information
*/
- pr_info("OMAP%s ES%s\n", cpu_name, cpu_rev);
+ pr_info("%s ES%s\n", cpu_name, cpu_rev);
OMAP3_SHOW_FEATURE(l2cache);
OMAP3_SHOW_FEATURE(iva);