Patchwork [U-Boot] mtd: spi: winbond: add W25PXX support

login
register
mail settings
Submitter Kuo-Jung Su
Date April 26, 2013, 8:02 a.m.
Message ID <1366963338-2945-1-git-send-email-dantesu@gmail.com>
Download mbox | patch
Permalink /patch/239712/
State Superseded
Delegated to: Jagannadha Sutradharudu Teki
Headers show

Comments

Kuo-Jung Su - April 26, 2013, 8:02 a.m.
From: Kuo-Jung Su <dantesu@faraday-tech.com>

Signed-off-by: Kuo-Jung Su <dantesu@faraday-tech.com>
---
 drivers/mtd/spi/winbond.c |   17 ++++++++++++++++-
 1 file changed, 16 insertions(+), 1 deletion(-)
Jagannadha Sutradharudu Teki - May 21, 2013, 5:10 p.m.
Hi,

I have a simple question like these parts are legacy flashes i guess.
Could you please tell me on which boards these were used?

Thanks,
Jagan.

On Fri, Apr 26, 2013 at 1:32 PM, Kuo-Jung Su <dantesu@gmail.com> wrote:
> From: Kuo-Jung Su <dantesu@faraday-tech.com>
>
> Signed-off-by: Kuo-Jung Su <dantesu@faraday-tech.com>
> ---
>  drivers/mtd/spi/winbond.c |   17 ++++++++++++++++-
>  1 file changed, 16 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/mtd/spi/winbond.c b/drivers/mtd/spi/winbond.c
> index 2716209..2a27837 100644
> --- a/drivers/mtd/spi/winbond.c
> +++ b/drivers/mtd/spi/winbond.c
> @@ -18,6 +18,21 @@ struct winbond_spi_flash_params {
>
>  static const struct winbond_spi_flash_params winbond_spi_flash_table[] = {
>         {
> +               .id                     = 0x2014,
> +               .nr_blocks              = 16,
> +               .name                   = "W25P80",
> +       },
> +       {
> +               .id                     = 0x2015,
> +               .nr_blocks              = 32,
> +               .name                   = "W25P16",
> +       },
> +       {
> +               .id                     = 0x2016,
> +               .nr_blocks              = 64,
> +               .name                   = "W25P32",
> +       },
> +       {
>                 .id                     = 0x3013,
>                 .nr_blocks              = 8,
>                 .name                   = "W25X40",
> @@ -104,7 +119,7 @@ struct spi_flash *spi_flash_probe_winbond(struct spi_slave *spi, u8 *idcode)
>         }
>
>         flash->page_size = 256;
> -       flash->sector_size = 4096;
> +       flash->sector_size = (idcode[1] == 0x20) ? 65536 : 4096;
>         flash->size = 4096 * 16 * params->nr_blocks;
>
>         return flash;
> --
> 1.7.9.5
>
> _______________________________________________
> U-Boot mailing list
> U-Boot@lists.denx.de
> http://lists.denx.de/mailman/listinfo/u-boot
Kuo-Jung Su - May 22, 2013, 1:01 a.m.
2013/5/22 Jagan Teki <jagannadh.teki@gmail.com>:
> Hi,
>
> I have a simple question like these parts are legacy flashes i guess.
> Could you please tell me on which boards these were used?
>

It's used on Faraday A369 evaluation board.
However the u-boot source codes for A369 is still waiting for approval.
Here is the link to u-boot patchwork:

http://patchwork.ozlabs.org/patch/242006/

> Thanks,
> Jagan.
>
> On Fri, Apr 26, 2013 at 1:32 PM, Kuo-Jung Su <dantesu@gmail.com> wrote:
>> From: Kuo-Jung Su <dantesu@faraday-tech.com>
>>
>> Signed-off-by: Kuo-Jung Su <dantesu@faraday-tech.com>
>> ---
>>  drivers/mtd/spi/winbond.c |   17 ++++++++++++++++-
>>  1 file changed, 16 insertions(+), 1 deletion(-)
>>
>> diff --git a/drivers/mtd/spi/winbond.c b/drivers/mtd/spi/winbond.c
>> index 2716209..2a27837 100644
>> --- a/drivers/mtd/spi/winbond.c
>> +++ b/drivers/mtd/spi/winbond.c
>> @@ -18,6 +18,21 @@ struct winbond_spi_flash_params {
>>
>>  static const struct winbond_spi_flash_params winbond_spi_flash_table[] = {
>>         {
>> +               .id                     = 0x2014,
>> +               .nr_blocks              = 16,
>> +               .name                   = "W25P80",
>> +       },
>> +       {
>> +               .id                     = 0x2015,
>> +               .nr_blocks              = 32,
>> +               .name                   = "W25P16",
>> +       },
>> +       {
>> +               .id                     = 0x2016,
>> +               .nr_blocks              = 64,
>> +               .name                   = "W25P32",
>> +       },
>> +       {
>>                 .id                     = 0x3013,
>>                 .nr_blocks              = 8,
>>                 .name                   = "W25X40",
>> @@ -104,7 +119,7 @@ struct spi_flash *spi_flash_probe_winbond(struct spi_slave *spi, u8 *idcode)
>>         }
>>
>>         flash->page_size = 256;
>> -       flash->sector_size = 4096;
>> +       flash->sector_size = (idcode[1] == 0x20) ? 65536 : 4096;
>>         flash->size = 4096 * 16 * params->nr_blocks;
>>
>>         return flash;
>> --
>> 1.7.9.5
>>
>> _______________________________________________
>> U-Boot mailing list
>> U-Boot@lists.denx.de
>> http://lists.denx.de/mailman/listinfo/u-boot



--
Best wishes,
Kuo-Jung Su
Jagannadha Sutradharudu Teki - May 23, 2013, 8:27 a.m.
Hi,

On Wed, May 22, 2013 at 6:31 AM, Kuo-Jung Su <dantesu@gmail.com> wrote:
> 2013/5/22 Jagan Teki <jagannadh.teki@gmail.com>:
>> Hi,
>>
>> I have a simple question like these parts are legacy flashes i guess.
>> Could you please tell me on which boards these were used?
>>
>
> It's used on Faraday A369 evaluation board.
> However the u-boot source codes for A369 is still waiting for approval.
> Here is the link to u-boot patchwork:

Ok, Thanks for your information.

>
> http://patchwork.ozlabs.org/patch/242006/
>
>> Thanks,
>> Jagan.
>>
>> On Fri, Apr 26, 2013 at 1:32 PM, Kuo-Jung Su <dantesu@gmail.com> wrote:
>>> From: Kuo-Jung Su <dantesu@faraday-tech.com>
>>>
>>> Signed-off-by: Kuo-Jung Su <dantesu@faraday-tech.com>
>>> ---
>>>  drivers/mtd/spi/winbond.c |   17 ++++++++++++++++-
>>>  1 file changed, 16 insertions(+), 1 deletion(-)
>>>
>>> diff --git a/drivers/mtd/spi/winbond.c b/drivers/mtd/spi/winbond.c
>>> index 2716209..2a27837 100644
>>> --- a/drivers/mtd/spi/winbond.c
>>> +++ b/drivers/mtd/spi/winbond.c
>>> @@ -18,6 +18,21 @@ struct winbond_spi_flash_params {
>>>
>>>  static const struct winbond_spi_flash_params winbond_spi_flash_table[] = {
>>>         {
>>> +               .id                     = 0x2014,
>>> +               .nr_blocks              = 16,
>>> +               .name                   = "W25P80",

W25P80 is an 8Mbit flash right, is this name W25P80 or W25P08?
ofcourse, I have seen the same on datasheet as well.

Thanks,
Jagan.

>>> +       },
>>> +       {
>>> +               .id                     = 0x2015,
>>> +               .nr_blocks              = 32,
>>> +               .name                   = "W25P16",
>>> +       },
>>> +       {
>>> +               .id                     = 0x2016,
>>> +               .nr_blocks              = 64,
>>> +               .name                   = "W25P32",
>>> +       },
>>> +       {
>>>                 .id                     = 0x3013,
>>>                 .nr_blocks              = 8,
>>>                 .name                   = "W25X40",
>>> @@ -104,7 +119,7 @@ struct spi_flash *spi_flash_probe_winbond(struct spi_slave *spi, u8 *idcode)
>>>         }
>>>
>>>         flash->page_size = 256;
>>> -       flash->sector_size = 4096;
>>> +       flash->sector_size = (idcode[1] == 0x20) ? 65536 : 4096;
>>>         flash->size = 4096 * 16 * params->nr_blocks;
>>>
>>>         return flash;
>>> --
>>> 1.7.9.5
>>>
>>> _______________________________________________
>>> U-Boot mailing list
>>> U-Boot@lists.denx.de
>>> http://lists.denx.de/mailman/listinfo/u-boot
>
>
>
> --
> Best wishes,
> Kuo-Jung Su
Kuo-Jung Su - May 23, 2013, 9:54 a.m.
2013/5/23 Jagan Teki <jagannadh.teki@gmail.com>:
> Hi,
>
> On Wed, May 22, 2013 at 6:31 AM, Kuo-Jung Su <dantesu@gmail.com> wrote:
>> 2013/5/22 Jagan Teki <jagannadh.teki@gmail.com>:
>>> Hi,
>>>
>>> I have a simple question like these parts are legacy flashes i guess.
>>> Could you please tell me on which boards these were used?
>>>
>>
>> It's used on Faraday A369 evaluation board.
>> However the u-boot source codes for A369 is still waiting for approval.
>> Here is the link to u-boot patchwork:
>
> Ok, Thanks for your information.
>
>>
>> http://patchwork.ozlabs.org/patch/242006/
>>
>>> Thanks,
>>> Jagan.
>>>
>>> On Fri, Apr 26, 2013 at 1:32 PM, Kuo-Jung Su <dantesu@gmail.com> wrote:
>>>> From: Kuo-Jung Su <dantesu@faraday-tech.com>
>>>>
>>>> Signed-off-by: Kuo-Jung Su <dantesu@faraday-tech.com>
>>>> ---
>>>>  drivers/mtd/spi/winbond.c |   17 ++++++++++++++++-
>>>>  1 file changed, 16 insertions(+), 1 deletion(-)
>>>>
>>>> diff --git a/drivers/mtd/spi/winbond.c b/drivers/mtd/spi/winbond.c
>>>> index 2716209..2a27837 100644
>>>> --- a/drivers/mtd/spi/winbond.c
>>>> +++ b/drivers/mtd/spi/winbond.c
>>>> @@ -18,6 +18,21 @@ struct winbond_spi_flash_params {
>>>>
>>>>  static const struct winbond_spi_flash_params winbond_spi_flash_table[] = {
>>>>         {
>>>> +               .id                     = 0x2014,
>>>> +               .nr_blocks              = 16,
>>>> +               .name                   = "W25P80",
>
> W25P80 is an 8Mbit flash right, is this name W25P80 or W25P08?
> ofcourse, I have seen the same on datasheet as well.
>

It's W25P80.
They are formally NexFlash NX25P80, NX25P16 and NX25P32.

I've google for the W25P08, it looks like that Windond did have
some legacy small SPI flash: W25P01, W25P02 .. W25P16.
I guess it's a different production line...

BTW I don't have these chips and corresponding datasheet, too.

> Thanks,
> Jagan.
>
>>>> +       },
>>>> +       {
>>>> +               .id                     = 0x2015,
>>>> +               .nr_blocks              = 32,
>>>> +               .name                   = "W25P16",
>>>> +       },
>>>> +       {
>>>> +               .id                     = 0x2016,
>>>> +               .nr_blocks              = 64,
>>>> +               .name                   = "W25P32",
>>>> +       },
>>>> +       {
>>>>                 .id                     = 0x3013,
>>>>                 .nr_blocks              = 8,
>>>>                 .name                   = "W25X40",
>>>> @@ -104,7 +119,7 @@ struct spi_flash *spi_flash_probe_winbond(struct spi_slave *spi, u8 *idcode)
>>>>         }
>>>>
>>>>         flash->page_size = 256;
>>>> -       flash->sector_size = 4096;
>>>> +       flash->sector_size = (idcode[1] == 0x20) ? 65536 : 4096;
>>>>         flash->size = 4096 * 16 * params->nr_blocks;
>>>>
>>>>         return flash;
>>>> --
>>>> 1.7.9.5
>>>>
>>>> _______________________________________________
>>>> U-Boot mailing list
>>>> U-Boot@lists.denx.de
>>>> http://lists.denx.de/mailman/listinfo/u-boot
>>
>>
>>
>> --
>> Best wishes,
>> Kuo-Jung Su



--
Best wishes,
Kuo-Jung Su
Jagannadha Sutradharudu Teki - May 23, 2013, 10:44 a.m.
On Thu, May 23, 2013 at 3:24 PM, Kuo-Jung Su <dantesu@gmail.com> wrote:
> 2013/5/23 Jagan Teki <jagannadh.teki@gmail.com>:
>> Hi,
>>
>> On Wed, May 22, 2013 at 6:31 AM, Kuo-Jung Su <dantesu@gmail.com> wrote:
>>> 2013/5/22 Jagan Teki <jagannadh.teki@gmail.com>:
>>>> Hi,
>>>>
>>>> I have a simple question like these parts are legacy flashes i guess.
>>>> Could you please tell me on which boards these were used?
>>>>
>>>
>>> It's used on Faraday A369 evaluation board.
>>> However the u-boot source codes for A369 is still waiting for approval.
>>> Here is the link to u-boot patchwork:
>>
>> Ok, Thanks for your information.
>>
>>>
>>> http://patchwork.ozlabs.org/patch/242006/
>>>
>>>> Thanks,
>>>> Jagan.
>>>>
>>>> On Fri, Apr 26, 2013 at 1:32 PM, Kuo-Jung Su <dantesu@gmail.com> wrote:
>>>>> From: Kuo-Jung Su <dantesu@faraday-tech.com>
>>>>>
>>>>> Signed-off-by: Kuo-Jung Su <dantesu@faraday-tech.com>
>>>>> ---
>>>>>  drivers/mtd/spi/winbond.c |   17 ++++++++++++++++-
>>>>>  1 file changed, 16 insertions(+), 1 deletion(-)
>>>>>
>>>>> diff --git a/drivers/mtd/spi/winbond.c b/drivers/mtd/spi/winbond.c
>>>>> index 2716209..2a27837 100644
>>>>> --- a/drivers/mtd/spi/winbond.c
>>>>> +++ b/drivers/mtd/spi/winbond.c
>>>>> @@ -18,6 +18,21 @@ struct winbond_spi_flash_params {
>>>>>
>>>>>  static const struct winbond_spi_flash_params winbond_spi_flash_table[] = {
>>>>>         {
>>>>> +               .id                     = 0x2014,
>>>>> +               .nr_blocks              = 16,
>>>>> +               .name                   = "W25P80",
>>
>> W25P80 is an 8Mbit flash right, is this name W25P80 or W25P08?
>> ofcourse, I have seen the same on datasheet as well.
>>
>
> It's W25P80.
> They are formally NexFlash NX25P80, NX25P16 and NX25P32.
>
> I've google for the W25P08, it looks like that Windond did have
> some legacy small SPI flash: W25P01, W25P02 .. W25P16.
> I guess it's a different production line...
>
> BTW I don't have these chips and corresponding datasheet, too.

Ok.

Can you use the commit msg header as
"sf: winbond: "
Which is used for winbond mtd driver since from long, of-course not a
big deal and
also mentioned atleast single line message on body.

Simple recommendation here:.
"Add support for Winbond's W25PXX SPI flash.
These devices is used on Faraday A369 evaluation board"

Thanks,
Jagan.
Kuo-Jung Su - May 24, 2013, 12:57 a.m.
2013/5/23 Jagan Teki <jagannadh.teki@gmail.com>:
> On Thu, May 23, 2013 at 3:24 PM, Kuo-Jung Su <dantesu@gmail.com> wrote:
>> 2013/5/23 Jagan Teki <jagannadh.teki@gmail.com>:
>>> Hi,
>>>
>>> On Wed, May 22, 2013 at 6:31 AM, Kuo-Jung Su <dantesu@gmail.com> wrote:
>>>> 2013/5/22 Jagan Teki <jagannadh.teki@gmail.com>:
>>>>> Hi,
>>>>>
>>>>> I have a simple question like these parts are legacy flashes i guess.
>>>>> Could you please tell me on which boards these were used?
>>>>>
>>>>
>>>> It's used on Faraday A369 evaluation board.
>>>> However the u-boot source codes for A369 is still waiting for approval.
>>>> Here is the link to u-boot patchwork:
>>>
>>> Ok, Thanks for your information.
>>>
>>>>
>>>> http://patchwork.ozlabs.org/patch/242006/
>>>>
>>>>> Thanks,
>>>>> Jagan.
>>>>>
>>>>> On Fri, Apr 26, 2013 at 1:32 PM, Kuo-Jung Su <dantesu@gmail.com> wrote:
>>>>>> From: Kuo-Jung Su <dantesu@faraday-tech.com>
>>>>>>
>>>>>> Signed-off-by: Kuo-Jung Su <dantesu@faraday-tech.com>
>>>>>> ---
>>>>>>  drivers/mtd/spi/winbond.c |   17 ++++++++++++++++-
>>>>>>  1 file changed, 16 insertions(+), 1 deletion(-)
>>>>>>
>>>>>> diff --git a/drivers/mtd/spi/winbond.c b/drivers/mtd/spi/winbond.c
>>>>>> index 2716209..2a27837 100644
>>>>>> --- a/drivers/mtd/spi/winbond.c
>>>>>> +++ b/drivers/mtd/spi/winbond.c
>>>>>> @@ -18,6 +18,21 @@ struct winbond_spi_flash_params {
>>>>>>
>>>>>>  static const struct winbond_spi_flash_params winbond_spi_flash_table[] = {
>>>>>>         {
>>>>>> +               .id                     = 0x2014,
>>>>>> +               .nr_blocks              = 16,
>>>>>> +               .name                   = "W25P80",
>>>
>>> W25P80 is an 8Mbit flash right, is this name W25P80 or W25P08?
>>> ofcourse, I have seen the same on datasheet as well.
>>>
>>
>> It's W25P80.
>> They are formally NexFlash NX25P80, NX25P16 and NX25P32.
>>
>> I've google for the W25P08, it looks like that Windond did have
>> some legacy small SPI flash: W25P01, W25P02 .. W25P16.
>> I guess it's a different production line...
>>
>> BTW I don't have these chips and corresponding datasheet, too.
>
> Ok.
>
> Can you use the commit msg header as
> "sf: winbond: "
> Which is used for winbond mtd driver since from long, of-course not a
> big deal and
> also mentioned atleast single line message on body.
>

Sure, I'll re-format the patch and re-post again.

> Simple recommendation here:.
> "Add support for Winbond's W25PXX SPI flash.
> These devices is used on Faraday A369 evaluation board"
>

Thanks.
It's pretty helpful to me, because my English is really terrible. :)

> Thanks,
> Jagan.



--
Best wishes,
Kuo-Jung Su

Patch

diff --git a/drivers/mtd/spi/winbond.c b/drivers/mtd/spi/winbond.c
index 2716209..2a27837 100644
--- a/drivers/mtd/spi/winbond.c
+++ b/drivers/mtd/spi/winbond.c
@@ -18,6 +18,21 @@  struct winbond_spi_flash_params {
 
 static const struct winbond_spi_flash_params winbond_spi_flash_table[] = {
 	{
+		.id			= 0x2014,
+		.nr_blocks		= 16,
+		.name			= "W25P80",
+	},
+	{
+		.id			= 0x2015,
+		.nr_blocks		= 32,
+		.name			= "W25P16",
+	},
+	{
+		.id			= 0x2016,
+		.nr_blocks		= 64,
+		.name			= "W25P32",
+	},
+	{
 		.id			= 0x3013,
 		.nr_blocks		= 8,
 		.name			= "W25X40",
@@ -104,7 +119,7 @@  struct spi_flash *spi_flash_probe_winbond(struct spi_slave *spi, u8 *idcode)
 	}
 
 	flash->page_size = 256;
-	flash->sector_size = 4096;
+	flash->sector_size = (idcode[1] == 0x20) ? 65536 : 4096;
 	flash->size = 4096 * 16 * params->nr_blocks;
 
 	return flash;