diff options
Diffstat (limited to 'arch/arm/mach-imx/cpu-imx27.c')
| -rw-r--r-- | arch/arm/mach-imx/cpu-imx27.c | 28 | 
1 files changed, 13 insertions, 15 deletions
diff --git a/arch/arm/mach-imx/cpu-imx27.c b/arch/arm/mach-imx/cpu-imx27.c index 3b117be37bd..ff38e1505f6 100644 --- a/arch/arm/mach-imx/cpu-imx27.c +++ b/arch/arm/mach-imx/cpu-imx27.c @@ -26,12 +26,12 @@  #include <mach/hardware.h> -static int cpu_silicon_rev = -1; -static int cpu_partnumber; +static int mx27_cpu_rev = -1; +static int mx27_cpu_partnumber;  #define SYS_CHIP_ID             0x00    /* The offset of CHIP ID register */ -static void query_silicon_parameter(void) +static int mx27_read_cpu_rev(void)  {  	u32 val;  	/* @@ -42,20 +42,18 @@ static void query_silicon_parameter(void)  	val = __raw_readl(MX27_IO_ADDRESS(MX27_SYSCTRL_BASE_ADDR  				+ SYS_CHIP_ID)); +	mx27_cpu_partnumber = (int)((val >> 12) & 0xFFFF); +  	switch (val >> 28) {  	case 0: -		cpu_silicon_rev = IMX_CHIP_REVISION_1_0; -		break; +		return IMX_CHIP_REVISION_1_0;  	case 1: -		cpu_silicon_rev = IMX_CHIP_REVISION_2_0; -		break; +		return IMX_CHIP_REVISION_2_0;  	case 2: -		cpu_silicon_rev = IMX_CHIP_REVISION_2_1; -		break; +		return IMX_CHIP_REVISION_2_1;  	default: -		cpu_silicon_rev = IMX_CHIP_REVISION_UNKNOWN; +		return IMX_CHIP_REVISION_UNKNOWN;  	} -	cpu_partnumber = (int)((val >> 12) & 0xFFFF);  }  /* @@ -65,12 +63,12 @@ static void query_silicon_parameter(void)   */  int mx27_revision(void)  { -	if (cpu_silicon_rev == -1) -		query_silicon_parameter(); +	if (mx27_cpu_rev == -1) +		mx27_cpu_rev = mx27_read_cpu_rev(); -	if (cpu_partnumber != 0x8821) +	if (mx27_cpu_partnumber != 0x8821)  		return -EINVAL; -	return cpu_silicon_rev; +	return mx27_cpu_rev;  }  EXPORT_SYMBOL(mx27_revision);  |