aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/adm8668/files/arch
diff options
context:
space:
mode:
authorFlorian Fainelli <florian@openwrt.org>2012-12-06 22:40:17 +0000
committerFlorian Fainelli <florian@openwrt.org>2012-12-06 22:40:17 +0000
commit1232f91efb76f820e388b22f0617e204598f450b (patch)
tree060f624589b34164e51aade9ae968186271af6d5 /target/linux/adm8668/files/arch
parentb516c8d89da65e57820f0a6e0f19eab1c5dd0736 (diff)
downloadupstream-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.c27
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)