aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/arm/mach-omap2/id.c10
-rw-r--r--arch/arm/plat-omap/include/plat/cpu.h8
2 files changed, 17 insertions, 1 deletions
diff --git a/arch/arm/mach-omap2/id.c b/arch/arm/mach-omap2/id.c
index 5bb4ee18564a..439afe7acdca 100644
--- a/arch/arm/mach-omap2/id.c
+++ b/arch/arm/mach-omap2/id.c
@@ -371,7 +371,7 @@ static void __init omap4_check_revision(void)
371 * Few initial 4430 ES2.0 samples IDCODE is same as ES1.0 371 * Few initial 4430 ES2.0 samples IDCODE is same as ES1.0
372 * Use ARM register to detect the correct ES version 372 * Use ARM register to detect the correct ES version
373 */ 373 */
374 if (!rev && (hawkeye != 0xb94e)) { 374 if (!rev && (hawkeye != 0xb94e) && (hawkeye != 0xb975)) {
375 idcode = read_cpuid(CPUID_ID); 375 idcode = read_cpuid(CPUID_ID);
376 rev = (idcode & 0xf) - 1; 376 rev = (idcode & 0xf) - 1;
377 } 377 }
@@ -408,6 +408,14 @@ static void __init omap4_check_revision(void)
408 break; 408 break;
409 } 409 }
410 break; 410 break;
411 case 0xb975:
412 switch (rev) {
413 case 0:
414 default:
415 omap_revision = OMAP4470_REV_ES1_0;
416 break;
417 }
418 break;
411 default: 419 default:
412 /* Unknown default to latest silicon rev as default */ 420 /* Unknown default to latest silicon rev as default */
413 omap_revision = OMAP4430_REV_ES2_3; 421 omap_revision = OMAP4430_REV_ES2_3;
diff --git a/arch/arm/plat-omap/include/plat/cpu.h b/arch/arm/plat-omap/include/plat/cpu.h
index e5baa3cde900..34fc9136b1a0 100644
--- a/arch/arm/plat-omap/include/plat/cpu.h
+++ b/arch/arm/plat-omap/include/plat/cpu.h
@@ -69,6 +69,7 @@ unsigned int omap_rev(void);
69 * cpu_is_omap343x(): True for OMAP3430 69 * cpu_is_omap343x(): True for OMAP3430
70 * cpu_is_omap443x(): True for OMAP4430 70 * cpu_is_omap443x(): True for OMAP4430
71 * cpu_is_omap446x(): True for OMAP4460 71 * cpu_is_omap446x(): True for OMAP4460
72 * cpu_is_omap447x(): True for OMAP4470
72 */ 73 */
73#define GET_OMAP_CLASS (omap_rev() & 0xff) 74#define GET_OMAP_CLASS (omap_rev() & 0xff)
74 75
@@ -120,6 +121,7 @@ IS_OMAP_SUBCLASS(343x, 0x343)
120IS_OMAP_SUBCLASS(363x, 0x363) 121IS_OMAP_SUBCLASS(363x, 0x363)
121IS_OMAP_SUBCLASS(443x, 0x443) 122IS_OMAP_SUBCLASS(443x, 0x443)
122IS_OMAP_SUBCLASS(446x, 0x446) 123IS_OMAP_SUBCLASS(446x, 0x446)
124IS_OMAP_SUBCLASS(447x, 0x447)
123 125
124IS_TI_SUBCLASS(816x, 0x816) 126IS_TI_SUBCLASS(816x, 0x816)
125IS_AM_SUBCLASS(335x, 0x335) 127IS_AM_SUBCLASS(335x, 0x335)
@@ -138,6 +140,7 @@ IS_AM_SUBCLASS(335x, 0x335)
138#define cpu_is_omap44xx() 0 140#define cpu_is_omap44xx() 0
139#define cpu_is_omap443x() 0 141#define cpu_is_omap443x() 0
140#define cpu_is_omap446x() 0 142#define cpu_is_omap446x() 0
143#define cpu_is_omap447x() 0
141 144
142#if defined(MULTI_OMAP1) 145#if defined(MULTI_OMAP1)
143# if defined(CONFIG_ARCH_OMAP730) 146# if defined(CONFIG_ARCH_OMAP730)
@@ -368,9 +371,11 @@ IS_OMAP_TYPE(3517, 0x3517)
368# undef cpu_is_omap44xx 371# undef cpu_is_omap44xx
369# undef cpu_is_omap443x 372# undef cpu_is_omap443x
370# undef cpu_is_omap446x 373# undef cpu_is_omap446x
374# undef cpu_is_omap447x
371# define cpu_is_omap44xx() is_omap44xx() 375# define cpu_is_omap44xx() is_omap44xx()
372# define cpu_is_omap443x() is_omap443x() 376# define cpu_is_omap443x() is_omap443x()
373# define cpu_is_omap446x() is_omap446x() 377# define cpu_is_omap446x() is_omap446x()
378# define cpu_is_omap447x() is_omap447x()
374# endif 379# endif
375 380
376/* Macros to detect if we have OMAP1 or OMAP2 */ 381/* Macros to detect if we have OMAP1 or OMAP2 */
@@ -421,6 +426,9 @@ IS_OMAP_TYPE(3517, 0x3517)
421#define OMAP446X_CLASS 0x44600044 426#define OMAP446X_CLASS 0x44600044
422#define OMAP4460_REV_ES1_0 (OMAP446X_CLASS | (0x10 << 8)) 427#define OMAP4460_REV_ES1_0 (OMAP446X_CLASS | (0x10 << 8))
423 428
429#define OMAP447X_CLASS 0x44700044
430#define OMAP4470_REV_ES1_0 (OMAP447X_CLASS | (0x10 << 8))
431
424void omap2_check_revision(void); 432void omap2_check_revision(void);
425 433
426/* 434/*