mtd: lpc32xx_nand: NAND driver changes
authorKevin Wells <wellsk40@gmail.com>
Fri, 4 Mar 2011 20:37:45 +0000 (12:37 -0800)
committerKevin Wells <wellsk40@gmail.com>
Fri, 4 Mar 2011 20:37:45 +0000 (12:37 -0800)
commitcfe362200c60d0973a6fac58543e521eb0a4b589
tree1818a373811cb79f0fb713361971a545fb8f3992
parent78784a4d0b27d01165787c78a989ea078edb09b5
mtd: lpc32xx_nand: NAND driver changes

This is a major update to the LPC32xx NAND driver. The specific
changes are listed below:

- Removed 16 bit NAND support, the chip only supports 8-bit
- Tweaked NAND timing for the Phytec board
- Added support for Bad Block Tables (bbts) and enabled them by default.
  BBTs should help reduce boot time for systems with NAND
- Lots of code cleanup, removed un-necessary code and includes. Fixed
  sparse warnings
- Added more comments in the driver on what is being done, as their are
  some special requirements that aren't easily apparent
- Switch driver model to hardware ECC syndrome model
- Changed how DMA ECC handling works for reads and writes
- Some general optimizations related to data transfer
- Improved error checks, handling, and error messages
- Switch DMA IRQ event handler to wait with timeout
- Added a polled mode for DMA transfers. Polled mode should increase
  read/write speed on baords with very fast NAND or small page NAND
  If polled mode fails, it will switch to IRQ mode.
- Fixed sizing issues with transfer requests and what DMA used
- Slight re-ordering of NAND/DMA state code to get some better
  optimizations
- Fixed an issue where the DMA would complete, but there would still
  be data in the NAND controller
- Increased ECC read count for writes-only, set ECC read count for
  reads to 1

Signed-off-by: Kevin Wells <wellsk40@gmail.com>
arch/arm/mach-lpc32xx/ea3250.c
arch/arm/mach-lpc32xx/fdi3250.c
arch/arm/mach-lpc32xx/include/mach/board.h
arch/arm/mach-lpc32xx/phy3250.c
drivers/mtd/nand/lpc32xx_nand.c