u-boot-2016/include/linux/mtd
Masahiro Yamada 470c29d1c2 mtd: nand: add generic helpers to check, match, maximize ECC settings
Driver are responsible for setting up ECC parameters correctly.
Those include:
  - Check if ECC parameters specified (usually by DT) are valid
  - Meet the chip's ECC requirement
  - Maximize ECC strength if NAND_ECC_MAXIMIZE flag is set

The logic can be generalized by factoring out common code.

This commit adds 3 helpers to the NAND framework:
nand_check_ecc_caps - Check if preset step_size and strength are valid
nand_match_ecc_req - Match the chip's requirement
nand_maximize_ecc - Maximize the ECC strength

To use the helpers above, a driver needs to provide:
  - Data array of supported ECC step size and strength
  - A hook that calculates ECC bytes from the combination of
    step_size and strength.

By using those helpers, code duplication among drivers will be
reduced.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
Signed-off-by: Boris Brezillon <boris.brezillon@free-electrons.com>

[Linux commit: 2c8f8afa7f92acb07641bf95b940d384ed1d0294]
2017-11-29 00:28:59 +09:00
..
bbm.h mtd, ubi, ubifs: resync with Linux-3.14 2014-08-25 19:25:55 -04:00
concat.h include/linux/mtd: Update copyright notices 2015-11-12 13:19:03 -05:00
doc2000.h include/linux/mtd: Update copyright notices 2015-11-12 13:19:03 -05:00
flashchip.h kbuild: force to define __UBOOT__ in all the C sources 2014-09-16 12:23:56 -04:00
fsl_upm.h Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00
fsmc_nand.h Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00
mtd.h mtd: add mtd_ooblayout_xxx() helper functions 2017-11-29 00:28:58 +09:00
nand.h mtd: nand: add generic helpers to check, match, maximize ECC settings 2017-11-29 00:28:59 +09:00
nand_bch.h mtd: nand: Sync with Linux v4.6 2016-06-03 20:27:48 -05:00
nand_ecc.h include/linux/mtd: Update copyright notices 2015-11-12 13:19:03 -05:00
ndfc.h
omap_elm.h mtd: nand: omap_elm: use macros for register definitions 2014-06-06 17:45:50 -04:00
omap_gpmc.h armv7: armv7: introduce set_gpmc_cs0 2016-07-22 14:46:11 -04:00
onenand.h linux/compat.h: rename from linux/mtd/compat.h 2012-04-30 16:54:51 +02:00
onenand_regs.h
partitions.h mtd, ubi, ubifs: resync with Linux-3.14 2014-08-25 19:25:55 -04:00
samsung_onenand.h Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00
st_smi.h Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00
ubi.h ubi,ubifs: sync with linux v4.2 2015-10-26 09:22:36 +01:00