1 #ifndef __ASM_ARCH_PXA3XX_NAND_H
2 #define __ASM_ARCH_PXA3XX_NAND_H
3 
4 #include <linux/mtd/mtd.h>
5 #include <linux/mtd/partitions.h>
6 
7 /*
8  * Current pxa3xx_nand controller has two chip select which
9  * both be workable.
10  *
11  * Notice should be taken that:
12  * When you want to use this feature, you should not enable the
13  * keep configuration feature, for two chip select could be
14  * attached with different nand chip. The different page size
15  * and timing requirement make the keep configuration impossible.
16  */
17 
18 /* The max num of chip select current support */
19 #define NUM_CHIP_SELECT		(2)
20 struct pxa3xx_nand_platform_data {
21 
22 	/* the data flash bus is shared between the Static Memory
23 	 * Controller and the Data Flash Controller,  the arbiter
24 	 * controls the ownership of the bus
25 	 */
26 	int	enable_arbiter;
27 
28 	/* allow platform code to keep OBM/bootloader defined NFC config */
29 	int	keep_config;
30 
31 	/* indicate how many chip selects will be used */
32 	int	num_cs;
33 
34 	/* use an flash-based bad block table */
35 	bool	flash_bbt;
36 
37 	/* requested ECC strength and ECC step size */
38 	int ecc_strength, ecc_step_size;
39 
40 	const struct mtd_partition		*parts[NUM_CHIP_SELECT];
41 	unsigned int				nr_parts[NUM_CHIP_SELECT];
42 };
43 
44 extern void pxa3xx_set_nand_info(struct pxa3xx_nand_platform_data *info);
45 #endif /* __ASM_ARCH_PXA3XX_NAND_H */
46