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