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