at91: atmel_nand: Update driver to support Programmable Multibit ECC controller
authorWu, Josh <Josh.wu@atmel.com>
Thu, 23 Aug 2012 00:05:36 +0000 (00:05 +0000)
committerAlbert ARIBAUD <albert.u.boot@aribaud.net>
Sat, 1 Sep 2012 15:06:14 +0000 (17:06 +0200)
commitbdfd59aa0f00ea86b1ecf44303790eea355b8585
treede4a131b7664e0c7aa984995ab0aad104ef8c94d
parentae79794e544c5079c85596d01022b92c30a7eeb1
at91: atmel_nand: Update driver to support Programmable Multibit ECC controller

The Programmable Multibit ECC (PMECC) controller is a programmable binary
BCH(Bose, Chaudhuri and Hocquenghem) encoder and decoder. This controller
can be used to support both SLC and MLC NAND Flash devices. It supports to
generate ECC to correct 2, 4, 8, 12 or 24 bits of error per sector of data.

To use PMECC in this driver, the user needs to set the PMECC correction
capability, the sector size and ROM lookup table offsets in board config file.

This driver is ported from Linux kernel atmel_nand PMECC patch. The main difference
is in this version it uses registers structure access hardware instead of using macros.
It is tested in 9x5 serial boards.

Signed-off-by: Josh Wu <josh.wu@atmel.com>
[rebase]
Signed-off-by: Andreas Bießmann <andreas.devel@googlemail.com>
doc/README.atmel_pmecc [new file with mode: 0644]
drivers/mtd/nand/atmel_nand.c
drivers/mtd/nand/atmel_nand_ecc.h