From b5c750c4d3f523df5759c3b7cbda321d056f7045 Mon Sep 17 00:00:00 2001
From: Tony Lindgren <tony@atomide.com>
Date: Thu, 30 Apr 2009 11:46:41 -0700
Subject: [PATCH] onenand init: Convert omap3430sdp to use gpmc-onenand
Convert omap3430sdp to use gpmc-onenand. Note that sync mode
does not seem to work for some reason, so disable it with flags.
Signed-off-by: Tony Lindgren <tony@atomide.com>
@@ -103,8 +103,6 @@ static struct platform_device sdp_nor_device = {
.resource = &sdp_nor_resource,
};
-static int sdp_onenand_setup(void __iomem *, int freq);
-
static struct mtd_partition sdp_onenand_partitions[] = {
{
.name = "X-Loader-OneNAND",
@@ -138,30 +136,10 @@ static struct mtd_partition sdp_onenand_partitions[] = {
static struct omap_onenand_platform_data sdp_onenand_data = {
.parts = sdp_onenand_partitions,
.nr_parts = ARRAY_SIZE(sdp_onenand_partitions),
- .onenand_setup = sdp_onenand_setup,
.dma_channel = -1, /* disable DMA in OMAP OneNAND driver */
+ .flags = ONENAND_DIS_SYNC_READ | ONENAND_DIS_SYNC_WRITE,
};
-static struct platform_device sdp_onenand_device = {
- .name = "omap2-onenand",
- .id = -1,
- .dev = {
- .platform_data = &sdp_onenand_data,
- },
-};
-
-/*
- * sdp_onenand_setup - The function configures the onenand flash.
- * @onenand_base: Onenand base address
- *
- * @return int: Currently always returning zero.
- */
-static int sdp_onenand_setup(void __iomem *onenand_base, int freq)
-{
- /* Onenand setup does nothing at present */
- return 0;
-}
-
static struct mtd_partition sdp_nand_partitions[] = {
/* All the partition sizes are listed in terms of NAND block size */
{
@@ -262,7 +240,7 @@ void __init sdp3430_flash_init(void)
} else {
ret = gpmc_cs_read_reg(cs, GPMC_CS_CONFIG7);
if ((ret & 0x3F) == (ONENAND_MAP >> 24))
- onenandcs = cs;
+ onenandcs = cs;
}
cs++;
}
@@ -284,7 +262,6 @@ void __init sdp3430_flash_init(void)
if (onenandcs < GPMC_CS_NUM) {
sdp_onenand_data.cs = onenandcs;
- if (platform_device_register(&sdp_onenand_device) < 0)
- printk(KERN_ERR "Unable to register OneNAND device\n");
+ gpmc_onenand_init(&sdp_onenand_data);
}
}