diff options
| -rw-r--r-- | arch/arm/mach-omap2/id.c | 10 | ||||
| -rw-r--r-- | arch/arm/plat-omap/include/plat/cpu.h | 8 |
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) | |||
| 120 | IS_OMAP_SUBCLASS(363x, 0x363) | 121 | IS_OMAP_SUBCLASS(363x, 0x363) |
| 121 | IS_OMAP_SUBCLASS(443x, 0x443) | 122 | IS_OMAP_SUBCLASS(443x, 0x443) |
| 122 | IS_OMAP_SUBCLASS(446x, 0x446) | 123 | IS_OMAP_SUBCLASS(446x, 0x446) |
| 124 | IS_OMAP_SUBCLASS(447x, 0x447) | ||
| 123 | 125 | ||
| 124 | IS_TI_SUBCLASS(816x, 0x816) | 126 | IS_TI_SUBCLASS(816x, 0x816) |
| 125 | IS_AM_SUBCLASS(335x, 0x335) | 127 | IS_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 | |||
| 424 | void omap2_check_revision(void); | 432 | void omap2_check_revision(void); |
| 425 | 433 | ||
| 426 | /* | 434 | /* |
