From a12370f12fdc6a35463842e41eaf04299167eb12 Mon Sep 17 00:00:00 2001 From: wanzongshun Date: Thu, 12 Feb 2009 02:57:21 +0100 Subject: [ARM] 5393/1: Add W90P910 EVB NOR flash driver Add W90P910 Evaluate Board NOR flash driver support, The EV Board default support W19B320ABT7H of Winbond inc. Signed-off-by: Wan ZongShun Signed-off-by: Russell King --- arch/arm/mach-w90x900/mach-w90p910evb.c | 48 +++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) (limited to 'arch/arm/mach-w90x900/mach-w90p910evb.c') diff --git a/arch/arm/mach-w90x900/mach-w90p910evb.c b/arch/arm/mach-w90x900/mach-w90p910evb.c index 542527019b6..726ff6798a5 100644 --- a/arch/arm/mach-w90x900/mach-w90p910evb.c +++ b/arch/arm/mach-w90x900/mach-w90p910evb.c @@ -22,6 +22,7 @@ #include #include #include +#include #include #include @@ -32,6 +33,52 @@ #include #include "cpu.h" +/*w90p910 evb norflash driver data */ + +#define W90P910_FLASH_BASE 0xA0000000 +#define W90P910_FLASH_SIZE 0x400000 + +static struct mtd_partition w90p910_flash_partitions[] = { + { + .name = "NOR Partition 1 for kernel (960K)", + .size = 0xF0000, + .offset = 0x10000, + }, + { + .name = "NOR Partition 2 for image (1M)", + .size = 0x100000, + .offset = 0x100000, + }, + { + .name = "NOR Partition 3 for user (2M)", + .size = 0x200000, + .offset = 0x00200000, + } +}; + +static struct physmap_flash_data w90p910_flash_data = { + .width = 2, + .parts = w90p910_flash_partitions, + .nr_parts = ARRAY_SIZE(w90p910_flash_partitions), +}; + +static struct resource w90p910_flash_resources[] = { + { + .start = W90P910_FLASH_BASE, + .end = W90P910_FLASH_BASE + W90P910_FLASH_SIZE - 1, + .flags = IORESOURCE_MEM, + } +}; + +static struct platform_device w90p910_flash_device = { + .name = "physmap-flash", + .id = 0, + .dev = { + .platform_data = &w90p910_flash_data, + }, + .resource = w90p910_flash_resources, + .num_resources = ARRAY_SIZE(w90p910_flash_resources), +}; static struct map_desc w90p910_iodesc[] __initdata = { }; @@ -40,6 +87,7 @@ static struct map_desc w90p910_iodesc[] __initdata = { static struct platform_device *w90p910evb_dev[] __initdata = { &w90p910_serial_device, + &w90p910_flash_device, }; static void __init w90p910evb_map_io(void) -- cgit v1.2.3