forked from Minki/linux
ARM: mx27: Print silicon revision on boot
Silicon revision is useful information to have during kernel boot. Print the MX27 silicon revision. Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com> Signed-off-by: Jason Liu <jason.hui@linaro.org> Cc: Sascha Hauer <s.hauer@pengutronix.de> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
This commit is contained in:
parent
d27536c661
commit
3f5492c513
@ -751,6 +751,8 @@ int __init mx27_clocks_init(unsigned long fref)
|
||||
clk_enable(&gpio_clk);
|
||||
clk_enable(&emi_clk);
|
||||
clk_enable(&iim_clk);
|
||||
imx_print_silicon_rev("i.MX27", mx27_revision());
|
||||
clk_disable(&iim_clk);
|
||||
|
||||
#if defined(CONFIG_DEBUG_LL) && !defined(CONFIG_DEBUG_ICEDCC)
|
||||
clk_enable(&uart1_clk);
|
||||
|
@ -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);
|
||||
|
Loading…
Reference in New Issue
Block a user