mirror of
https://github.com/torvalds/linux.git
synced 2024-11-10 06:01:57 +00:00
mtd: spinand: Add support for setting plane select bits
Add two flags for inserting the Plane Select bit into the column address during the write_to_cache and the read_from_cache operation. Add the SPINAND_HAS_PROG_PLANE_SELECT_BIT flag for serial NAND flash that require inserting the Plane Select bit into the column address during the write_to_cache operation. Add the SPINAND_HAS_READ_PLANE_SELECT_BIT flag for serial NAND flash that require inserting the Plane Select bit into the column address during the read_from_cache operation. Signed-off-by: Cheng Ming Lin <chengminglin@mxic.com.tw> Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com> Link: https://lore.kernel.org/linux-mtd/20240909092643.2434479-2-linchengming884@gmail.com
This commit is contained in:
parent
d53c35931b
commit
ca229bdbef
@ -408,6 +408,9 @@ static int spinand_read_from_cache_op(struct spinand_device *spinand,
|
||||
else
|
||||
rdesc = spinand->dirmaps[req->pos.plane].rdesc_ecc;
|
||||
|
||||
if (spinand->flags & SPINAND_HAS_READ_PLANE_SELECT_BIT)
|
||||
column |= req->pos.plane << fls(nanddev_page_size(nand));
|
||||
|
||||
while (nbytes) {
|
||||
ret = spi_mem_dirmap_read(rdesc, column, nbytes, buf);
|
||||
if (ret < 0)
|
||||
@ -489,6 +492,9 @@ static int spinand_write_to_cache_op(struct spinand_device *spinand,
|
||||
else
|
||||
wdesc = spinand->dirmaps[req->pos.plane].wdesc_ecc;
|
||||
|
||||
if (spinand->flags & SPINAND_HAS_PROG_PLANE_SELECT_BIT)
|
||||
column |= req->pos.plane << fls(nanddev_page_size(nand));
|
||||
|
||||
while (nbytes) {
|
||||
ret = spi_mem_dirmap_write(wdesc, column, nbytes, buf);
|
||||
if (ret < 0)
|
||||
|
@ -312,6 +312,8 @@ struct spinand_ecc_info {
|
||||
|
||||
#define SPINAND_HAS_QE_BIT BIT(0)
|
||||
#define SPINAND_HAS_CR_FEAT_BIT BIT(1)
|
||||
#define SPINAND_HAS_PROG_PLANE_SELECT_BIT BIT(2)
|
||||
#define SPINAND_HAS_READ_PLANE_SELECT_BIT BIT(3)
|
||||
|
||||
/**
|
||||
* struct spinand_ondie_ecc_conf - private SPI-NAND on-die ECC engine structure
|
||||
|
Loading…
Reference in New Issue
Block a user