mtd: nand: add NAND_BUSWIDTH_AUTO to autodetect bus width
authorMatthieu CASTET <matthieu.castet@parrot.com>
Tue, 6 Nov 2012 10:51:44 +0000 (11:51 +0100)
committerArtem Bityutskiy <artem.bityutskiy@linux.intel.com>
Mon, 3 Dec 2012 14:36:52 +0000 (16:36 +0200)
commit64b37b2a63eb2f80b65c7185f0013f8ffc637ae3
treeccc8cd81dbcbef0fb8d69856a00dfb795d78b80a
parent2fd71a294a0aac407ec69e04916dc28eb39c8ac0
mtd: nand: add NAND_BUSWIDTH_AUTO to autodetect bus width

The driver call nand_scan_ident in 8 bit mode, then
readid or onfi detection are done (and detect bus width).
The driver should update its bus width before calling nand_scan_tail.

This work because readid and onfi are read work 8 byte mode.

Note that nand_scan_ident send command (NAND_CMD_RESET, NAND_CMD_READID, NAND_CMD_PARAM), address and read data
The ONFI specificication is not very clear for x16 device if high byte of address should be driven to 0,
but according to [1] it should be ok to not drive it during autodetection.

[1]
3.3.2. Target Initialization

[...]
The Read ID and Read Parameter Page commands only use the lower 8-bits of the data bus.
The host shall not issue commands that use a word data width on x16 devices until the host
determines the device supports a 16-bit data bus width in the parameter page.

Signed-off-by: Matthieu CASTET <matthieu.castet@parrot.com>
Signed-off-by: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
drivers/mtd/nand/nand_base.c
include/linux/mtd/nand.h