id.c (e8cdfb0509f48d44d95d68d4f42d8d71a9ba4acd) | id.c (01001712c96f82e6317b1e09729d8fc4bcc66957) |
---|---|
1/* 2 * linux/arch/arm/mach-omap2/id.c 3 * 4 * OMAP2 CPU identification code 5 * 6 * Copyright (C) 2005 Nokia Corporation 7 * Written by Tony Lindgren <tony@atomide.com> 8 * --- 177 unchanged lines hidden (view full) --- 186 OMAP3_CHECK_FEATURE(status, SGX); 187 OMAP3_CHECK_FEATURE(status, NEON); 188 OMAP3_CHECK_FEATURE(status, ISP); 189 if (cpu_is_omap3630()) 190 omap3_features |= OMAP3_HAS_192MHZ_CLK; 191 if (!cpu_is_omap3505() && !cpu_is_omap3517()) 192 omap3_features |= OMAP3_HAS_IO_WAKEUP; 193 | 1/* 2 * linux/arch/arm/mach-omap2/id.c 3 * 4 * OMAP2 CPU identification code 5 * 6 * Copyright (C) 2005 Nokia Corporation 7 * Written by Tony Lindgren <tony@atomide.com> 8 * --- 177 unchanged lines hidden (view full) --- 186 OMAP3_CHECK_FEATURE(status, SGX); 187 OMAP3_CHECK_FEATURE(status, NEON); 188 OMAP3_CHECK_FEATURE(status, ISP); 189 if (cpu_is_omap3630()) 190 omap3_features |= OMAP3_HAS_192MHZ_CLK; 191 if (!cpu_is_omap3505() && !cpu_is_omap3517()) 192 omap3_features |= OMAP3_HAS_IO_WAKEUP; 193 |
194 omap3_features |= OMAP3_HAS_SDRC; 195 |
|
194 /* 195 * TODO: Get additional info (where applicable) 196 * e.g. Size of L2 cache. 197 */ 198} 199 | 196 /* 197 * TODO: Get additional info (where applicable) 198 * e.g. Size of L2 cache. 199 */ 200} 201 |
202static void __init ti816x_check_features(void) 203{ 204 omap3_features = OMAP3_HAS_NEON; 205} 206 |
|
200static void __init omap3_check_revision(void) 201{ 202 u32 cpuid, idcode; 203 u16 hawkeye; 204 u8 rev; 205 206 omap_chip.oc = CHIP_IS_OMAP3430; 207 --- 74 unchanged lines hidden (view full) --- 282 omap_chip.oc |= CHIP_IS_OMAP3630ES1_1; 283 break; 284 case 2: 285 default: 286 omap_revision = OMAP3630_REV_ES1_2; 287 omap_chip.oc |= CHIP_IS_OMAP3630ES1_2; 288 } 289 break; | 207static void __init omap3_check_revision(void) 208{ 209 u32 cpuid, idcode; 210 u16 hawkeye; 211 u8 rev; 212 213 omap_chip.oc = CHIP_IS_OMAP3430; 214 --- 74 unchanged lines hidden (view full) --- 289 omap_chip.oc |= CHIP_IS_OMAP3630ES1_1; 290 break; 291 case 2: 292 default: 293 omap_revision = OMAP3630_REV_ES1_2; 294 omap_chip.oc |= CHIP_IS_OMAP3630ES1_2; 295 } 296 break; |
297 case 0xb81e: 298 omap_chip.oc = CHIP_IS_TI816X; 299 300 switch (rev) { 301 case 0: 302 omap_revision = TI8168_REV_ES1_0; 303 break; 304 case 1: 305 omap_revision = TI8168_REV_ES1_1; 306 break; 307 default: 308 omap_revision = TI8168_REV_ES1_1; 309 } 310 break; |
|
290 default: 291 /* Unknown default to latest silicon rev as default*/ 292 omap_revision = OMAP3630_REV_ES1_2; 293 omap_chip.oc |= CHIP_IS_OMAP3630ES1_2; 294 } 295} 296 297static void __init omap4_check_revision(void) --- 69 unchanged lines hidden (view full) --- 367 */ 368 if (omap3_has_sgx()) { 369 omap_revision = OMAP3517_REV(rev); 370 strcpy(cpu_name, "AM3517"); 371 } else { 372 /* Already set in omap3_check_revision() */ 373 strcpy(cpu_name, "AM3505"); 374 } | 311 default: 312 /* Unknown default to latest silicon rev as default*/ 313 omap_revision = OMAP3630_REV_ES1_2; 314 omap_chip.oc |= CHIP_IS_OMAP3630ES1_2; 315 } 316} 317 318static void __init omap4_check_revision(void) --- 69 unchanged lines hidden (view full) --- 388 */ 389 if (omap3_has_sgx()) { 390 omap_revision = OMAP3517_REV(rev); 391 strcpy(cpu_name, "AM3517"); 392 } else { 393 /* Already set in omap3_check_revision() */ 394 strcpy(cpu_name, "AM3505"); 395 } |
396 } else if (cpu_is_ti816x()) { 397 strcpy(cpu_name, "TI816X"); |
|
375 } else if (omap3_has_iva() && omap3_has_sgx()) { 376 /* OMAP3430, OMAP3525, OMAP3515, OMAP3503 devices */ 377 strcpy(cpu_name, "OMAP3430/3530"); 378 } else if (omap3_has_iva()) { 379 omap_revision = OMAP3525_REV(rev); 380 strcpy(cpu_name, "OMAP3525"); 381 } else if (omap3_has_sgx()) { 382 omap_revision = OMAP3515_REV(rev); 383 strcpy(cpu_name, "OMAP3515"); 384 } else { 385 omap_revision = OMAP3503_REV(rev); 386 strcpy(cpu_name, "OMAP3503"); 387 } 388 | 398 } else if (omap3_has_iva() && omap3_has_sgx()) { 399 /* OMAP3430, OMAP3525, OMAP3515, OMAP3503 devices */ 400 strcpy(cpu_name, "OMAP3430/3530"); 401 } else if (omap3_has_iva()) { 402 omap_revision = OMAP3525_REV(rev); 403 strcpy(cpu_name, "OMAP3525"); 404 } else if (omap3_has_sgx()) { 405 omap_revision = OMAP3515_REV(rev); 406 strcpy(cpu_name, "OMAP3515"); 407 } else { 408 omap_revision = OMAP3503_REV(rev); 409 strcpy(cpu_name, "OMAP3503"); 410 } 411 |
389 if (cpu_is_omap3630()) { | 412 if (cpu_is_omap3630() || cpu_is_ti816x()) { |
390 switch (rev) { 391 case OMAP_REVBITS_00: 392 strcpy(cpu_rev, "1.0"); 393 break; 394 case OMAP_REVBITS_01: 395 strcpy(cpu_rev, "1.1"); 396 break; 397 case OMAP_REVBITS_02: --- 59 unchanged lines hidden (view full) --- 457 /* 458 * At this point we have an idea about the processor revision set 459 * earlier with omap2_set_globals_tap(). 460 */ 461 if (cpu_is_omap24xx()) { 462 omap24xx_check_revision(); 463 } else if (cpu_is_omap34xx()) { 464 omap3_check_revision(); | 413 switch (rev) { 414 case OMAP_REVBITS_00: 415 strcpy(cpu_rev, "1.0"); 416 break; 417 case OMAP_REVBITS_01: 418 strcpy(cpu_rev, "1.1"); 419 break; 420 case OMAP_REVBITS_02: --- 59 unchanged lines hidden (view full) --- 480 /* 481 * At this point we have an idea about the processor revision set 482 * earlier with omap2_set_globals_tap(). 483 */ 484 if (cpu_is_omap24xx()) { 485 omap24xx_check_revision(); 486 } else if (cpu_is_omap34xx()) { 487 omap3_check_revision(); |
465 omap3_check_features(); | 488 489 /* TI816X doesn't have feature register */ 490 if (!cpu_is_ti816x()) 491 omap3_check_features(); 492 else 493 ti816x_check_features(); 494 |
466 omap3_cpuinfo(); 467 return; 468 } else if (cpu_is_omap44xx()) { 469 omap4_check_revision(); 470 return; 471 } else { 472 pr_err("OMAP revision unknown, please fix!\n"); 473 } --- 35 unchanged lines hidden --- | 495 omap3_cpuinfo(); 496 return; 497 } else if (cpu_is_omap44xx()) { 498 omap4_check_revision(); 499 return; 500 } else { 501 pr_err("OMAP revision unknown, please fix!\n"); 502 } --- 35 unchanged lines hidden --- |