[MIPS] MTX-1 flash partition setup move to platform devices registration
authorYoichi Yuasa <yoichi_yuasa@tripeaks.co.jp>
Fri, 11 Jul 2008 13:34:48 +0000 (22:34 +0900)
committerRalf Baechle <ralf@linux-mips.org>
Tue, 15 Jul 2008 17:44:38 +0000 (18:44 +0100)
Signed-off-by: Yoichi Yuasa <yoichi_yuasa@tripeaks.co.jp>
Acked-By: David Woodhouse <David.Woodhouse@intel.com>
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
arch/mips/au1000/mtx-1/platform.c
drivers/mtd/maps/Kconfig
drivers/mtd/maps/Makefile
drivers/mtd/maps/mtx-1_flash.c [deleted file]

index 9807be3..8b5914d 100644 (file)
@@ -24,6 +24,9 @@
 #include <linux/gpio.h>
 #include <linux/gpio_keys.h>
 #include <linux/input.h>
+#include <linux/mtd/partitions.h>
+#include <linux/mtd/physmap.h>
+#include <mtd/mtd-abi.h>
 
 static struct gpio_keys_button mtx1_gpio_button[] = {
        {
@@ -85,10 +88,56 @@ static struct platform_device mtx1_gpio_leds = {
        }
 };
 
+static struct mtd_partition mtx1_mtd_partitions[] = {
+       {
+               .name   = "filesystem",
+               .size   = 0x01C00000,
+               .offset = 0,
+       },
+       {
+               .name   = "yamon",
+               .size   = 0x00100000,
+               .offset = MTDPART_OFS_APPEND,
+               .mask_flags = MTD_WRITEABLE,
+       },
+       {
+               .name   = "kernel",
+               .size   = 0x002c0000,
+               .offset = MTDPART_OFS_APPEND,
+       },
+       {
+               .name   = "yamon env",
+               .size   = 0x00040000,
+               .offset = MTDPART_OFS_APPEND,
+       },
+};
+
+static struct physmap_flash_data mtx1_flash_data = {
+       .width          = 4,
+       .nr_parts       = 4,
+       .parts          = mtx1_mtd_partitions,
+};
+
+static struct resource mtx1_mtd_resource = {
+       .start  = 0x1e000000,
+       .end    = 0x1fffffff,
+       .flags  = IORESOURCE_MEM,
+};
+
+static struct platform_device mtx1_mtd = {
+       .name           = "physmap-flash",
+       .dev            = {
+               .platform_data  = &mtx1_flash_data,
+       },
+       .num_resources  = 1,
+       .resource       = &mtx1_mtd_resource,
+};
+
 static struct __initdata platform_device * mtx1_devs[] = {
        &mtx1_gpio_leds,
        &mtx1_wdt,
-       &mtx1_button
+       &mtx1_button,
+       &mtx1_mtd,
 };
 
 static int __init mtx1_register_devices(void)
index 17bc87a..d2fbc29 100644 (file)
@@ -258,13 +258,6 @@ config MTD_ALCHEMY
        help
          Flash memory access on AMD Alchemy Pb/Db/RDK Reference Boards
 
-config MTD_MTX1
-       tristate "4G Systems MTX-1 Flash device"
-       depends on MIPS_MTX1 && MTD_CFI
-       help
-         Flash memory access on 4G Systems MTX-1 Board. If you have one of
-         these boards and would like to use the flash chips on it, say 'Y'.
-
 config MTD_DILNETPC
        tristate "CFI Flash device mapped on DIL/Net PC"
        depends on X86 && MTD_CONCAT && MTD_PARTITIONS && MTD_CFI_INTELEXT
index 957fb5f..c6ce867 100644 (file)
@@ -65,5 +65,4 @@ obj-$(CONFIG_MTD_DMV182)      += dmv182.o
 obj-$(CONFIG_MTD_SHARP_SL)     += sharpsl-flash.o
 obj-$(CONFIG_MTD_PLATRAM)      += plat-ram.o
 obj-$(CONFIG_MTD_OMAP_NOR)     += omap_nor.o
-obj-$(CONFIG_MTD_MTX1)         += mtx-1_flash.o
 obj-$(CONFIG_MTD_INTEL_VR_NOR) += intel_vr_nor.o
diff --git a/drivers/mtd/maps/mtx-1_flash.c b/drivers/mtd/maps/mtx-1_flash.c
deleted file mode 100644 (file)
index 2a8fde9..0000000
+++ /dev/null
@@ -1,95 +0,0 @@
-/*
- * Flash memory access on 4G Systems MTX-1 boards
- *
- * $Id: mtx-1_flash.c,v 1.2 2005/11/07 11:14:27 gleixner Exp $
- *
- * (C) 2005 Bruno Randolf <bruno.randolf@4g-systems.biz>
- * (C) 2005 Joern Engel <joern@wohnheim.fh-wedel.de>
- *
- */
-
-#include <linux/module.h>
-#include <linux/types.h>
-#include <linux/init.h>
-#include <linux/kernel.h>
-
-#include <linux/mtd/mtd.h>
-#include <linux/mtd/map.h>
-#include <linux/mtd/partitions.h>
-
-#include <asm/io.h>
-
-static struct map_info mtx1_map = {
-       .name = "MTX-1 flash",
-       .bankwidth = 4,
-       .size = 0x2000000,
-       .phys = 0x1E000000,
-};
-
-static struct mtd_partition mtx1_partitions[] = {
-        {
-                .name = "filesystem",
-                .size = 0x01C00000,
-                .offset = 0,
-        },{
-                .name = "yamon",
-                .size = 0x00100000,
-                .offset = MTDPART_OFS_APPEND,
-                .mask_flags = MTD_WRITEABLE,
-        },{
-                .name = "kernel",
-                .size = 0x002c0000,
-                .offset = MTDPART_OFS_APPEND,
-        },{
-                .name = "yamon env",
-                .size = 0x00040000,
-                .offset = MTDPART_OFS_APPEND,
-        }
-};
-
-static struct mtd_info *mtx1_mtd;
-
-int __init mtx1_mtd_init(void)
-{
-       int ret = -ENXIO;
-
-       simple_map_init(&mtx1_map);
-
-       mtx1_map.virt = ioremap(mtx1_map.phys, mtx1_map.size);
-       if (!mtx1_map.virt)
-               return -EIO;
-
-       mtx1_mtd = do_map_probe("cfi_probe", &mtx1_map);
-       if (!mtx1_mtd)
-               goto err;
-
-       mtx1_mtd->owner = THIS_MODULE;
-
-       ret = add_mtd_partitions(mtx1_mtd, mtx1_partitions,
-                       ARRAY_SIZE(mtx1_partitions));
-       if (ret)
-               goto err;
-
-       return 0;
-
-err:
-       iounmap(mtx1_map.virt);
-       return ret;
-}
-
-static void __exit mtx1_mtd_cleanup(void)
-{
-       if (mtx1_mtd) {
-               del_mtd_partitions(mtx1_mtd);
-               map_destroy(mtx1_mtd);
-       }
-       if (mtx1_map.virt)
-               iounmap(mtx1_map.virt);
-}
-
-module_init(mtx1_mtd_init);
-module_exit(mtx1_mtd_cleanup);
-
-MODULE_AUTHOR("Bruno Randolf <bruno.randolf@4g-systems.biz>");
-MODULE_DESCRIPTION("MTX-1 flash map");
-MODULE_LICENSE("GPL");