mtd: spi-nor: Add Winbond w25q512jvdtr

Kang.Kerry 康宇良 TAO Kang.Kerry at inventec.com
Mon Sep 15 02:29:56 PDT 2025


Hi Pratyush,
I configured the DTS with 'compatible = "jedec,spi-nor";'
and enabled the kernel options:
CONFIG_MTD_PARTITIONED_MASTER=y
CONFIG_MTD_SPI_NOR=y

However, the dmesg output shows that the kernel is failing to recognize the flash's JEDEC ID. This suggests that the generic SFDP-based driver isn't working as expected.

[  135.294624] spi-nor spi1.0: unrecognized JEDEC id bytes: ef 70 20 00 00 00
[  135.301602] spi-nor: probe of spi1.0 failed with error -2

I think we need to add this to table to make sure W25Q512JV-DTR is recognized.

BR,
Kerry

-----Original Message-----
From: Pratyush Yadav <pratyush at kernel.org> 
Sent: Wednesday, September 10, 2025 11:47 PM
To: Kang.Kerry 康宇良 TAO <Kang.Kerry at inventec.com>
Cc: linux-mtd at lists.infradead.org
Subject: Re: mtd: spi-nor: Add Winbond w25q512jvdtr

Hi,

On Wed, Sep 10 2025, Kang.Kerry 康宇良 TAO wrote:

> Similar to the other ones, different size. The "JV-DTR" suffix is in 
> the datasheet, I haven't seen mentions of a different one.
>
> The datasheet indicates DUAL and QUAD are supported.
>
> https://www.winbond.com/resource-files/W25Q512JV%20DTR%20RevD%20062920
> 20%20133.pdf

The flash seems to have SFDP. I don't think you need an entry here at all. The generic SFDP-based driver should be enough for you. Just add the jedec,spi-nor node to your device tree. Try that out and only add the entry if something isn't working, and that with explanations and fixes to the problems.

>
> Signed-off-by: Kang.Kerry 
> <kang.kerry at inventec.corp-partner.google.com>
> ---
>
> This modification is add BIOS W25Q512JV-DTR chip to winbond list
>
> ---
>  drivers/mtd/spi-nor/winbond.c | 5 +++++
>  1 file changed, 5 insertions(+)
>
> diff --git a/drivers/mtd/spi-nor/winbond.c 
> b/drivers/mtd/spi-nor/winbond.c index 8d0a00d69e12..6ce5f70bc11a 
> 100644
> --- a/drivers/mtd/spi-nor/winbond.c
> +++ b/drivers/mtd/spi-nor/winbond.c
> @@ -146,6 +146,11 @@ static const struct flash_info winbond_nor_parts[] = {
>   .name = "w25q512jvq",
>   .size = SZ_64M,
>   .no_sfdp_flags = SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ,
> + }, {
> + .id = SNOR_ID(0xef, 0x70, 0x20),
> + .name = "w25q512jvdtr",
> + .szie = SZ_64M,
> + .no_sfdp_flags = SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ,
>   }, {
>   .id = SNOR_ID(0xef, 0x50, 0x12),
>   .name = "w25q20bw",
> --
> 2.43.0
>

>

--
Regards,
Pratyush Yadav


More information about the linux-mtd mailing list