[PATCH 5/7] atmel_nand: make chip_delay configurable

Eric Bénard eric at eukrea.com
Sat Dec 7 04:36:58 EST 2013


this is usefull for custom boards with different NAND flashs
(for informations u-boot defaults chip_delay to 75)

Signed-off-by: Eric Bénard <eric at eukrea.com>
---
 arch/arm/mach-at91/include/mach/board.h | 1 +
 drivers/mtd/nand/atmel_nand.c           | 5 ++++-
 2 files changed, 5 insertions(+), 1 deletion(-)

diff --git a/arch/arm/mach-at91/include/mach/board.h b/arch/arm/mach-at91/include/mach/board.h
index aa0fdae..4e6fa8b 100644
--- a/arch/arm/mach-at91/include/mach/board.h
+++ b/arch/arm/mach-at91/include/mach/board.h
@@ -64,6 +64,7 @@ struct atmel_nand_data {
 	u8		ecc_mode;	/* NAND_ECC_* */
 	u8		on_flash_bbt;	/* Use flash based bbt */
 	u8		bus_on_d0;
+	int		chip_delay;
 
 	u8		pmecc_corr_cap;
 	u16		pmecc_sector_size;
diff --git a/drivers/mtd/nand/atmel_nand.c b/drivers/mtd/nand/atmel_nand.c
index 658ae52..2ff7427 100644
--- a/drivers/mtd/nand/atmel_nand.c
+++ b/drivers/mtd/nand/atmel_nand.c
@@ -1161,7 +1161,10 @@ static int __init atmel_nand_probe(struct device_d *dev)
 		nand_chip->ecc.mode = NAND_ECC_HW;
 	}
 
-	nand_chip->chip_delay = 20;		/* 20us command delay time */
+	if (host->board->chip_delay > 0)
+		nand_chip->chip_delay = host->board->chip_delay;
+	else
+		nand_chip->chip_delay = 20;		/* 20us command delay time */
 
 	if (host->board->bus_width_16) {	/* 16-bit bus width */
 		nand_chip->options |= NAND_BUSWIDTH_16;
-- 
1.8.3.1




More information about the barebox mailing list