ARM: mx53: Print silicon revision on boot
authorFabio Estevam <fabio.estevam@freescale.com>
Fri, 25 Mar 2011 15:52:47 +0000 (12:52 -0300)
committerSascha Hauer <s.hauer@pengutronix.de>
Thu, 19 May 2011 11:11:00 +0000 (13:11 +0200)
Having the silicon revision to appear on the boot log is a useful information.

MX31, MX35 and MX51 already show the silicon revision on boot.

Add support for displaying such information for MX53 as well.

Tested on a mx53loco board, where it shows:

CPU identified as i.MX53, silicon rev 2.0

Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
LAKML-Reference: 1301068367-18937-1-git-send-email-fabio.estevam@freescale.com
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
arch/arm/mach-mx5/clock-mx51-mx53.c
arch/arm/mach-mx5/cpu.c
arch/arm/plat-mxc/include/mach/common.h
arch/arm/plat-mxc/include/mach/mx53.h

index fdbc05ed5513db7792ba04c39991d210843e2ace..6b89c1bf4eb2f7a774b18c7b68871b173b5f4da1 100644 (file)
@@ -1563,6 +1563,7 @@ int __init mx53_clocks_init(unsigned long ckil, unsigned long osc,
        clk_enable(&iim_clk);
        mx53_revision();
        clk_disable(&iim_clk);
+       mx53_display_revision();
 
        /* Set SDHC parents to be PLL2 */
        clk_set_parent(&esdhc1_clk, &pll2_sw_clk);
index 472bdfab2e552e3d7974c0a42a1477c444c84fe2..86f87da59c641e9012b7faccaadd80bbe0b8a44e 100644 (file)
@@ -166,6 +166,29 @@ int mx50_revision(void)
 }
 EXPORT_SYMBOL(mx50_revision);
 
+void mx53_display_revision(void)
+{
+       int rev;
+       char *srev;
+       rev = mx53_revision();
+
+       switch (rev) {
+       case IMX_CHIP_REVISION_1_0:
+               srev = IMX_CHIP_REVISION_1_0_STRING;
+               break;
+       case IMX_CHIP_REVISION_2_0:
+               srev = IMX_CHIP_REVISION_2_0_STRING;
+               break;
+       case IMX_CHIP_REVISION_2_1:
+               srev = IMX_CHIP_REVISION_2_1_STRING;
+               break;
+       default:
+               srev = IMX_CHIP_REVISION_UNKNOWN_STRING;
+       }
+       printk(KERN_INFO "CPU identified as i.MX53, silicon rev %s\n", srev);
+}
+EXPORT_SYMBOL(mx53_display_revision);
+
 static int __init post_cpu_init(void)
 {
        unsigned int reg;
index a22ebe11a602aa817e06ef33608da4be79f72ade..bfa1ffca5d793b114645860df1530f2f2b6c8193 100644 (file)
@@ -68,4 +68,5 @@ extern void mxc91231_arch_reset(int, const char *);
 extern void mxc91231_prepare_idle(void);
 extern void mx51_efikamx_reset(void);
 extern int mx53_revision(void);
+extern int mx53_display_revision(void);
 #endif
index ace17864575e2ad199305fd06a72b7af1b631486..9d2a1ef84de2104c873120dff2bf15be2a200b29 100644 (file)
 #define MX53_INT_GPIO7_LOW     107
 #define MX53_INT_GPIO7_HIGH    108
 
-/* silicon revisions specific to i.MX53 */
-#define MX53_CHIP_REV_1_0              0x10
-#define MX53_CHIP_REV_1_1              0x11
-#define MX53_CHIP_REV_1_2              0x12
-#define MX53_CHIP_REV_1_3              0x13
-#define MX53_CHIP_REV_2_0              0x20
-#define MX53_CHIP_REV_2_1              0x21
-#define MX53_CHIP_REV_2_2              0x22
-#define MX53_CHIP_REV_2_3              0x23
-#define MX53_CHIP_REV_3_0              0x30
-#define MX53_CHIP_REV_3_1              0x31
-#define MX53_CHIP_REV_3_2              0x32
-
 #endif /* ifndef __MACH_MX53_H__ */