On 4/9/2024 8:54 PM, Pratyush Yadav wrote:
> On Tue, Apr 09 2024, tkuw584...@gmail.com wrote:
> 
>> From: Takahiro Kuwano <takahiro.kuw...@infineon.com>
>>
>> The S25FS064S, S25FS128S, and S25FS256S are the same family of SPI NOR
>> Flash devices with S25FS512S. Some difference depending on the device
>> densities are taken care in post SFDP fixup.
>>
>> Signed-off-by: Takahiro Kuwano <takahiro.kuw...@infineon.com>
>> ---
>>  drivers/mtd/spi/spi-nor-core.c | 24 ++++++++++++++++++------
>>  drivers/mtd/spi/spi-nor-ids.c  |  3 +++
>>  2 files changed, 21 insertions(+), 6 deletions(-)
>>
>> diff --git a/drivers/mtd/spi/spi-nor-core.c b/drivers/mtd/spi/spi-nor-core.c
>> index 9620852817..9b81b31e8e 100644
>> --- a/drivers/mtd/spi/spi-nor-core.c
>> +++ b/drivers/mtd/spi/spi-nor-core.c
>> @@ -3356,12 +3356,24 @@ static int s25fs_s_post_bfpt_fixup(struct spi_nor 
>> *nor,
>>  static void s25fs_s_post_sfdp_fixup(struct spi_nor *nor,
>>                                  struct spi_nor_flash_parameter *params)
>>  {
>> -    /* READ_1_1_2 is not supported */
>> -    params->hwcaps.mask &= ~SNOR_HWCAPS_READ_1_1_2;
>> -    /* READ_1_1_4 is not supported */
>> -    params->hwcaps.mask &= ~SNOR_HWCAPS_READ_1_1_4;
>> -    /* PP_1_1_4 is not supported */
>> -    params->hwcaps.mask &= ~SNOR_HWCAPS_PP_1_1_4;
>> +    /*
>> +     * The S25FS064S(8MB) supports 1-1-2 and 1-1-4 commands, but params for
>> +     * read ops in SFDP are wrong. The other density parts do not support
>> +     * 1-1-2 and 1-1-4 commands.
>> +     */
>> +    if (params->size == SZ_8M) {
>> +            spi_nor_set_read_settings(&params->reads[SNOR_CMD_READ_1_1_2],
>> +                                      0, 8, SPINOR_OP_READ_1_1_2,
>> +                                      SNOR_PROTO_1_1_2);
>> +            spi_nor_set_read_settings(&params->reads[SNOR_CMD_READ_1_1_4],
>> +                                      0, 8, SPINOR_OP_READ_1_1_4,
>> +                                      SNOR_PROTO_1_1_4);
>> +    } else {
>> +            params->hwcaps.mask &= ~SNOR_HWCAPS_READ_1_1_2;
>> +            params->hwcaps.mask &= ~SNOR_HWCAPS_READ_1_1_4;
>> +            params->hwcaps.mask &= ~SNOR_HWCAPS_PP_1_1_4;
>> +    }
>> +
> 
> Reviewed-by: Pratyush Yadav <praty...@kernel.org>
> 
> BTW (not directly related to this patch), I looked at the datasheet you
> provided in the cover letter and it says dual and quad I/O is supported
> for the 16 MB and 32 MB parts as well. Why do you mask them out here
> then?
>
In the datasheet,
1-2-2 and 1-4-4 read are named as dual and quad I/O read.
1-1-2 and 1-1-4 read are named as dual and quad output read.
 
Dual and quad I/O read (1-2-2 and 1-4-4) is supported in all S25FS-S parts.
Dual and quad output read (1-1-2 and 1-1-4) is only supported in S25FS064S.

Thank you for reviewing!
Takahiro

Reply via email to