diff options
-rw-r--r-- | arch/arm/mach-omap2/id.c | 28 | ||||
-rw-r--r-- | arch/arm/plat-omap/include/plat/cpu.h | 15 |
2 files changed, 36 insertions, 7 deletions
diff --git a/arch/arm/mach-omap2/id.c b/arch/arm/mach-omap2/id.c index fd1904b013fa..e8256a2ed8e7 100644 --- a/arch/arm/mach-omap2/id.c +++ b/arch/arm/mach-omap2/id.c | |||
@@ -269,11 +269,27 @@ static void __init omap3_check_revision(void) | |||
269 | omap_chip.oc |= CHIP_IS_OMAP3430ES3_1; | 269 | omap_chip.oc |= CHIP_IS_OMAP3430ES3_1; |
270 | break; | 270 | break; |
271 | case 0xb891: | 271 | case 0xb891: |
272 | /* FALLTHROUGH */ | 272 | /* Handle 36xx devices */ |
273 | omap_chip.oc |= CHIP_IS_OMAP3630ES1; | ||
274 | |||
275 | switch(rev) { | ||
276 | case 0: /* Take care of early samples */ | ||
277 | omap_revision = OMAP3630_REV_ES1_0; | ||
278 | break; | ||
279 | case 1: | ||
280 | omap_revision = OMAP3630_REV_ES1_1; | ||
281 | omap_chip.oc |= CHIP_IS_OMAP3630ES1_1; | ||
282 | break; | ||
283 | case 2: | ||
284 | default: | ||
285 | omap_revision = OMAP3630_REV_ES1_2; | ||
286 | omap_chip.oc |= CHIP_IS_OMAP3630ES1_2; | ||
287 | break; | ||
288 | } | ||
273 | default: | 289 | default: |
274 | /* Unknown default to latest silicon rev as default*/ | 290 | /* Unknown default to latest silicon rev as default*/ |
275 | omap_revision = OMAP3630_REV_ES1_0; | 291 | omap_revision = OMAP3630_REV_ES1_2; |
276 | omap_chip.oc |= CHIP_IS_OMAP3630ES1; | 292 | omap_chip.oc |= CHIP_IS_OMAP3630ES1_2; |
277 | } | 293 | } |
278 | } | 294 | } |
279 | 295 | ||
@@ -349,6 +365,12 @@ static void __init omap3_cpuinfo(void) | |||
349 | case OMAP_REVBITS_00: | 365 | case OMAP_REVBITS_00: |
350 | strcpy(cpu_rev, "1.0"); | 366 | strcpy(cpu_rev, "1.0"); |
351 | break; | 367 | break; |
368 | case OMAP_REVBITS_01: | ||
369 | strcpy(cpu_rev, "1.1"); | ||
370 | break; | ||
371 | case OMAP_REVBITS_02: | ||
372 | strcpy(cpu_rev, "1.2"); | ||
373 | break; | ||
352 | case OMAP_REVBITS_10: | 374 | case OMAP_REVBITS_10: |
353 | strcpy(cpu_rev, "2.0"); | 375 | strcpy(cpu_rev, "2.0"); |
354 | break; | 376 | break; |
diff --git a/arch/arm/plat-omap/include/plat/cpu.h b/arch/arm/plat-omap/include/plat/cpu.h index aa2f4f079f57..2e2ae530fced 100644 --- a/arch/arm/plat-omap/include/plat/cpu.h +++ b/arch/arm/plat-omap/include/plat/cpu.h | |||
@@ -66,6 +66,8 @@ unsigned int omap_rev(void); | |||
66 | * family. This difference can be handled separately. | 66 | * family. This difference can be handled separately. |
67 | */ | 67 | */ |
68 | #define OMAP_REVBITS_00 0x00 | 68 | #define OMAP_REVBITS_00 0x00 |
69 | #define OMAP_REVBITS_01 0x01 | ||
70 | #define OMAP_REVBITS_02 0x02 | ||
69 | #define OMAP_REVBITS_10 0x10 | 71 | #define OMAP_REVBITS_10 0x10 |
70 | #define OMAP_REVBITS_20 0x20 | 72 | #define OMAP_REVBITS_20 0x20 |
71 | #define OMAP_REVBITS_30 0x30 | 73 | #define OMAP_REVBITS_30 0x30 |
@@ -376,6 +378,8 @@ IS_OMAP_TYPE(3517, 0x3517) | |||
376 | #define OMAP3430_REV_ES3_1_2 0x34305034 | 378 | #define OMAP3430_REV_ES3_1_2 0x34305034 |
377 | 379 | ||
378 | #define OMAP3630_REV_ES1_0 0x36300034 | 380 | #define OMAP3630_REV_ES1_0 0x36300034 |
381 | #define OMAP3630_REV_ES1_1 0x36300134 | ||
382 | #define OMAP3630_REV_ES1_2 0x36300234 | ||
379 | 383 | ||
380 | #define OMAP35XX_CLASS 0x35000034 | 384 | #define OMAP35XX_CLASS 0x35000034 |
381 | #define OMAP3503_REV(v) (OMAP35XX_CLASS | (0x3503 << 16) | (v << 8)) | 385 | #define OMAP3503_REV(v) (OMAP35XX_CLASS | (0x3503 << 16) | (v << 8)) |
@@ -411,6 +415,8 @@ IS_OMAP_TYPE(3517, 0x3517) | |||
411 | #define CHIP_IS_OMAP3430ES3_1 (1 << 6) | 415 | #define CHIP_IS_OMAP3430ES3_1 (1 << 6) |
412 | #define CHIP_IS_OMAP3630ES1 (1 << 7) | 416 | #define CHIP_IS_OMAP3630ES1 (1 << 7) |
413 | #define CHIP_IS_OMAP4430ES1 (1 << 8) | 417 | #define CHIP_IS_OMAP4430ES1 (1 << 8) |
418 | #define CHIP_IS_OMAP3630ES1_1 (1 << 9) | ||
419 | #define CHIP_IS_OMAP3630ES1_2 (1 << 10) | ||
414 | 420 | ||
415 | #define CHIP_IS_OMAP24XX (CHIP_IS_OMAP2420 | CHIP_IS_OMAP2430) | 421 | #define CHIP_IS_OMAP24XX (CHIP_IS_OMAP2420 | CHIP_IS_OMAP2430) |
416 | 422 | ||
@@ -424,11 +430,12 @@ IS_OMAP_TYPE(3517, 0x3517) | |||
424 | */ | 430 | */ |
425 | #define CHIP_GE_OMAP3430ES2 (CHIP_IS_OMAP3430ES2 | \ | 431 | #define CHIP_GE_OMAP3430ES2 (CHIP_IS_OMAP3430ES2 | \ |
426 | CHIP_IS_OMAP3430ES3_0 | \ | 432 | CHIP_IS_OMAP3430ES3_0 | \ |
427 | CHIP_IS_OMAP3430ES3_1 | \ | 433 | CHIP_GE_OMAP3430ES3_1) |
428 | CHIP_IS_OMAP3630ES1) | ||
429 | #define CHIP_GE_OMAP3430ES3_1 (CHIP_IS_OMAP3430ES3_1 | \ | 434 | #define CHIP_GE_OMAP3430ES3_1 (CHIP_IS_OMAP3430ES3_1 | \ |
430 | CHIP_IS_OMAP3630ES1) | 435 | CHIP_IS_OMAP3630ES1 | \ |
431 | 436 | CHIP_GE_OMAP3630ES1_1) | |
437 | #define CHIP_GE_OMAP3630ES1_1 (CHIP_IS_OMAP3630ES1_1 | \ | ||
438 | CHIP_IS_OMAP3630ES1_2) | ||
432 | 439 | ||
433 | int omap_chip_is(struct omap_chip_id oci); | 440 | int omap_chip_is(struct omap_chip_id oci); |
434 | void omap2_check_revision(void); | 441 | void omap2_check_revision(void); |