mtd: nand: automate NAND timings selection
authorBoris Brezillon <boris.brezillon@free-electrons.com>
Tue, 21 Nov 2017 17:38:19 +0000 (02:38 +0900)
committerMasahiro Yamada <yamada.masahiro@socionext.com>
Tue, 28 Nov 2017 15:28:58 +0000 (00:28 +0900)
commit27c4792cd233ba68fa15aaa885d0f53db7b5728a
tree04b6b15add4d04cc93d262385353241df1fccb2e
parentb893e83330662393ff40d4dc8cb2733599beb26a
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>
drivers/mtd/nand/nand_base.c
include/linux/mtd/nand.h