u-boot/drivers
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
..
adc treewide: replace with error() with pr_err() 2017-10-04 11:59:44 -04:00
ata scsi: ceva: Start port in probe 2017-11-03 09:31:27 +01:00
bios_emulator printk: collect printk stuff into <linux/printk.h> with loglevel support 2017-10-04 10:31:17 -04:00
block blk: Remove various places that do flush cache after read 2017-09-15 08:05:10 -04:00
bootcount bootcount: add support for bootcounter on EXT filesystem 2017-11-20 09:58:31 +01:00
clk rockchip: clk: rk3399: change extract_bits to bitfield_extract 2017-11-26 00:39:08 +01:00
core dm: core: Correct address cast in dev_read_addr_ptr() 2017-11-16 18:45:05 -07:00
cpu dm: core: Update device_bind_driver_to_node() to use ofnode 2017-06-01 07:03:08 -06:00
crypto crypto/fsl: fix obj-yy in Makefile 2017-09-04 09:02:07 -04:00
ddr armv8: ls1088a: Add NXP LS1088A SoC support 2017-09-11 08:00:13 -07:00
demo dm: core: Replace of_offset with accessor 2017-02-08 06:12:14 -07:00
dfu treewide: replace with error() with pr_err() 2017-10-04 11:59:44 -04:00
dma treewide: replace with error() with pr_err() 2017-10-04 11:59:44 -04:00
firmware dm: core: Rename of_device_is_compatible() 2017-06-01 07:03:06 -06:00
fpga fpga: xilinx: Avoid using local intermediate buffer 2017-08-02 09:11:52 +02:00
gpio bitops: collect BIT macros to include/linux/bitops.h 2017-11-29 00:28:57 +09:00
i2c Merge git://www.denx.de/git/u-boot-imx 2017-11-27 07:22:11 -05:00
input env: Rename getenv/_f() to env_get() 2017-08-16 08:30:24 -04:00
led dm: core: Update device_bind_driver_to_node() to use ofnode 2017-06-01 07:03:08 -06:00
mailbox dm: mailbox: Update uclass to support livetree 2017-06-01 07:03:15 -06:00
memory memory: Move TI_AEMIF config to KCONFIG 2016-04-18 17:11:43 -04:00
misc stm32: fix STMicroelectronics copyright 2017-11-06 09:51:01 -05:00
mmc mmc: arm_pl180_mmci: add .getcd callback 2017-11-17 07:44:13 -05:00
mtd mtd: nand: add generic helpers to check, match, maximize ECC settings 2017-11-29 00:28:59 +09:00
net net: phy: Add Amlogic Meson GXL Internal PHY support 2017-11-17 07:44:13 -05:00
nvme nvme: Remove dead codes in nvme_setup_io_queues() 2017-09-03 15:30:34 -04:00
pch dm: Use dm_scan_fdt_dev() directly where possible 2016-07-27 14:15:54 -06:00
pci dm: pci: change bus number register setting compliant with Linux 2017-11-17 10:53:45 -05:00
pcmcia Kconfig; Drop CONFIG_IDE_TI_CARDBUS and associated driver 2017-08-11 15:41:51 -04:00
phy sti: fix STMicroelectronics copyright 2017-11-06 09:51:01 -05:00
pinctrl Merge git://www.denx.de/git/u-boot-imx 2017-11-27 07:22:11 -05:00
power treewide: replace with error() with pr_err() 2017-10-04 11:59:44 -04:00
pwm pwm: imx: Enable PWM support on i.MX53 2017-11-20 09:58:31 +01:00
qe blk: Remove various places that do flush cache after read 2017-09-15 08:05:10 -04:00
ram stm32: fix STMicroelectronics copyright 2017-11-06 09:51:01 -05:00
remoteproc dm: core: Replace of_offset with accessor 2017-02-08 06:12:14 -07:00
reset stm32: fix STMicroelectronics copyright 2017-11-06 09:51:01 -05:00
rtc rtc: add support for s35392a 2017-11-20 09:58:31 +01:00
scsi blk: dm: make blk_create_device() take a number of block instead of a size 2017-09-11 21:43:58 -06:00
serial serial: nulldev: Implement "pending" function to fix tstc return "true" 2017-11-17 07:44:13 -05:00
soc Use correct spelling of "U-Boot" 2016-02-06 12:00:59 +01:00
sound dm: gpio: Add live tree support 2017-06-01 07:03:10 -06:00
spi rockchip: spi: the symbol for Hertz is Hz 2017-11-21 23:57:23 +01:00
spmi dm: Rename dev_addr..() functions 2017-06-01 07:03:01 -06:00
sysreset rockchip: sysreset: update Makefile to work with merged sysreset driver 2017-11-21 23:57:23 +01:00
thermal thermal: ti-bandgap: Add support for temperature sensor 2017-11-21 08:03:38 -05:00
timer sti: fix STMicroelectronics copyright 2017-11-06 09:51:01 -05:00
tpm tpm: st33zp24: fix STMicroelectronics copyright 2017-11-06 09:51:01 -05:00
usb mvebu: usb: xhci: a38x support 2017-11-16 11:45:20 +01:00
video video: sunxi: de2: fix SimpleFB node creation when HDMI not initialized 2017-11-06 13:43:28 +05:30
watchdog wdt: Update uclass to make clear that the timeout is in ms 2017-08-13 15:17:34 -04:00
Kconfig bootcount: add support for bootcounter on EXT filesystem 2017-11-20 09:58:31 +01:00
Makefile thermal: ti-bandgap: Add support for temperature sensor 2017-11-21 08:03:38 -05:00