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(¶ms->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(¶ms->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