diff options
author | Florian Fainelli <florian@openwrt.org> | 2012-12-06 22:40:17 +0000 |
---|---|---|
committer | Florian Fainelli <florian@openwrt.org> | 2012-12-06 22:40:17 +0000 |
commit | 1232f91efb76f820e388b22f0617e204598f450b (patch) | |
tree | 060f624589b34164e51aade9ae968186271af6d5 /target/linux/adm8668/files/arch | |
parent | b516c8d89da65e57820f0a6e0f19eab1c5dd0736 (diff) | |
download | upstream-1232f91efb76f820e388b22f0617e204598f450b.tar.gz upstream-1232f91efb76f820e388b22f0617e204598f450b.tar.bz2 upstream-1232f91efb76f820e388b22f0617e204598f450b.zip |
replace the custom mtd driver with a partition parser
Signed-off-by: Florian Fainelli <florian@openwrt.org>
SVN-Revision: 34554
Diffstat (limited to 'target/linux/adm8668/files/arch')
-rw-r--r-- | target/linux/adm8668/files/arch/mips/adm8668/platform.c | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/target/linux/adm8668/files/arch/mips/adm8668/platform.c b/target/linux/adm8668/files/arch/mips/adm8668/platform.c index 5030565a2c..264eaf4858 100644 --- a/target/linux/adm8668/files/arch/mips/adm8668/platform.c +++ b/target/linux/adm8668/files/arch/mips/adm8668/platform.c @@ -1,4 +1,6 @@ /* + * Infineon/ADMTek 8668 (WildPass) platform devices support + * * Copyright (C) 2010 Scott Nicholas <neutronscott@scottn.us> * Copyright (C) 2012 Florian Fainelli <florian@openwrt.org> * @@ -11,6 +13,7 @@ #include <linux/kernel.h> #include <linux/platform_device.h> #include <linux/mtd/physmap.h> +#include <linux/mtd/partitions.h> #include <linux/pci.h> #include <linux/slab.h> #include <linux/ioport.h> @@ -89,9 +92,33 @@ static struct platform_device adm8668_eth1_device = { .num_resources = ARRAY_SIZE(eth1_resources), }; +static const char *nor_probe_types[] = { "adm8668part", NULL }; + +static struct physmap_flash_data nor_flash_data = { + .width = 2, + .part_probe_types = nor_probe_types, +}; + +static struct resource nor_resources[] = { + { + .start = ADM8668_SMEM1_BASE, + .end = ADM8668_SMEM1_BASE + 0x800000 - 1, + .flags = IORESOURCE_MEM, + }, +}; + +static struct platform_device adm8668_nor_device = { + .name = "physmap-flash", + .id = -1, + .resource = nor_resources, + .num_resources = ARRAY_SIZE(nor_resources), + .dev.platform_data = &nor_flash_data, +}; + static struct platform_device *adm8668_devs[] = { &adm8668_eth0_device, &adm8668_eth1_device, + &adm8668_nor_device, }; int __devinit adm8668_devs_register(void) |