linux-xiaomi-chiron/include/linux/mtd
Miquel Raynal 8878b126df mtd: nand: add ->exec_op() implementation
Introduce a new interface to instruct NAND controllers to send specific
NAND operations. The new interface takes the form of a single method
called ->exec_op(). This method is designed to replace ->cmd_ctrl(),
->cmdfunc() and ->read/write_byte/word/buf() hooks.

->exec_op() is passed a set of instructions describing the operation
to execute. Each instruction has a type (ADDR, CMD, DATA, WAITRDY)
and delay. The delay is here to help simple controllers wait enough
time between each instruction, advanced controllers with integrated
timings control can ignore these delays.

Controllers that natively support complex operations (operations
formed of several instructions) can use the NAND op parser
infrastructure. This infrastructure allows controller drivers to
describe the sequence of instructions they support (called
nand_op_pattern) and a hook for each of these supported sequences. The
core then tries to find the best match for a given NAND operation, and
calls the associated hook.

Various other helpers are also added to ease NAND controller drivers
writing.

This new interface should ease support of vendor specific operations
in that NAND manufacturer drivers now have a way to check if the
controller they are connected to supports a specific operation, and
complain or refuse to probe the NAND chip when that's not the case.

Suggested-by: Boris Brezillon <boris.brezillon@free-electrons.com>
Signed-off-by: Miquel Raynal <miquel.raynal@free-electrons.com>
Signed-off-by: Boris Brezillon <boris.brezillon@free-electrons.com>
2017-12-16 14:40:26 +01:00
..
bbm.h mtd: onenand: make onenand_scan_bbt() static 2016-01-23 14:00:16 -08:00
blktrans.h mtd_blktrans_ops->release() should return void 2013-05-05 21:31:22 -04:00
cfi.h mtd: cfi: deinline large functions 2015-05-27 12:42:16 -07:00
cfi_endian.h
concat.h
doc2000.h
flashchip.h
ftl.h
gen_probe.h
inftl.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
latch-addr-flash.h
lpc32xx_mlc.h
lpc32xx_slc.h
map.h mtd: avoid stack overflow in MTD CFI code 2016-04-03 16:46:24 -07:00
mtd.h mtd: remove the get_unmapped_area method 2017-11-13 21:39:18 +01:00
mtdram.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
nand-gpio.h This pull request contains the following core changes: 2017-11-22 20:46:06 -10:00
nand_bch.h mtd: nand: simplify nand_bch_init() usage 2016-03-07 16:23:09 -08:00
nand_ecc.h
ndfc.h
nftl.h mtd: nftl: kill unused oobinfo field 2016-01-26 10:27:34 -08:00
onenand.h mtd: onenand: switch to mtd_ooblayout_ops 2016-05-05 23:51:49 +02:00
onenand_regs.h
partitions.h mtd: partitions: add support for partition parsers 2017-06-22 13:13:09 -07:00
pfow.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
physmap.h mtd: physmap: add const qualifiers 2013-04-05 13:02:40 +01:00
pismo.h
plat-ram.h mtd: plat-ram: add const quilifiers 2013-04-05 13:02:33 +01:00
qinfo.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
rawnand.h mtd: nand: add ->exec_op() implementation 2017-12-16 14:40:26 +01:00
sh_flctl.h mtd: nand: Rename nand.h into rawnand.h 2017-08-13 10:11:49 +02:00
sharpsl.h Merge branch 'nand/rename-header-file' of git://git.infradead.org/l2-mtd into nand/next 2017-08-23 17:00:12 +02:00
spear_smi.h Shiraz has moved 2014-04-18 16:40:08 -07:00
spi-nor.h mtd: spi-nor: add spi_nor_init() function 2017-10-10 18:19:42 +02:00
super.h
ubi.h UBI: Add initial support for scatter gather 2015-01-28 16:04:26 +01:00
xip.h mtd: only use __xipram annotation when XIP_KERNEL is set 2017-08-15 14:00:44 +02:00