[ARM] 3039/1: AAEC-2000 - Add MTD support
authorBellido Nicolas <ml@acolin.be>
Fri, 28 Oct 2005 15:51:42 +0000 (16:51 +0100)
committerRussell King <rmk+kernel@arm.linux.org.uk>
Fri, 28 Oct 2005 15:51:42 +0000 (16:51 +0100)
Patch from Bellido Nicolas

This adds platform code for MTD devices on AAEC-2000.

Signed-off-by: Nicolas Bellido <ml@acolin.be>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
arch/arm/mach-aaec2000/core.c
include/asm-arm/arch-aaec2000/aaec2000.h

index 9be6c32132541fadc88a81235df9927d5148b535..86c5149b1721250e4ea7add3e89dcf750c5c98dc 100644 (file)
@@ -13,6 +13,7 @@
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/init.h>
+#include <linux/device.h>
 #include <linux/list.h>
 #include <linux/errno.h>
 #include <linux/interrupt.h>
@@ -22,6 +23,7 @@
 #include <asm/hardware.h>
 #include <asm/irq.h>
 
+#include <asm/mach/flash.h>
 #include <asm/mach/irq.h>
 #include <asm/mach/time.h>
 #include <asm/mach/map.h>
@@ -163,3 +165,32 @@ struct sys_timer aaec2000_timer = {
        .offset         = aaec2000_gettimeoffset,
 };
 
+static struct flash_platform_data aaec2000_flash_data = {
+       .map_name       = "cfi_probe",
+       .width          = 4,
+};
+
+static struct resource aaec2000_flash_resource = {
+       .start          = AAEC_FLASH_BASE,
+       .end            = AAEC_FLASH_BASE + AAEC_FLASH_SIZE,
+       .flags          = IORESOURCE_MEM,
+};
+
+static struct platform_device aaec2000_flash_device = {
+       .name           = "armflash",
+       .id             = 0,
+       .dev            = {
+               .platform_data  = &aaec2000_flash_data,
+       },
+       .num_resources  = 1,
+       .resource       = &aaec2000_flash_resource,
+};
+
+static int __init aaec2000_init(void)
+{
+       platform_device_register(&aaec2000_flash_device);
+
+       return 0;
+};
+arch_initcall(aaec2000_init);
+
index 7472f9e5523f19da6bc0ae791efd1e3fd65e1a10..dfb09389ebc121e47e8d39e649a231d440cc028b 100644 (file)
@@ -23,6 +23,9 @@
 #define AAEC_CS2       0x20000000
 #define AAEC_CS3       0x30000000
 
+/* Flash */
+#define AAEC_FLASH_BASE        AAEC_CS0
+#define AAEC_FLASH_SIZE        SZ_64M
 
 /* Interrupt controller */
 #define IRQ_BASE       __REG(0x80000500)