blob: b42ad83cbc20c4221ce0790ed6251c6b0ec06769 [file] [log] [blame]
Greg Kroah-Hartmanb2441312017-11-01 15:07:57 +01001/* SPDX-License-Identifier: GPL-2.0 */
eric miaofe69af02008-02-14 15:48:23 +08002#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
Lei Wenf3c8cfc2011-07-14 20:44:33 -07008/*
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)
eric miaofe69af02008-02-14 15:48:23 +080021struct 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
Mike Rapoportf2710492009-02-17 13:54:47 +020029 /* allow platform code to keep OBM/bootloader defined NFC config */
30 int keep_config;
31
Lei Wenf3c8cfc2011-07-14 20:44:33 -070032 /* indicate how many chip selects will be used */
33 int num_cs;
34
Ezequiel Garcia776f2652013-11-14 18:25:28 -030035 /* use an flash-based bad block table */
36 bool flash_bbt;
37
Ezequiel Garcia5b3e5072014-05-14 14:58:08 -030038 /* requested ECC strength and ECC step size */
39 int ecc_strength, ecc_step_size;
40
Lei Wenf3c8cfc2011-07-14 20:44:33 -070041 const struct mtd_partition *parts[NUM_CHIP_SELECT];
42 unsigned int nr_parts[NUM_CHIP_SELECT];
eric miaofe69af02008-02-14 15:48:23 +080043};
Eric Miao9ae819a2008-06-02 15:22:03 +080044
45extern void pxa3xx_set_nand_info(struct pxa3xx_nand_platform_data *info);
eric miaofe69af02008-02-14 15:48:23 +080046#endif /* __ASM_ARCH_PXA3XX_NAND_H */