diff options
Diffstat (limited to 'arch/arm/mach-omap2/id.c')
-rw-r--r-- | arch/arm/mach-omap2/id.c | 32 |
1 files changed, 11 insertions, 21 deletions
diff --git a/arch/arm/mach-omap2/id.c b/arch/arm/mach-omap2/id.c index cf2362ccb234..45cc7ed4dd58 100644 --- a/arch/arm/mach-omap2/id.c +++ b/arch/arm/mach-omap2/id.c | |||
@@ -28,6 +28,9 @@ | |||
28 | #include "soc.h" | 28 | #include "soc.h" |
29 | #include "control.h" | 29 | #include "control.h" |
30 | 30 | ||
31 | #define OMAP4_SILICON_TYPE_STANDARD 0x01 | ||
32 | #define OMAP4_SILICON_TYPE_PERFORMANCE 0x02 | ||
33 | |||
31 | static unsigned int omap_revision; | 34 | static unsigned int omap_revision; |
32 | static const char *cpu_rev; | 35 | static const char *cpu_rev; |
33 | u32 omap_features; | 36 | u32 omap_features; |
@@ -273,25 +276,11 @@ void __init omap4xxx_check_features(void) | |||
273 | { | 276 | { |
274 | u32 si_type; | 277 | u32 si_type; |
275 | 278 | ||
276 | if (cpu_is_omap443x()) | 279 | si_type = |
277 | omap_features |= OMAP4_HAS_MPU_1GHZ; | 280 | (read_tap_reg(OMAP4_CTRL_MODULE_CORE_STD_FUSE_PROD_ID_1) >> 16) & 0x03; |
278 | |||
279 | 281 | ||
280 | if (cpu_is_omap446x()) { | 282 | if (si_type == OMAP4_SILICON_TYPE_PERFORMANCE) |
281 | si_type = | 283 | omap_features = OMAP4_HAS_PERF_SILICON; |
282 | read_tap_reg(OMAP4_CTRL_MODULE_CORE_STD_FUSE_PROD_ID_1); | ||
283 | switch ((si_type & (3 << 16)) >> 16) { | ||
284 | case 2: | ||
285 | /* High performance device */ | ||
286 | omap_features |= OMAP4_HAS_MPU_1_5GHZ; | ||
287 | break; | ||
288 | case 1: | ||
289 | default: | ||
290 | /* Standard device */ | ||
291 | omap_features |= OMAP4_HAS_MPU_1_2GHZ; | ||
292 | break; | ||
293 | } | ||
294 | } | ||
295 | } | 284 | } |
296 | 285 | ||
297 | void __init ti81xx_check_features(void) | 286 | void __init ti81xx_check_features(void) |
@@ -559,11 +548,12 @@ void __init omap5xxx_check_revision(void) | |||
559 | * detect the exact revision later on in omap2_detect_revision() once map_io | 548 | * detect the exact revision later on in omap2_detect_revision() once map_io |
560 | * is done. | 549 | * is done. |
561 | */ | 550 | */ |
562 | void __init omap2_set_globals_tap(struct omap_globals *omap2_globals) | 551 | void __init omap2_set_globals_tap(u32 class, void __iomem *tap) |
563 | { | 552 | { |
564 | omap_revision = omap2_globals->class; | 553 | omap_revision = class; |
565 | tap_base = omap2_globals->tap; | 554 | tap_base = tap; |
566 | 555 | ||
556 | /* XXX What is this intended to do? */ | ||
567 | if (cpu_is_omap34xx()) | 557 | if (cpu_is_omap34xx()) |
568 | tap_prod_id = 0x0210; | 558 | tap_prod_id = 0x0210; |
569 | else | 559 | else |