[ARM] 4887/1: i.MXC family: Separate current platform code
authorRobert Schwebel <robert@schwebel.de>
Wed, 2 Apr 2008 09:29:30 +0000 (10:29 +0100)
committerRussell King <rmk+kernel@arm.linux.org.uk>
Thu, 17 Apr 2008 15:15:17 +0000 (16:15 +0100)
From: Juergen Beisert <j.beisert@pengutronix.de>

This patch separates the current code into i.MX2 and i.MX3 and modifies
the Kconfig files to reflect this separation in the menus.

Things happend since last review:
 - make i.MX3 compile again
 - fix some structure names to be conform with all the shared/common
   sources from i.MX1/i.MX2

Previous changes:
 - stay conform to other Kconfig files (note from Russell King)

Signed-off-by: Juergen Beisert <j.beisert@pengutronix.de>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
arch/arm/plat-mxc/Kconfig
include/asm-arm/arch-mxc/hardware.h
include/asm-arm/arch-mxc/irqs.h
include/asm-arm/arch-mxc/mx31.h
include/asm-arm/arch-mxc/mxc.h

index 03a65c0dfb6087de55a7b0627351d8406f38b278..bb6e12738fb3d749c9c2c0c13a40532790aa571b 100644 (file)
@@ -4,7 +4,7 @@ menu "Freescale MXC Implementations"
 
 choice
        prompt "MXC/iMX System Type"
-       default 0
+       default ARCH_MX3
 
 config ARCH_MX3
        bool "MX3-based"
index e70387e91b77eb52443ca05df88568f13e05806d..e87ff0679d5ecaccd77cad9de7d8ee1433ff860e 100644 (file)
 
 #include <asm/sizes.h>
 
-#include <asm/arch/mx31.h>
+#ifdef CONFIG_ARCH_MX3
+# include <asm/arch/mx31.h>
+#endif
 
 #include <asm/arch/mxc.h>
 
-#define MXC_MAX_GPIO_LINES      (GPIO_NUM_PIN * GPIO_PORT_NUM)
-
 /*
  * ---------------------------------------------------------------------------
  * Board specific defines
  * ---------------------------------------------------------------------------
  */
-#define MXC_EXP_IO_BASE         (MXC_GPIO_INT_BASE + MXC_MAX_GPIO_LINES)
-
-#include <asm/arch/board-mx31ads.h>
-
-#ifndef MXC_MAX_EXP_IO_LINES
-#define MXC_MAX_EXP_IO_LINES 0
+#ifdef CONFIG_MACH_MX31ADS
+# include <asm/arch/board-mx31ads.h>
 #endif
 
-#define MXC_MAX_VIRTUAL_INTS   16
-#define MXC_VIRTUAL_INTS_BASE  (MXC_EXP_IO_BASE + MXC_MAX_EXP_IO_LINES)
-#define MXC_SDIO1_CARD_IRQ     MXC_VIRTUAL_INTS_BASE
-#define MXC_SDIO2_CARD_IRQ     (MXC_VIRTUAL_INTS_BASE + 1)
-#define MXC_SDIO3_CARD_IRQ     (MXC_VIRTUAL_INTS_BASE + 2)
-
-#define MXC_MAX_INTS            (MXC_MAX_INT_LINES + \
-                                MXC_MAX_GPIO_LINES + \
-                                MXC_MAX_EXP_IO_LINES + \
-                                MXC_MAX_VIRTUAL_INTS)
-
 #endif /* __ASM_ARCH_MXC_HARDWARE_H__ */
index a64e66ba4ae44b8577e73ac7992cc5a0c39e92ec..b2c5205e196298b8806778cdd5089f9e53282078 100644 (file)
@@ -19,7 +19,9 @@
 #define MXC_GPIO_TO_IRQ(x)     (MXC_GPIO_INT_BASE + x)
 
 /* Number of normal interrupts */
-#define NR_IRQS                MXC_MAX_INTS
+#define NR_IRQS                (MXC_MAX_INT_LINES + \
+                       MXC_MAX_GPIO_LINES + \
+                       MXC_MAX_VIRTUAL_INTS)
 
 /* Number of fast interrupts */
 #define NR_FIQS                MXC_MAX_INTS
index 85c49c9e5d158b39f3dc37de0a1f0f2f3851727c..36a1af495bb3eb74f4a02385df32600a7e755538 100644 (file)
 #define MXC_MAX_INT_LINES      64
 
 #define MXC_GPIO_INT_BASE      MXC_MAX_INT_LINES
+#define MXC_MAX_GPIO_LINES      (GPIO_NUM_PIN * GPIO_PORT_NUM)
+#define MXC_MAX_VIRTUAL_INTS   16
 
 /*!
  * Number of GPIO port as defined in the IC Spec
 
 #define PROD_SIGNATURE         0x1     /* For MX31 */
 
+/* silicon revisions specific to i.MX31 */
+#define CHIP_REV_1_0           0x10
+#define CHIP_REV_1_1           0x11
+#define CHIP_REV_1_2           0x12
+#define CHIP_REV_1_3           0x13
+#define CHIP_REV_2_0           0x20
+#define CHIP_REV_2_1           0x21
+#define CHIP_REV_2_2           0x22
+#define CHIP_REV_2_3           0x23
+#define CHIP_REV_3_0           0x30
+#define CHIP_REV_3_1           0x31
+#define CHIP_REV_3_2           0x32
+
 #define SYSTEM_REV_MIN         CHIP_REV_1_0
 #define SYSTEM_REV_NUM         3
 
-#endif                 /*  __ASM_ARCH_MXC_MX31_H__ */
+#if !defined(__ASSEMBLY__) && !defined(__MXC_BOOT_UNCOMPRESS)
+
+/* this is a i.MX31 CPU */
+#define cpu_is_mx31()          (1)
+
+extern unsigned int system_rev;
+
+static inline int mx31_revision(void)
+{
+       return system_rev;
+}
+#endif
+
+#endif /*  __ASM_ARCH_MXC_MX31_H__ */
index f1349734b8afba1702e9ebf834d15093c3da998f..146d3f60951a5e6340d8139a3f2e29b74a229ce7 100644 (file)
 #error "Do not include directly."
 #endif
 
+/* clean up all things that are not used */
+#ifndef CONFIG_ARCH_MX3
+# define cpu_is_mx31() (0)
+#endif
+
 /*
  *****************************************
  * GPT  Register definitions             *