diff mbox

mtd: spi-nor: Add support for sst25wf020a.

Message ID 1439573741-24491-1-git-send-email-aballier@gentoo.org
State Accepted
Commit a1d97ef96e3899ad9d4ec0024f9b4927e0490689
Headers show

Commit Message

Alexis Ballier Aug. 14, 2015, 5:35 p.m. UTC
It is a 256KiB flash with 4 KiB erase sectors
and 64KiB overlay blocks.

This is the one available on Hardkernel's Odroid U3 shield.

Signed-off-by: Alexis Ballier <aballier@gentoo.org>
---
 drivers/mtd/spi-nor/spi-nor.c | 1 +
 1 file changed, 1 insertion(+)

Comments

Marek Vasut Aug. 14, 2015, 8:45 p.m. UTC | #1
On Friday, August 14, 2015 at 07:35:39 PM, Alexis Ballier wrote:
> It is a 256KiB flash with 4 KiB erase sectors
> and 64KiB overlay blocks.
> 
> This is the one available on Hardkernel's Odroid U3 shield.
> 
> Signed-off-by: Alexis Ballier <aballier@gentoo.org>
> ---
>  drivers/mtd/spi-nor/spi-nor.c | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/drivers/mtd/spi-nor/spi-nor.c b/drivers/mtd/spi-nor/spi-nor.c
> index d78831b..e521b35 100644
> --- a/drivers/mtd/spi-nor/spi-nor.c
> +++ b/drivers/mtd/spi-nor/spi-nor.c
> @@ -636,6 +636,7 @@ static const struct spi_device_id spi_nor_ids[] = {
>  	{ "sst25wf512",  INFO(0xbf2501, 0, 64 * 1024,  1, SECT_4K | SST_WRITE) 
},
>  	{ "sst25wf010",  INFO(0xbf2502, 0, 64 * 1024,  2, SECT_4K | SST_WRITE) 
},
>  	{ "sst25wf020",  INFO(0xbf2503, 0, 64 * 1024,  4, SECT_4K | SST_WRITE) 
},
> +	{ "sst25wf020a", INFO(0x621612, 0, 64 * 1024,  4, SECT_4K) },

Is the SST_WRITE not needed on this device ?

Otherwise, looks pretty obvious :)

>  	{ "sst25wf040",  INFO(0xbf2504, 0, 64 * 1024,  8, SECT_4K | SST_WRITE) 
},
>  	{ "sst25wf080",  INFO(0xbf2505, 0, 64 * 1024, 16, SECT_4K | SST_WRITE) 
},

Best regards,
Marek Vasut
Alexis Ballier Aug. 15, 2015, 8:38 a.m. UTC | #2
On Fri, 14 Aug 2015 22:45:14 +0200
Marek Vasut <marex@denx.de> wrote:

> On Friday, August 14, 2015 at 07:35:39 PM, Alexis Ballier wrote:
> > It is a 256KiB flash with 4 KiB erase sectors
> > and 64KiB overlay blocks.
> > 
> > This is the one available on Hardkernel's Odroid U3 shield.
> > 
> > Signed-off-by: Alexis Ballier <aballier@gentoo.org>
> > ---
> >  drivers/mtd/spi-nor/spi-nor.c | 1 +
> >  1 file changed, 1 insertion(+)
> > 
> > diff --git a/drivers/mtd/spi-nor/spi-nor.c
> > b/drivers/mtd/spi-nor/spi-nor.c index d78831b..e521b35 100644
> > --- a/drivers/mtd/spi-nor/spi-nor.c
> > +++ b/drivers/mtd/spi-nor/spi-nor.c
> > @@ -636,6 +636,7 @@ static const struct spi_device_id spi_nor_ids[]
> > = { { "sst25wf512",  INFO(0xbf2501, 0, 64 * 1024,  1, SECT_4K |
> > SST_WRITE) 
> },
> >  	{ "sst25wf010",  INFO(0xbf2502, 0, 64 * 1024,  2, SECT_4K
> > | SST_WRITE) 
> },
> >  	{ "sst25wf020",  INFO(0xbf2503, 0, 64 * 1024,  4, SECT_4K
> > | SST_WRITE) 
> },
> > +	{ "sst25wf020a", INFO(0x621612, 0, 64 * 1024,  4,
> > SECT_4K) },
> 
> Is the SST_WRITE not needed on this device ?


Tried that at first and it didn't work (writes were silently not
performed).

