From: Takahiro Kuwano <[email protected]> nor->addr_mode_nbytes is set during SFDP parse. Infineon SEMPER flash family relies on that parameter to read and write registers. To support use cases of skipping SFDP, set address mode in device specific setup() function.
Tested-by: Hiroyuki Saito <[email protected]> Signed-off-by: Takahiro Kuwano <[email protected]> --- drivers/mtd/spi/spi-nor-core.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/drivers/mtd/spi/spi-nor-core.c b/drivers/mtd/spi/spi-nor-core.c index 6f352c5c0e2..e382a518a34 100644 --- a/drivers/mtd/spi/spi-nor-core.c +++ b/drivers/mtd/spi/spi-nor-core.c @@ -3794,6 +3794,16 @@ static int s25_s28_setup(struct spi_nor *nor, const struct flash_info *info, #ifdef CONFIG_SPI_FLASH_BAR return -ENOTSUPP; /* Bank Address Register is not supported */ #endif + + /* Setup address mode here, in case SFDP is skipped. */ + if (!nor->addr_mode_nbytes) { + ret = set_4byte(nor, nor->info, 1); + if (ret) + return ret; + + nor->addr_mode_nbytes = 4; + } + /* * S25FS256T has multiple sector architecture options, with selection of * count and location of 128KB and 64KB sectors. This driver supports -- 2.34.1

