omap: cleanup NAND platform data
authorGrazvydas Ignotas <notasas@gmail.com>
Fri, 3 Jun 2011 19:56:33 +0000 (19:56 +0000)
committerTony Lindgren <tony@atomide.com>
Wed, 29 Jun 2011 08:11:37 +0000 (01:11 -0700)
omap_nand_platform_data fields 'options', 'gpio_irq', 'nand_setup' and
'dma_channel' are never referenced by the NAND driver, yet various
board files are initializing those fields. This is both incorrect and
confusing, so remove them. This allows to get rid of a global
variable in gpmc-nand.c.

This also corrects an issue where some boards are trying to pass NAND
16bit flag through .options, but the driver is using .devsize instead
and ignoring .options.

Finally, .dev_ready is treated as a flag by the driver, so make it bool
instead of a function pointer.

Signed-off-by: Grazvydas Ignotas <notasas@gmail.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
arch/arm/mach-omap2/board-cm-t35.c
arch/arm/mach-omap2/board-cm-t3517.c
arch/arm/mach-omap2/board-flash.c
arch/arm/mach-omap2/common-board-devices.c
arch/arm/mach-omap2/gpmc-nand.c
arch/arm/plat-omap/include/plat/nand.h

index ceb581e..c938984 100644 (file)
@@ -162,9 +162,7 @@ static struct mtd_partition cm_t35_nand_partitions[] = {
 static struct omap_nand_platform_data cm_t35_nand_data = {
        .parts                  = cm_t35_nand_partitions,
        .nr_parts               = ARRAY_SIZE(cm_t35_nand_partitions),
-       .dma_channel            = -1,   /* disable DMA in OMAP NAND driver */
        .cs                     = 0,
-
 };
 
 static void __init cm_t35_init_nand(void)
index c3a9fd3..a617a72 100644 (file)
@@ -236,7 +236,6 @@ static struct mtd_partition cm_t3517_nand_partitions[] = {
 static struct omap_nand_platform_data cm_t3517_nand_data = {
        .parts                  = cm_t3517_nand_partitions,
        .nr_parts               = ARRAY_SIZE(cm_t3517_nand_partitions),
-       .dma_channel            = -1,   /* disable DMA in OMAP NAND driver */
        .cs                     = 0,
 };
 
index 729892f..aa1b0cb 100644 (file)
@@ -132,11 +132,7 @@ static struct gpmc_timings nand_timings = {
 };
 
 static struct omap_nand_platform_data board_nand_data = {
-       .nand_setup     = NULL,
        .gpmc_t         = &nand_timings,
-       .dma_channel    = -1,           /* disable DMA in OMAP NAND driver */
-       .dev_ready      = NULL,
-       .devsize        = 0,    /* '0' for 8-bit, '1' for 16-bit device */
 };
 
 void
index 94ccf46..0043fa8 100644 (file)
@@ -115,9 +115,7 @@ void __init omap_ads7846_init(int bus_num, int gpio_pendown, int gpio_debounce,
 #endif
 
 #if defined(CONFIG_MTD_NAND_OMAP2) || defined(CONFIG_MTD_NAND_OMAP2_MODULE)
-static struct omap_nand_platform_data nand_data = {
-       .dma_channel    = -1,           /* disable DMA in OMAP NAND driver */
-};
+static struct omap_nand_platform_data nand_data;
 
 void __init omap_nand_flash_init(int options, struct mtd_partition *parts,
                                 int nr_parts)
@@ -148,7 +146,7 @@ void __init omap_nand_flash_init(int options, struct mtd_partition *parts,
                nand_data.cs = nandcs;
                nand_data.parts = parts;
                nand_data.nr_parts = nr_parts;
-               nand_data.options = options;
+               nand_data.devsize = options;
 
                printk(KERN_INFO "Registering NAND on CS%d\n", nandcs);
                if (gpmc_nand_init(&nand_data) < 0)
index c1791d0..8ad210b 100644 (file)
@@ -20,8 +20,6 @@
 #include <plat/board.h>
 #include <plat/gpmc.h>
 
-static struct omap_nand_platform_data *gpmc_nand_data;
-
 static struct resource gpmc_nand_resource = {
        .flags          = IORESOURCE_MEM,
 };
@@ -33,7 +31,7 @@ static struct platform_device gpmc_nand_device = {
        .resource       = &gpmc_nand_resource,
 };
 
-static int omap2_nand_gpmc_retime(void)
+static int omap2_nand_gpmc_retime(struct omap_nand_platform_data *gpmc_nand_data)
 {
        struct gpmc_timings t;
        int err;
@@ -83,13 +81,11 @@ static int omap2_nand_gpmc_retime(void)
        return 0;
 }
 
-int __init gpmc_nand_init(struct omap_nand_platform_data *_nand_data)
+int __init gpmc_nand_init(struct omap_nand_platform_data *gpmc_nand_data)
 {
        int err = 0;
        struct device *dev = &gpmc_nand_device.dev;
 
-       gpmc_nand_data = _nand_data;
-       gpmc_nand_data->nand_setup = omap2_nand_gpmc_retime;
        gpmc_nand_device.dev.platform_data = gpmc_nand_data;
 
        err = gpmc_cs_request(gpmc_nand_data->cs, NAND_IO_SIZE,
@@ -100,7 +96,7 @@ int __init gpmc_nand_init(struct omap_nand_platform_data *_nand_data)
        }
 
         /* Set timings in GPMC */
-       err = omap2_nand_gpmc_retime();
+       err = omap2_nand_gpmc_retime(gpmc_nand_data);
        if (err < 0) {
                dev_err(dev, "Unable to set gpmc timings: %d\n", err);
                return err;
index d86d1ec..67fc506 100644 (file)
@@ -19,15 +19,11 @@ enum nand_io {
 };
 
 struct omap_nand_platform_data {
-       unsigned int            options;
        int                     cs;
-       int                     gpio_irq;
        struct mtd_partition    *parts;
        struct gpmc_timings     *gpmc_t;
        int                     nr_parts;
-       int                     (*nand_setup)(void);
-       int                     (*dev_ready)(struct omap_nand_platform_data *);
-       int                     dma_channel;
+       bool                    dev_ready;
        int                     gpmc_irq;
        enum nand_io            xfer_type;
        unsigned long           phys_base;