[PATCH v5 1/2] mtd: spinand: Add support for setting plane select bits

Miquel Raynal miquel.raynal at bootlin.com
Fri Aug 30 08:55:04 PDT 2024


Hi ChengMing,

linchengming884 at gmail.com wrote on Fri, 30 Aug 2024 18:03:09 +0800:

> From: Cheng Ming Lin <chengminglin at mxic.com.tw>
> 
> 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_PP_PLANE_SELECT_BIT flag for serial NAND flash

This flag has been renamed :)

> 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 at mxic.com.tw>
> ---
>  drivers/mtd/nand/spi/core.c | 6 ++++++
>  include/linux/mtd/spinand.h | 2 ++
>  2 files changed, 8 insertions(+)
> 
> diff --git a/drivers/mtd/nand/spi/core.c b/drivers/mtd/nand/spi/core.c
> index e0b6715e5dfe..e7b592cdbb4c 100644
> --- a/drivers/mtd/nand/spi/core.c
> +++ b/drivers/mtd/nand/spi/core.c
> @@ -386,6 +386,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));

Isn't there any better way to know what the bit position is?

Thanks,
Miquèl



More information about the linux-mtd mailing list