]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
mtd: spi-nor: spansion: SMPT fixups for S25FS-S
authorTakahiro Kuwano <Takahiro.Kuwano@infineon.com>
Wed, 5 Nov 2025 07:48:00 +0000 (16:48 +0900)
committerPratyush Yadav <pratyush@kernel.org>
Mon, 10 Nov 2025 10:12:06 +0000 (11:12 +0100)
commite8f288a115f4850a65063af8787545dbf50abf47
treeb58fa883014b5a0cc474e7c44505c9e8eb79b5e1
parentf74de390557bf2bcc5dca4a357b41c0701d3f76e
mtd: spi-nor: spansion: SMPT fixups for S25FS-S

S25FS-S family supports SMPT that helps to detect sector layout settings
in configuration registers, but some of parameters in the table are
wrong or undetermined so the fixups below are required.

Read Any Register op is used to read configuration registers that
related to sector map. The op requires 8 cycles latency by default.
Implement smpt_read_dummy() to set correct dummy cycles.

Map ID is structured by combination of CR3NV[3], CR1NV[2], and CR3NV[1].
However, in S25FS512S, CR3NV[1] is RFU and always 0, while map IDs
defined in the table assume it is always 1. Implement smpt_map_id() to
fix map ID for S25FS512S. Other densities in S25FS-S family (256Mb and
128Mb) don't need this fix as CR3NV[1] in those chips is configurable
and map IDs are correctly defined in SMPT.

Co-developed-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
Reviewed-by: Tudor Ambarus <tudor.ambarus@linaro.org>
Tested-by: Marek Vasut <marek.vasut+renesas@mailbox.org> # S25FS512S
Signed-off-by: Takahiro Kuwano <Takahiro.Kuwano@infineon.com>
Signed-off-by: Pratyush Yadav <pratyush@kernel.org>
drivers/mtd/spi-nor/spansion.c