u-boot/drivers/mtd/nand
Boris Brezillon 3d841b3214 mtd: nand: Fix data interface configuration logic
When changing from one data interface setting to another, one has to
ensure a specific sequence which is described in the ONFI spec.

One of these constraints is that the CE line has go high after a reset
before a command can be sent with the new data interface setting, which
is not guaranteed by the current implementation.

Rework the nand_reset() function and all the call sites to make sure the
CE line is asserted and released when required.

Also make sure to actually apply the new data interface setting on the
first die.

Signed-off-by: Boris Brezillon <boris.brezillon@free-electrons.com>
Fixes: d8e725dd8311 ("mtd: nand: automate NAND timings selection")
Reviewed-by: Sascha Hauer <s.hauer@pengutronix.de>
Tested-by: Marc Gonzalez <marc_gonzalez@sigmadesigns.com>
[Linux commit: 73f907fd5fa56b0066d199bdd7126bbd04f6cd7b]
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: Fix data interface configuration logic 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