2007-12-12 05:50:17 +08:00
|
|
|
/*
|
2008-08-05 23:14:15 +08:00
|
|
|
* arch/arm/plat-omap/include/mach/nand.h
|
2007-12-12 05:50:17 +08:00
|
|
|
*
|
|
|
|
* Copyright (C) 2006 Micron Technology Inc.
|
|
|
|
*
|
|
|
|
* This program is free software; you can redistribute it and/or modify
|
|
|
|
* it under the terms of the GNU General Public License version 2 as
|
|
|
|
* published by the Free Software Foundation.
|
|
|
|
*/
|
|
|
|
|
2011-01-28 18:12:08 +08:00
|
|
|
#include <plat/gpmc.h>
|
2007-12-12 05:50:17 +08:00
|
|
|
#include <linux/mtd/partitions.h>
|
|
|
|
|
2011-01-28 18:12:04 +08:00
|
|
|
enum nand_io {
|
|
|
|
NAND_OMAP_PREFETCH_POLLED = 0, /* prefetch polled mode, default */
|
|
|
|
NAND_OMAP_POLLED, /* polled mode, without prefetch */
|
2011-01-28 18:12:06 +08:00
|
|
|
NAND_OMAP_PREFETCH_DMA, /* prefetch enabled sDMA mode */
|
|
|
|
NAND_OMAP_PREFETCH_IRQ /* prefetch enabled irq mode */
|
2011-01-28 18:12:04 +08:00
|
|
|
};
|
|
|
|
|
2007-12-12 05:50:17 +08:00
|
|
|
struct omap_nand_platform_data {
|
|
|
|
unsigned int options;
|
|
|
|
int cs;
|
|
|
|
int gpio_irq;
|
|
|
|
struct mtd_partition *parts;
|
2010-02-16 02:03:33 +08:00
|
|
|
struct gpmc_timings *gpmc_t;
|
2007-12-12 05:50:17 +08:00
|
|
|
int nr_parts;
|
2010-02-16 02:03:33 +08:00
|
|
|
int (*nand_setup)(void);
|
2007-12-12 05:50:17 +08:00
|
|
|
int (*dev_ready)(struct omap_nand_platform_data *);
|
|
|
|
int dma_channel;
|
2011-01-28 18:12:06 +08:00
|
|
|
int gpmc_irq;
|
2011-01-28 18:12:04 +08:00
|
|
|
enum nand_io xfer_type;
|
2010-02-16 02:03:33 +08:00
|
|
|
unsigned long phys_base;
|
|
|
|
int devsize;
|
2011-01-28 18:12:08 +08:00
|
|
|
enum omap_ecc ecc_opt;
|
2007-12-12 05:50:17 +08:00
|
|
|
};
|
2010-02-16 02:03:33 +08:00
|
|
|
|
2010-07-09 17:14:45 +08:00
|
|
|
/* minimum size for IO mapping */
|
|
|
|
#define NAND_IO_SIZE 4
|
2010-02-16 02:03:33 +08:00
|
|
|
|
2010-04-20 14:33:26 +08:00
|
|
|
#if defined(CONFIG_MTD_NAND_OMAP2) || defined(CONFIG_MTD_NAND_OMAP2_MODULE)
|
2010-02-16 02:03:33 +08:00
|
|
|
extern int gpmc_nand_init(struct omap_nand_platform_data *d);
|
2010-04-20 14:33:26 +08:00
|
|
|
#else
|
|
|
|
static inline int gpmc_nand_init(struct omap_nand_platform_data *d)
|
|
|
|
{
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
#endif
|