diff options
author | Leonid Iziumtsev <x0153368@ti.com> | 2011-12-13 13:46:44 -0500 |
---|---|---|
committer | Tony Lindgren <tony@atomide.com> | 2011-12-13 13:46:44 -0500 |
commit | ec023e46f7e86acb04fef5bdd1e9465f5fc39894 (patch) | |
tree | 86912a28e4c7827c47da40661582d462733e6d14 /arch/arm | |
parent | 55035c1524b5b48ac7d267167c4895f7831897ad (diff) |
ARM: OMAP: ID: Chip detection for OMAP4470
Add support for detection of the next chip in the OMAP4 family: OMAP4470 ES1.0
For more details on OMAP4470, visit:
http://focus.ti.com/general/docs/wtbu/wtbuproductcontent.tsp?templateId=6123&navigationId=12869&contentId=123362
Signed-off-by: Leonid Iziumtsev <x0153368@ti.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
Diffstat (limited to 'arch/arm')
-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 5bb4ee18564..439afe7acdc 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 e5baa3cde90..34fc9136b1a 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 | /* |