arm/imx21: add kbuild support for the Freescale i.MX21
authorHolger Schurig <hs4233@mail.mn-solutions.de>
Mon, 26 Jan 2009 15:34:52 +0000 (16:34 +0100)
committerSascha Hauer <s.hauer@pengutronix.de>
Fri, 13 Mar 2009 09:33:45 +0000 (10:33 +0100)
* adds Kconfig variables
* specifies different physical address for i.MX21 because of the
  different memory layouts
* disables support for UART5/UART6 in the i.MX serial driver
  (the i.MX21 doesn't have those modules)

Based on code from "Martin Fuzzey" <mfuzzey@gmail.com>

Signed-off-by: Holger Schurig <hs4233@mail.mn-solutions.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
arch/arm/mach-mx2/Kconfig
arch/arm/mach-mx2/Makefile.boot
arch/arm/mach-mx2/serial.c
arch/arm/plat-mxc/include/mach/memory.h
arch/arm/plat-mxc/include/mach/mxc.h

index 1eaa97c..412d2d5 100644 (file)
@@ -1,12 +1,25 @@
 comment "MX2 family CPU support"
        depends on ARCH_MX2
 
+choice
+       prompt "MX2 Type"
+       depends on ARCH_MX2
+       default MACH_MX21
+
+config MACH_MX21
+       bool "i.MX21 support"
+       depends on ARCH_MX2
+       help
+         This enables support for Freescale's MX2 based i.MX21 processor.
+
 config MACH_MX27
        bool "i.MX27 support"
        depends on ARCH_MX2
        help
          This enables support for Freescale's MX2 based i.MX27 processor.
 
+endchoice
+
 comment "MX2 Platforms"
        depends on ARCH_MX2
 
index 696831d..e867398 100644 (file)
@@ -1,3 +1,7 @@
-   zreladdr-y  := 0xA0008000
-params_phys-y  := 0xA0000100
-initrd_phys-y  := 0xA0800000
+zreladdr-$(CONFIG_MACH_MX21)   := 0xC0008000
+params_phys-$(CONFIG_MACH_MX21)        := 0xC0000100
+initrd_phys-$(CONFIG_MACH_MX21)        := 0xC0800000
+
+zreladdr-$(CONFIG_MACH_MX27)   := 0xA0008000
+params_phys-$(CONFIG_MACH_MX27)        := 0xA0000100
+initrd_phys-$(CONFIG_MACH_MX27)        := 0xA0800000
index 16debc2..b9e66fb 100644 (file)
@@ -99,6 +99,7 @@ struct platform_device mxc_uart_device3 = {
        .num_resources = ARRAY_SIZE(uart3),
 };
 
+#ifdef CONFIG_MACH_MX27
 static struct resource uart4[] = {
        {
                .start = UART5_BASE_ADDR,
@@ -136,3 +137,4 @@ struct platform_device mxc_uart_device5 = {
        .resource = uart5,
        .num_resources = ARRAY_SIZE(uart5),
 };
+#endif
index 0b80839..e0783e6 100644 (file)
 #if defined CONFIG_ARCH_MX1
 #define PHYS_OFFSET            UL(0x08000000)
 #elif defined CONFIG_ARCH_MX2
+#ifdef CONFIG_MACH_MX21
+#define PHYS_OFFSET            UL(0xC0000000)
+#endif
+#ifdef CONFIG_MACH_MX27
 #define PHYS_OFFSET            UL(0xA0000000)
+#endif
 #elif defined CONFIG_ARCH_MX3
 #define PHYS_OFFSET            UL(0x80000000)
 #endif
index f6caab0..bbd848e 100644 (file)
 # define cpu_is_mx31() (0)
 #endif
 
+#ifndef CONFIG_MACH_MX21
+# define cpu_is_mx21() (0)
+#endif
+
 #ifndef CONFIG_MACH_MX27
 # define cpu_is_mx27() (0)
 #endif