]> git.baikalelectronics.ru Git - kernel.git/commit
mtd: at91: atmel_nand: add Programmable Multibit ECC controller support
authorJosh Wu <josh.wu@atmel.com>
Fri, 29 Jun 2012 09:47:55 +0000 (17:47 +0800)
committerDavid Woodhouse <David.Woodhouse@intel.com>
Fri, 6 Jul 2012 17:23:25 +0000 (18:23 +0100)
commitfa4074f9e4fa1dab2d02d9b0e9a7947045e2376c
tree7041d310f5dde2d745908a89418da814d28e8460
parent2743cd2ad0250a7555ce3be9d0366776c585be0a
mtd: at91: atmel_nand: add Programmable Multibit ECC controller support

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 address and size of
PMECC, PMECC error location controllers and ROM. And also needs to pass the
correction capability, the sector size and ROM lookup table offsets via dt.

This driver has been tested on AT91SAM9X5-EK and AT91SAM9N12-EK with JFFS2,
YAFFS2, UBIFS and mtd-utils.

Signed-off-by: Hong Xu <hong.xu@atmel.com>
Signed-off-by: Josh Wu <josh.wu@atmel.com>
Tested-by: Richard Genoud <richard.genoud@gmail.com>
Acked-by: Nicolas Ferre <nicolas.ferre@atmel.com>
Signed-off-by: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
drivers/mtd/nand/atmel_nand.c
drivers/mtd/nand/atmel_nand_ecc.h