This source file includes following definitions.
- mx27_read_cpu_rev
- mx27_revision
   1 
   2 
   3 
   4 
   5 
   6 
   7 
   8 
   9 
  10 
  11 #include <linux/io.h>
  12 #include <linux/module.h>
  13 
  14 #include "hardware.h"
  15 
  16 static int mx27_cpu_rev = -1;
  17 static int mx27_cpu_partnumber;
  18 
  19 #define SYS_CHIP_ID             0x00    
  20 
  21 static int mx27_read_cpu_rev(void)
  22 {
  23         u32 val;
  24         
  25 
  26 
  27 
  28 
  29         val = imx_readl(MX27_IO_ADDRESS(MX27_SYSCTRL_BASE_ADDR + SYS_CHIP_ID));
  30 
  31         mx27_cpu_partnumber = (int)((val >> 12) & 0xFFFF);
  32 
  33         switch (val >> 28) {
  34         case 0:
  35                 return IMX_CHIP_REVISION_1_0;
  36         case 1:
  37                 return IMX_CHIP_REVISION_2_0;
  38         case 2:
  39                 return IMX_CHIP_REVISION_2_1;
  40         default:
  41                 return IMX_CHIP_REVISION_UNKNOWN;
  42         }
  43 }
  44 
  45 
  46 
  47 
  48 
  49 
  50 int mx27_revision(void)
  51 {
  52         if (mx27_cpu_rev == -1)
  53                 mx27_cpu_rev = mx27_read_cpu_rev();
  54 
  55         if (mx27_cpu_partnumber != 0x8821)
  56                 return -EINVAL;
  57 
  58         return mx27_cpu_rev;
  59 }
  60 EXPORT_SYMBOL(mx27_revision);