[PATCH] mtd: spinand: winbond: add support for W25N04LV

Dominique Martinet asmadeus at codewreck.org
Sun Aug 16 04:19:02 PDT 2026


Huasin Liao wrote on Sun, Aug 16, 2026 at 05:31:24PM +0800:
> diff --git a/drivers/mtd/nand/spi/winbond.c b/drivers/mtd/nand/spi/winbond.c
> index 9b78c1e6cbc9..892220a12b22 100644
> --- a/drivers/mtd/nand/spi/winbond.c
> +++ b/drivers/mtd/nand/spi/winbond.c
> @@ -345,6 +345,35 @@ static const struct mtd_ooblayout_ops w25n02kv_ooblayout = {
>  	.free = w25n02kv_ooblayout_free,
>  };
>  
> +static int w25n04lv_ooblayout_ecc(struct mtd_info *mtd, int section,
> +				  struct mtd_oob_region *region)
> +{
> +	if (section > 7)
> +		return -ERANGE;
> +
> +	region->offset = 128 + (16 * section);
> +	region->length = 13;
> +
> +	return 0;
> +}
> +
> +static int w25n04lv_ooblayout_free(struct mtd_info *mtd, int section,
> +				   struct mtd_oob_region *region)
> +{
> +	if (section > 7)
> +		return -ERANGE;
> +
> +	region->offset = (16 * section) + 2;
> +	region->length = 14;
> +
> +	return 0;
> +}
> +
> +static const struct mtd_ooblayout_ops w25n04lv_ooblayout = {
> +	.ecc = w25n04lv_ooblayout_ecc,
> +	.free = w25n04lv_ooblayout_free,

FWIW, these two are the same as what I consolidated in
https://lore.kernel.org/r/20260814-w25n04lw-v3-1-c6a7423ac7d0@atmark-techno.com
using oobsize, so we probably want to reuse that here too

(Should I split the patch?)

-- 
Dominique Martinet | Asmadeus



More information about the linux-mtd mailing list