u-boot/drivers/mtd/nand
Boris Brezillon 27c4792cd2 mtd: nand: automate NAND timings selection
The NAND framework provides several helpers to query timing modes supported
by a NAND chip, but this implies that all NAND controller drivers have
to implement the same timings selection dance. Also currently NAND
devices can be resetted at arbitrary places which also resets the timing
for ONFI chips to timing mode 0.

Provide a common logic to select the best timings based on ONFI or
->onfi_timing_mode_default information. Hook this into nand_reset()
to make sure the new timing is applied each time during a reset.

NAND controller willing to support timings adjustment should just
implement the ->setup_data_interface() method.

Signed-off-by: Boris Brezillon <boris.brezillon@free-electrons.com>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
[Linux commit: d8e725dd831186a3595036b2b1df9f68cbc6efa3]
Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
2017-11-29 00:28:58 +09:00
..
am335x_spl_bch.c mtd: nand: Consolidate nand spl loaders implementation 2017-05-08 11:57:26 -04:00
arasan_nfc.c nand: arasan_nfc: Clear ecc on bit while sending read command 2016-11-15 15:27:57 +01:00
atmel_nand.c mtd: replace MTDDEBUG() with pr_debug() 2017-10-23 14:07:26 -04:00
atmel_nand_ecc.h atmel_nand_ecc: update pmecc registers according to sama5d2 chip 2016-02-02 11:49:10 +01:00
davinci_nand.c mtd: replace MTDDEBUG() with pr_debug() 2017-10-23 14:07:26 -04:00
denali.c mtd: nand: denali: allow to override corrupted revision register 2017-09-18 20:26:00 +09:00
denali.h mtd: nand: denali_dt: add clock support 2017-10-15 22:32:25 +09:00
denali_dt.c mtd: nand: denali_dt: add clock support 2017-10-15 22:32:25 +09:00
denali_spl.c mtd: nand: Sync with Linux v4.6 2016-06-03 20:27:48 -05:00
fsl_elbc_nand.c treewide: replace #include <asm/errno.h> with <linux/errno.h> 2016-09-23 17:55:42 -04:00
fsl_elbc_spl.c Coding Style cleanup: replace leading SPACEs by TABs 2013-10-14 16:06:54 -04:00
fsl_ifc_nand.c mtd: nand: fsl-ifc: fix support of multiple NAND devices 2017-11-14 08:33:20 -08:00
fsl_ifc_spl.c powerpc/mpc85xx: SECURE BOOT- Enable chain of trust in SPL 2016-07-21 11:09:23 -07:00
fsl_upm.c treewide: replace #include <asm/errno.h> with <linux/errno.h> 2016-09-23 17:55:42 -04:00
fsmc_nand.c mtd: nand: drv: use get_nand_dev_by_index() 2017-07-11 22:41:49 -04:00
kb9202_nand.c mtd: nand: Add+use mtd_to/from_nand and nand_get/set_controller_data 2016-06-03 20:27:48 -05:00
Kconfig omap2: nand: Make NAND_OMAP_GPMC_PREFETCH default 2017-11-17 07:44:13 -05:00
kirkwood_nand.c mtd: nand: Add+use mtd_to/from_nand and nand_get/set_controller_data 2016-06-03 20:27:48 -05:00
kmeter1_nand.c Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00
lpc32xx_nand_mlc.c treewide: replace with error() with pr_err() 2017-10-04 11:59:44 -04:00
lpc32xx_nand_slc.c treewide: replace #include <asm/errno.h> with <linux/errno.h> 2016-09-23 17:55:42 -04:00
Makefile mtd: nand: denali_dt: add a DT driver 2017-08-30 09:03:11 +09:00
mxc_nand.c mtd: replace MTDDEBUG() with pr_debug() 2017-10-23 14:07:26 -04:00
mxc_nand.h Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00
mxc_nand_spl.c mtd: nand: Sync with Linux v4.6 2016-06-03 20:27:48 -05:00
mxs_nand.c imx: reorganize IMX code as other SOCs 2017-07-12 10:17:44 +02:00
mxs_nand_spl.c mtd: nand: mxs_nand_spl: Fix to remove twise 'NAND' print 2017-01-04 16:56:44 +01:00
nand.c mtd: nand: make nand_info array static 2017-07-11 22:41:54 -04:00
nand_base.c mtd: nand: automate NAND timings selection 2017-11-29 00:28:58 +09:00
nand_bbt.c mtd: nand: Sync with Linux v4.6 2016-06-03 20:27:48 -05:00
nand_bch.c mtd: replace MTDDEBUG() with pr_debug() 2017-10-23 14:07:26 -04:00
nand_ecc.c treewide: replace #include <asm/errno.h> with <linux/errno.h> 2016-09-23 17:55:42 -04:00
nand_ids.c mtd: nand: add support for the TC58NVG2S0H chip 2016-11-28 15:10:30 -05:00
nand_plat.c mtd: nand: Add+use mtd_to/from_nand and nand_get/set_controller_data 2016-06-03 20:27:48 -05:00
nand_spl_load.c Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00
nand_spl_loaders.c mtd: nand: Consolidate nand spl loaders implementation 2017-05-08 11:57:26 -04:00
nand_spl_simple.c mtd: nand: Consolidate nand spl loaders implementation 2017-05-08 11:57:26 -04:00
nand_timings.c mtd: nand: Expose data interface for ONFI mode 0 2017-11-29 00:28:58 +09:00
nand_util.c treewide: replace #include <asm/errno.h> with <linux/errno.h> 2016-09-23 17:55:42 -04:00
ndfc.c mtd: nand: Sync with Linux v4.6 2016-06-03 20:27:48 -05:00
omap_elm.c treewide: replace #include <asm/errno.h> with <linux/errno.h> 2016-09-23 17:55:42 -04:00
omap_gpmc.c cmd: nand: abstract global variable usage for dm conversion 2017-07-11 22:41:44 -04:00
pxa3xx_nand.c treewide: replace with error() with pr_err() 2017-10-04 11:59:44 -04:00
pxa3xx_nand.h mtd: nand: Add mvebu (PXA / AXP / A38x) NAND device driver 2015-08-25 22:53:58 -05:00
sunxi_nand.c dm: gpio: Add live tree support 2017-06-01 07:03:10 -06:00
sunxi_nand_spl.c nand: sunxi: Fix modulo by zero error 2017-04-07 11:23:45 +05:30
tegra_nand.c dm: gpio: Add live tree support 2017-06-01 07:03:10 -06:00
tegra_nand.h Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00
vf610_nfc.c mtd: nand: Sync with Linux v4.6 2016-06-03 20:27:48 -05:00
zynq_nand.c mtd: nand: drv: use get_nand_dev_by_index() 2017-07-11 22:41:49 -04:00