I'm no expert here, but I don't see anything about auto address
increment in the spec:
http://ww1.microchip.com/downloads/en/DeviceDoc/20005139E.pdf
and it uses the page program command (0x02).

Alexis.


[...]
Marek Vasut Aug. 15, 2015, 1:29 p.m. UTC | #3
On Saturday, August 15, 2015 at 10:38:59 AM, Alexis Ballier wrote:
> On Fri, 14 Aug 2015 22:45:14 +0200
> 
> Marek Vasut <marex@denx.de> wrote:
> > On Friday, August 14, 2015 at 07:35:39 PM, Alexis Ballier wrote:
> > > It is a 256KiB flash with 4 KiB erase sectors
> > > and 64KiB overlay blocks.
> > > 
> > > This is the one available on Hardkernel's Odroid U3 shield.
> > > 
> > > Signed-off-by: Alexis Ballier <aballier@gentoo.org>
> > > ---
> > > 
> > >  drivers/mtd/spi-nor/spi-nor.c | 1 +
> > >  1 file changed, 1 insertion(+)
> > > 
> > > diff --git a/drivers/mtd/spi-nor/spi-nor.c
> > > b/drivers/mtd/spi-nor/spi-nor.c index d78831b..e521b35 100644
> > > --- a/drivers/mtd/spi-nor/spi-nor.c
> > > +++ b/drivers/mtd/spi-nor/spi-nor.c
> > > @@ -636,6 +636,7 @@ static const struct spi_device_id spi_nor_ids[]
> > > = { { "sst25wf512",  INFO(0xbf2501, 0, 64 * 1024,  1, SECT_4K |
> > > SST_WRITE)
> > 
> > },
> > 
> > >  	{ "sst25wf010",  INFO(0xbf2502, 0, 64 * 1024,  2, SECT_4K
> > >  	
> > > | SST_WRITE)
> > 
> > },
> > 
> > >  	{ "sst25wf020",  INFO(0xbf2503, 0, 64 * 1024,  4, SECT_4K
> > >  	
> > > | SST_WRITE)
> > 
> > },
> > 
> > > +	{ "sst25wf020a", INFO(0x621612, 0, 64 * 1024,  4,
> > > SECT_4K) },
> > 
> > Is the SST_WRITE not needed on this device ?
> 
> Tried that at first and it didn't work (writes were silently not
> performed).

This is the worst possible behavior.

> I'm no expert here, but I don't see anything about auto address
> increment in the spec:
> http://ww1.microchip.com/downloads/en/DeviceDoc/20005139E.pdf
> and it uses the page program command (0x02).

They probably decided to start rolling out a standard SPI NOR, which is good :)

Best regards,
Marek Vasut
Brian Norris Sept. 2, 2015, 8:56 p.m. UTC | #4
On Fri, Aug 14, 2015 at 07:35:39PM +0200, Alexis Ballier wrote:
> It is a 256KiB flash with 4 KiB erase sectors
> and 64KiB overlay blocks.
> 
> This is the one available on Hardkernel's Odroid U3 shield.
> 
> Signed-off-by: Alexis Ballier <aballier@gentoo.org>

Applied to l2-mtd.git
diff mbox

Patch

diff --git a/drivers/mtd/spi-nor/spi-nor.c b/drivers/mtd/spi-nor/spi-nor.c
index d78831b..e521b35 100644
--- a/drivers/mtd/spi-nor/spi-nor.c
+++ b/drivers/mtd/spi-nor/spi-nor.c
@@ -636,6 +636,7 @@  static const struct spi_device_id spi_nor_ids[] = {
 	{ "sst25wf512",  INFO(0xbf2501, 0, 64 * 1024,  1, SECT_4K | SST_WRITE) },
 	{ "sst25wf010",  INFO(0xbf2502, 0, 64 * 1024,  2, SECT_4K | SST_WRITE) },
 	{ "sst25wf020",  INFO(0xbf2503, 0, 64 * 1024,  4, SECT_4K | SST_WRITE) },
+	{ "sst25wf020a", INFO(0x621612, 0, 64 * 1024,  4, SECT_4K) },
 	{ "sst25wf040",  INFO(0xbf2504, 0, 64 * 1024,  8, SECT_4K | SST_WRITE) },
 	{ "sst25wf080",  INFO(0xbf2505, 0, 64 * 1024, 16, SECT_4K | SST_WRITE) },