home *** CD-ROM | disk | FTP | other *** search
/ Mac Easy 2010 May / Mac Life Ubuntu.iso / casper / filesystem.squashfs / usr / src / linux-headers-2.6.28-15 / arch / arm / mach-at91 / include / mach / cpu.h < prev    next >
Encoding:
C/C++ Source or Header  |  2008-12-24  |  2.6 KB  |  104 lines

  1. /*
  2.  * arch/arm/mach-at91/include/mach/cpu.h
  3.  *
  4.  *  Copyright (C) 2006 SAN People
  5.  *
  6.  * This program is free software; you can redistribute it and/or modify
  7.  * it under the terms of the GNU General Public License as published by
  8.  * the Free Software Foundation; either version 2 of the License, or
  9.  * (at your option) any later version.
  10.  *
  11.  */
  12.  
  13. #ifndef __ASM_ARCH_CPU_H
  14. #define __ASM_ARCH_CPU_H
  15.  
  16. #include <mach/hardware.h>
  17. #include <mach/at91_dbgu.h>
  18.  
  19.  
  20. #define ARCH_ID_AT91RM9200    0x09290780
  21. #define ARCH_ID_AT91SAM9260    0x019803a0
  22. #define ARCH_ID_AT91SAM9261    0x019703a0
  23. #define ARCH_ID_AT91SAM9263    0x019607a0
  24. #define ARCH_ID_AT91SAM9G20    0x019905a0
  25. #define ARCH_ID_AT91SAM9RL64    0x019b03a0
  26. #define ARCH_ID_AT91CAP9    0x039A03A0
  27.  
  28. #define ARCH_ID_AT91SAM9XE128    0x329973a0
  29. #define ARCH_ID_AT91SAM9XE256    0x329a93a0
  30. #define ARCH_ID_AT91SAM9XE512    0x329aa3a0
  31.  
  32. #define ARCH_ID_AT91M40800    0x14080044
  33. #define ARCH_ID_AT91R40807    0x44080746
  34. #define ARCH_ID_AT91M40807    0x14080745
  35. #define ARCH_ID_AT91R40008    0x44000840
  36.  
  37. static inline unsigned long at91_cpu_identify(void)
  38. {
  39.     return (at91_sys_read(AT91_DBGU_CIDR) & ~AT91_CIDR_VERSION);
  40. }
  41.  
  42.  
  43. #define ARCH_FAMILY_AT91X92    0x09200000
  44. #define ARCH_FAMILY_AT91SAM9    0x01900000
  45. #define ARCH_FAMILY_AT91SAM9XE    0x02900000
  46.  
  47. static inline unsigned long at91_arch_identify(void)
  48. {
  49.     return (at91_sys_read(AT91_DBGU_CIDR) & AT91_CIDR_ARCH);
  50. }
  51.  
  52.  
  53. #ifdef CONFIG_ARCH_AT91RM9200
  54. #define cpu_is_at91rm9200()    (at91_cpu_identify() == ARCH_ID_AT91RM9200)
  55. #else
  56. #define cpu_is_at91rm9200()    (0)
  57. #endif
  58.  
  59. #ifdef CONFIG_ARCH_AT91SAM9260
  60. #define cpu_is_at91sam9xe()    (at91_arch_identify() == ARCH_FAMILY_AT91SAM9XE)
  61. #define cpu_is_at91sam9260()    ((at91_cpu_identify() == ARCH_ID_AT91SAM9260) || cpu_is_at91sam9xe())
  62. #else
  63. #define cpu_is_at91sam9xe()    (0)
  64. #define cpu_is_at91sam9260()    (0)
  65. #endif
  66.  
  67. #ifdef CONFIG_ARCH_AT91SAM9G20
  68. #define cpu_is_at91sam9g20()    (at91_cpu_identify() == ARCH_ID_AT91SAM9G20)
  69. #else
  70. #define cpu_is_at91sam9g20()    (0)
  71. #endif
  72.  
  73. #ifdef CONFIG_ARCH_AT91SAM9261
  74. #define cpu_is_at91sam9261()    (at91_cpu_identify() == ARCH_ID_AT91SAM9261)
  75. #else
  76. #define cpu_is_at91sam9261()    (0)
  77. #endif
  78.  
  79. #ifdef CONFIG_ARCH_AT91SAM9263
  80. #define cpu_is_at91sam9263()    (at91_cpu_identify() == ARCH_ID_AT91SAM9263)
  81. #else
  82. #define cpu_is_at91sam9263()    (0)
  83. #endif
  84.  
  85. #ifdef CONFIG_ARCH_AT91SAM9RL
  86. #define cpu_is_at91sam9rl()    (at91_cpu_identify() == ARCH_ID_AT91SAM9RL64)
  87. #else
  88. #define cpu_is_at91sam9rl()    (0)
  89. #endif
  90.  
  91. #ifdef CONFIG_ARCH_AT91CAP9
  92. #define cpu_is_at91cap9()    (at91_cpu_identify() == ARCH_ID_AT91CAP9)
  93. #else
  94. #define cpu_is_at91cap9()    (0)
  95. #endif
  96.  
  97. /*
  98.  * Since this is ARM, we will never run on any AVR32 CPU. But these
  99.  * definitions may reduce clutter in common drivers.
  100.  */
  101. #define cpu_is_at32ap7000()    (0)
  102.  
  103. #endif
  104.