diff mbox series

mtd: spi-nor: Add Winbond w25q16jv support

Message ID 20190214205723.9011-1-robimarko@gmail.com
State Changes Requested
Delegated to: Ambarus Tudor
Headers show
Series mtd: spi-nor: Add Winbond w25q16jv support | expand

Commit Message

Robert Marko Feb. 14, 2019, 8:57 p.m. UTC
Datasheet: https://www.winbond.com/resource-files/w25q16jv%20spi%20revg%2003222018%20plus.pdf

Testing done on Mikrotik Routerboard RB450Gx4 board under 4.19.19 kernel.

Test board does not support Dual or Quad modes.

Signed-off-by: Robert Marko <robimarko@gmail.com>
---
 drivers/mtd/spi-nor/spi-nor.c | 5 +++++
 1 file changed, 5 insertions(+)

Comments

Tudor Ambarus Feb. 20, 2019, 8:29 p.m. UTC | #1
Hi, Robert,

On 02/14/2019 10:57 PM, Robert Marko wrote:
> Datasheet: https://www.winbond.com/resource-files/w25q16jv%20spi%20revg%2003222018%20plus.pdf
> 
> Testing done on Mikrotik Routerboard RB450Gx4 board under 4.19.19 kernel.

It is preferable to do the test on spi-nor/next
> 
> Test board does not support Dual or Quad modes.
> 
> Signed-off-by: Robert Marko <robimarko@gmail.com>
> ---
>  drivers/mtd/spi-nor/spi-nor.c | 5 +++++
>  1 file changed, 5 insertions(+)
> 
> diff --git a/drivers/mtd/spi-nor/spi-nor.c b/drivers/mtd/spi-nor/spi-nor.c
> index 6e13bbd1aaa5..0e958f48db1b 100644
> --- a/drivers/mtd/spi-nor/spi-nor.c
> +++ b/drivers/mtd/spi-nor/spi-nor.c
> @@ -1975,6 +1975,11 @@ static const struct flash_info spi_nor_ids[] = {
>  			SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ |
>  			SPI_NOR_HAS_LOCK | SPI_NOR_HAS_TB)
>  	},
> +	{
> +		"w25q16jv", INFO(0xef7015, 0, 64 * 1024,  32,
> +			SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ |
> +			SPI_NOR_HAS_LOCK | SPI_NOR_HAS_TB)

You'll need a way to differentiate between W25Q16JV-IQ/JQ and W25Q16JV-IM/JM.

And I would prefer to have the new entries ordered alphabetically as much as
possible. This one should fit just before w25q20cl. Manufacturers are naming
flashes based on a product identification system. The flashes are presented in
alphabetical order, we should do the same.

Cheers,
ta
Robert Marko Feb. 21, 2019, 8:58 p.m. UTC | #2
On Wed, 20 Feb 2019 at 21:29, <Tudor.Ambarus@microchip.com> wrote:>>
Hi, Robert,>> On 02/14/2019 10:57 PM, Robert Marko wrote:> >
Datasheet: https://www.winbond.com/resource-files/w25q16jv%20spi%20revg%2003222018%20plus.pdf>
>> > Testing done on Mikrotik Routerboard RB450Gx4 board under 4.19.19
kernel.>> It is preferable to do the test on spi-nor/nextUnfortunately
I cant do that as OpenWrt has a considerable amount of patches that
would need to be ported and we are only moving from LTS to LTS version
and we are currently on 4.19.
> >
> > Test board does not support Dual or Quad modes.
> >
> > Signed-off-by: Robert Marko <robimarko@gmail.com>
> > ---
> >  drivers/mtd/spi-nor/spi-nor.c | 5 +++++
> >  1 file changed, 5 insertions(+)
> >
> > diff --git a/drivers/mtd/spi-nor/spi-nor.c b/drivers/mtd/spi-nor/spi-nor.c
> > index 6e13bbd1aaa5..0e958f48db1b 100644
> > --- a/drivers/mtd/spi-nor/spi-nor.c
> > +++ b/drivers/mtd/spi-nor/spi-nor.c
> > @@ -1975,6 +1975,11 @@ static const struct flash_info spi_nor_ids[] = {
> >                       SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ |
> >                       SPI_NOR_HAS_LOCK | SPI_NOR_HAS_TB)
> >       },
> > +     {
> > +             "w25q16jv", INFO(0xef7015, 0, 64 * 1024,  32,
> > +                     SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ |
> > +                     SPI_NOR_HAS_LOCK | SPI_NOR_HAS_TB)
>
> You'll need a way to differentiate between W25Q16JV-IQ/JQ and W25Q16JV-IM/JM.
Hm, from what I understood JV is the series and suffix only indictes
the package.
They should all have the same JEDEC ID and features.
>
> And I would prefer to have the new entries ordered alphabetically as much as
> possible. This one should fit just before w25q20cl. Manufacturers are naming
> flashes based on a product identification system. The flashes are presented in
> alphabetical order, we should do the same.
I agree, will reorder and send a v2.
>
> Cheers,
> ta
Tudor Ambarus June 13, 2019, 2:33 p.m. UTC | #3
Hi, Robert,

On 02/21/2019 10:58 PM, Robert Marko wrote:
> On Wed, 20 Feb 2019 at 21:29, <Tudor.Ambarus@microchip.com> wrote:>>
> Hi, Robert,>> On 02/14/2019 10:57 PM, Robert Marko wrote:> >
> Datasheet: https://www.winbond.com/resource-files/w25q16jv%20spi%20revg%2003222018%20plus.pdf>
>>>> Testing done on Mikrotik Routerboard RB450Gx4 board under 4.19.19
> kernel.>> It is preferable to do the test on spi-nor/nextUnfortunately
> I cant do that as OpenWrt has a considerable amount of patches that
> would need to be ported and we are only moving from LTS to LTS version
> and we are currently on 4.19.
>>>
>>> Test board does not support Dual or Quad modes.
>>>
>>> Signed-off-by: Robert Marko <robimarko@gmail.com>
>>> ---
>>>  drivers/mtd/spi-nor/spi-nor.c | 5 +++++
>>>  1 file changed, 5 insertions(+)
>>>
>>> diff --git a/drivers/mtd/spi-nor/spi-nor.c b/drivers/mtd/spi-nor/spi-nor.c
>>> index 6e13bbd1aaa5..0e958f48db1b 100644
>>> --- a/drivers/mtd/spi-nor/spi-nor.c
>>> +++ b/drivers/mtd/spi-nor/spi-nor.c
>>> @@ -1975,6 +1975,11 @@ static const struct flash_info spi_nor_ids[] = {
>>>                       SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ |
>>>                       SPI_NOR_HAS_LOCK | SPI_NOR_HAS_TB)
>>>       },
>>> +     {
>>> +             "w25q16jv", INFO(0xef7015, 0, 64 * 1024,  32,
>>> +                     SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ |
>>> +                     SPI_NOR_HAS_LOCK | SPI_NOR_HAS_TB)
>>
>> You'll need a way to differentiate between W25Q16JV-IQ/JQ and W25Q16JV-IM/JM.
> Hm, from what I understood JV is the series and suffix only indictes
> the package.
> They should all have the same JEDEC ID and features.
>>

W25Q16JV-IQ/JQ and W25Q16JV-IM/JM have different jedec ids, see table "9.1.1
Manufacturer and Device Identification" from the datasheet that you indicated in
the commit message.

Looking at "12. ORDERING INFORMATION", I see that:
- Q version has QE = 1 (fixed) and it's backward compatible to FV family
- M version has QE = 0 (programmable) and has a new device ID
The same is described in "8. QUAD ENABLE (QE) – Volatile/Non-Volatile Writable".

I would suggest to name the flash "w25q16jv-im/jm".

What do you think?
ta
diff mbox series

Patch

diff --git a/drivers/mtd/spi-nor/spi-nor.c b/drivers/mtd/spi-nor/spi-nor.c
index 6e13bbd1aaa5..0e958f48db1b 100644
--- a/drivers/mtd/spi-nor/spi-nor.c
+++ b/drivers/mtd/spi-nor/spi-nor.c
@@ -1975,6 +1975,11 @@  static const struct flash_info spi_nor_ids[] = {
 			SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ |
 			SPI_NOR_HAS_LOCK | SPI_NOR_HAS_TB)
 	},
+	{
+		"w25q16jv", INFO(0xef7015, 0, 64 * 1024,  32,
+			SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ |
+			SPI_NOR_HAS_LOCK | SPI_NOR_HAS_TB)
+	},
 	{ "w25x32", INFO(0xef3016, 0, 64 * 1024,  64, SECT_4K) },
 	{ "w25q20cl", INFO(0xef4012, 0, 64 * 1024,  4, SECT_4K) },
 	{ "w25q20bw", INFO(0xef5012, 0, 64 * 1024,  4, SECT_4K) },