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 ---