1 /*
2  * arch/arm/plat-omap/include/mach/nand.h
3  *
4  * Copyright (C) 2006 Micron Technology Inc.
5  *
6  * This program is free software; you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License version 2 as
8  * published by the Free Software Foundation.
9  */
10 
11 #include <plat/gpmc.h>
12 #include <linux/mtd/partitions.h>
13 
14 enum nand_io {
15 	NAND_OMAP_PREFETCH_POLLED = 0,	/* prefetch polled mode, default */
16 	NAND_OMAP_POLLED,		/* polled mode, without prefetch */
17 	NAND_OMAP_PREFETCH_DMA,		/* prefetch enabled sDMA mode */
18 	NAND_OMAP_PREFETCH_IRQ		/* prefetch enabled irq mode */
19 };
20 
21 struct omap_nand_platform_data {
22 	int			cs;
23 	struct mtd_partition	*parts;
24 	struct gpmc_timings	*gpmc_t;
25 	int			nr_parts;
26 	bool			dev_ready;
27 	enum nand_io		xfer_type;
28 	int			devsize;
29 	enum omap_ecc           ecc_opt;
30 	struct gpmc_nand_regs	reg;
31 };
32 
33 /* minimum size for IO mapping */
34 #define	NAND_IO_SIZE	4
35 
36 #if defined(CONFIG_MTD_NAND_OMAP2) || defined(CONFIG_MTD_NAND_OMAP2_MODULE)
37 extern int gpmc_nand_init(struct omap_nand_platform_data *d);
38 #else
39 static inline int gpmc_nand_init(struct omap_nand_platform_data *d)
40 {
41 	return 0;
42 }
43 #endif
44