linux/drivers/mtd/nand
Philip Avinash 62116e5171 mtd: nand: omap2: Support for hardware BCH error correction.
ELM module can be used for hardware error correction of BCH 4 & 8 bit.
ELM module functionality is verified by checking the availability of
handle for ELM module in device tree. Hence supporting
1. ELM module available, BCH error correction done by ELM module. Also
support read & write page in one shot by adding custom read_page and
write_page methods. This helps in optimizing code for NAND flashes with
page size less than 4 KB.
2. If ELM module not available fall back to software BCH error
correction support.

New structure member is added to omap_nand_info
1. "is_elm_used" to know the status of whether the ELM module is used for
   error correction or not.
2. "elm_dev" device pointer to elm device on detection of ELM module.

Also being here update the device tree documentation of gpmc-nand for
adding optional property elm_id.

Note:
ECC layout uses 1 extra bytes for 512 byte of data to handle erased
pages. Extra byte programmed to zero for programmed pages. Also BCH8
requires 14 byte ecc to maintain compatibility with RBL ECC layout.
This results a common ecc layout across RBL, U-boot & Linux with BCH8.

Signed-off-by: Philip Avinash <avinashphilip@ti.com>
Signed-off-by: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
2013-02-04 09:26:29 +02:00
..
bcm47xxnflash Drivers: mtd: remove __dev* attributes. 2013-01-03 15:57:03 -08:00
gpmi-nand mtd: gpmi: Always report ECC stats and return max_bitflips 2013-02-04 09:26:28 +02:00
alauda.c mtd: driver _read() returns max_bitflips; mtd_read() returns -EUCLEAN 2012-05-13 23:14:23 -05:00
ams-delta.c mtd: remove use of __devexit 2012-11-22 12:07:03 +02:00
atmel_nand_ecc.h mtd: at91: atmel_nand: add Programmable Multibit ECC controller support 2012-07-06 18:23:25 +01:00
atmel_nand.c Drivers: mtd: remove __dev* attributes. 2013-01-03 15:57:03 -08:00
au1550nd.c mtd: remove use of __devexit 2012-11-22 12:07:03 +02:00
bf5xx_nand.c mtd: remove use of __devexit 2012-11-22 12:07:03 +02:00
cafe_nand.c mtd: remove use of __devexit 2012-11-22 12:07:03 +02:00
cmx270_nand.c mtd: kill MTD_NAND_VERIFY_WRITE 2012-09-29 15:00:46 +01:00
cs553x_nand.c mtd cs553x_nand: Initialise ecc.strength before nand_scan() 2012-12-03 16:36:34 +02:00
davinci_nand.c mtd: davinci_nand: fix modular build with CONFIG_OF=y 2013-02-04 09:26:27 +02:00
denali_dt.c mtd: remove use of __devexit 2012-11-22 12:07:03 +02:00
denali_pci.c mtd: remove use of __devexit 2012-11-22 12:07:03 +02:00
denali.c mtd: denali: split the generic driver and PCI layer 2012-11-15 15:37:46 +02:00
denali.h mtd: denali: add a DT driver 2012-11-15 15:37:46 +02:00
diskonchip.c mtd: diskonchip: don't warn about ARM architecture 2012-11-16 10:57:38 +02:00
docg4.c mtd: nand/docg4: fix and improve read of factory bbt 2012-12-12 17:03:42 +02:00
fsl_elbc_nand.c mtd: remove use of __devinit 2012-11-22 12:07:03 +02:00
fsl_ifc_nand.c mtd: remove use of __devinit 2012-11-22 12:07:03 +02:00
fsl_upm.c Drivers: mtd: remove __dev* attributes. 2013-01-03 15:57:03 -08:00
fsmc_nand.c Drivers: mtd: remove __dev* attributes. 2013-01-03 15:57:03 -08:00
gpio.c mtd: nand/gpio: use io{read,write}*_rep accessors 2012-12-13 13:39:44 +02:00
h1910.c - More robust parsing especially of xattr data in JFFS2 2012-06-01 16:55:42 -07:00
jz4740_nand.c Drivers: mtd: remove __dev* attributes. 2013-01-03 15:57:03 -08:00
Kconfig MTD pull for 3.8 2012-12-19 12:47:41 -08:00
lpc32xx_mlc.c mtd: remove use of __devexit 2012-11-22 12:07:03 +02:00
lpc32xx_slc.c mtd: remove use of __devexit 2012-11-22 12:07:03 +02:00
Makefile MTD pull for 3.8 2012-12-19 12:47:41 -08:00
mpc5121_nfc.c mtd: remove use of __devexit 2012-11-22 12:07:03 +02:00
mxc_nand.c mtd: mxc_nand: compress ID info for send_read_id_v3 2013-02-04 09:26:29 +02:00
nand_base.c mtd: nand: typo in nand_id_has_period() comments 2012-12-13 13:39:45 +02:00
nand_bbt.c mtd: nand: use NAND_BBT_SCAN_MAXBLOCKS 2012-09-29 15:54:10 +01:00
nand_bch.c mtd: cleanup style on pr_debug messages 2011-09-11 15:02:16 +03:00
nand_ecc.c mtd: spelling, capitalization, uniformity 2011-09-11 15:02:13 +03:00
nand_ids.c mtd: nand: change "AMD" manuf. ID to "AMD/Spansion" 2012-07-06 18:17:08 +01:00
nandsim.c mtd: rename random32() to prandom_u32() 2013-02-04 09:26:28 +02:00
ndfc.c mtd: remove use of __devexit 2012-11-22 12:07:03 +02:00
nuc900_nand.c mtd: remove use of __devexit 2012-11-22 12:07:03 +02:00
omap2.c mtd: nand: omap2: Support for hardware BCH error correction. 2013-02-04 09:26:29 +02:00
orion_nand.c mtd: remove use of __devexit 2012-11-22 12:07:03 +02:00
pasemi_nand.c mtd: remove use of __devexit 2012-11-22 12:07:03 +02:00
plat_nand.c mtd: remove use of __devexit 2012-11-22 12:07:03 +02:00
ppchameleonevb.c mtd: do not use plain 0 as NULL 2012-03-27 00:53:20 +01:00
pxa3xx_nand.c UAPI Disintegration 2012-10-09 2012-10-09 15:04:25 +01:00
r852.c mtd: kill MTD_NAND_VERIFY_WRITE 2012-09-29 15:00:46 +01:00
r852.h mtd: r852: remove useless pci powerup/down from suspend/resume routines 2010-10-25 01:32:21 +01:00
rtc_from4.c mtd: flash drivers set ecc strength 2012-03-27 00:56:46 +01:00
s3c2410.c MTD pull for 3.8 2012-12-19 12:47:41 -08:00
sh_flctl.c MTD pull for 3.8 2012-12-19 12:47:41 -08:00
sharpsl.c mtd: remove use of __devexit 2012-11-22 12:07:03 +02:00
sm_common.c mtd: nand: kill NAND_NO_AUTOINCR option 2012-05-13 23:15:38 -05:00
sm_common.h mtd: sm_common: split smartmedia and xD table 2010-05-14 01:03:46 +01:00
socrates_nand.c mtd: remove use of __devexit 2012-11-22 12:07:03 +02:00
tmio_nand.c mtd: kill MTD_NAND_VERIFY_WRITE 2012-09-29 15:00:46 +01:00
txx9ndfmc.c mtd: kill MTD_NAND_VERIFY_WRITE 2012-09-29 15:00:46 +01:00
xway_nand.c mtd: lantiq: Add NAND support on Lantiq XWAY SoC. 2012-09-29 15:05:18 +01:00