#endif
 
 #if defined(CONFIG_MTD_NAND_PLATFORM) || defined(CONFIG_MTD_NAND_PLATFORM_MODULE)
-#ifdef CONFIG_MTD_PARTITIONS
 const char *part_probes[] = { "cmdlinepart", "RedBoot", NULL };
 
 static struct mtd_partition bfin_plat_nand_partitions[] = {
                .offset = MTDPART_OFS_APPEND,
        },
 };
-#endif
 
 #define BFIN_NAND_PLAT_CLE 2
 #define BFIN_NAND_PLAT_ALE 1
        .chip = {
                .nr_chips = 1,
                .chip_delay = 30,
-#ifdef CONFIG_MTD_PARTITIONS
                .part_probe_types = part_probes,
                .partitions = bfin_plat_nand_partitions,
                .nr_partitions = ARRAY_SIZE(bfin_plat_nand_partitions),
-#endif
        },
        .ctrl = {
                .cmd_ctrl  = bfin_plat_nand_cmd_ctrl,
 
 
 #if defined(CONFIG_MTD_NAND_PLATFORM) || defined(CONFIG_MTD_NAND_PLATFORM_MODULE)
 
-#ifdef CONFIG_MTD_PARTITIONS
 const char *part_probes[] = { "cmdlinepart", NULL };
 
 static struct mtd_partition bfin_plat_nand_partitions[] = {
             .offset = MTDPART_OFS_APPEND,
             },
 };
-#endif
 
 #define BFIN_NAND_PLAT_CLE 2
 #define BFIN_NAND_PLAT_ALE 3
        .chip = {
                 .nr_chips = 1,
                 .chip_delay = 30,
-#ifdef CONFIG_MTD_PARTITIONS
                 .part_probe_types = part_probes,
                 .partitions = bfin_plat_nand_partitions,
                 .nr_partitions = ARRAY_SIZE(bfin_plat_nand_partitions),
-#endif
                 },
        .ctrl = {
                 .cmd_ctrl = bfin_plat_nand_cmd_ctrl,
 
        uint32_t flash_ambctl0, flash_ambctl1;
        uint32_t save_ambctl0, save_ambctl1;
        unsigned long irq_flags;
-#ifdef CONFIG_MTD_PARTITIONS
        struct mtd_partition *parts;
-#endif
 };
 
 static void switch_to_flash(struct async_state *state)
        switch_back(state);
 }
 
-#ifdef CONFIG_MTD_PARTITIONS
 static const char *part_probe_types[] = { "cmdlinepart", "RedBoot", NULL };
-#endif
 
 static int __devinit bfin_flash_probe(struct platform_device *pdev)
 {
                return -ENXIO;
        }
 
-#ifdef CONFIG_MTD_PARTITIONS
        ret = parse_mtd_partitions(state->mtd, part_probe_types, &pdata->parts, 0);
        if (ret > 0) {
                pr_devinit(KERN_NOTICE DRIVER_NAME ": Using commandline partition definition\n");
-               add_mtd_partitions(state->mtd, pdata->parts, ret);
+               mtd_device_register(state->mtd, pdata->parts, ret);
                state->parts = pdata->parts;
-
        } else if (pdata->nr_parts) {
                pr_devinit(KERN_NOTICE DRIVER_NAME ": Using board partition definition\n");
-               add_mtd_partitions(state->mtd, pdata->parts, pdata->nr_parts);
-
-       } else
-#endif
-       {
+               mtd_device_register(state->mtd, pdata->parts, pdata->nr_parts);
+       } else {
                pr_devinit(KERN_NOTICE DRIVER_NAME ": no partition info available, registering whole flash at once\n");
-               add_mtd_device(state->mtd);
+               mtd_device_register(state->mtd, NULL, 0);
        }
 
        platform_set_drvdata(pdev, state);
 {
        struct async_state *state = platform_get_drvdata(pdev);
        gpio_free(state->enet_flash_pin);
-#ifdef CONFIG_MTD_PARTITIONS
-       del_mtd_partitions(state->mtd);
+       mtd_device_unregister(state->mtd);
        kfree(state->parts);
-#endif
        map_destroy(state->mtd);
        kfree(state);
        return 0;