[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <73bd7d59-0029-480c-b1a8-ec5ad5b16553@gmail.com>
Date: Mon, 8 Sep 2025 18:28:26 +0900
From: Takahiro Kuwano <tkuw584924@...il.com>
To: Santhosh Kumar K <s-k6@...com>, miquel.raynal@...tlin.com,
richard@....at, vigneshr@...com, tudor.ambarus@...aro.org,
pratyush@...nel.org, mwalle@...nel.org
Cc: linux-mtd@...ts.infradead.org, linux-kernel@...r.kernel.org,
praneeth@...com, p-mantena@...com, a-dutta@...com, u-kumar1@...com
Subject: Re: [PATCH] mtd: spi-nor: spansion: Modify addr_mode_nbytes for DTR
mode
On 9/4/2025 10:13 PM, Santhosh Kumar K wrote:
> The nor->params->addr_mode_nbytes parameter defines the address byte
> count for the current addressing mode. When transitioning between SDR
> and DDR modes, this parameter must be properly updated to maintain the
> correct addressing behavior. So, implement the necessary updates to
> nor->params->addr_mode_nbytes during both DDR mode enablement and
> disablement operations to ensure address byte counts remain consistent
> with the active transfer mode.
>
The address byte count for the current addressing mode is defined as
params->addr_nbytes. The params->addr_mode_nbytes tracks flash's internal
addressing mode and is not used in octal DDR mode.
> Signed-off-by: Santhosh Kumar K <s-k6@...com>
> ---
>
> Tested on TI's AM62x SK
> Logs: https://gist.github.com/santhosh21/8d69756bd54605d79086b00850e1083a
>
> ---
> drivers/mtd/spi-nor/spansion.c | 4 ++++
> 1 file changed, 4 insertions(+)
>
> diff --git a/drivers/mtd/spi-nor/spansion.c b/drivers/mtd/spi-nor/spansion.c
> index a0296c871634..678f7f4052c9 100644
> --- a/drivers/mtd/spi-nor/spansion.c
> +++ b/drivers/mtd/spi-nor/spansion.c
> @@ -230,6 +230,8 @@ static int cypress_nor_octal_dtr_en(struct spi_nor *nor)
> return ret;
> }
>
> + nor->params->addr_mode_nbytes = 4;
> +
Are there any problems if we don't do this?
> /* Read flash ID to make sure the switch was successful. */
> ret = spi_nor_read_id(nor, nor->addr_nbytes, 3, buf,
> SNOR_PROTO_8_8_8_DTR);
> @@ -275,6 +277,8 @@ static int cypress_nor_octal_dtr_dis(struct spi_nor *nor)
> return ret;
> }
>
> + nor->params->addr_mode_nbytes = 3;
> +
This doesn't work in case flash's internal address mode is 4.
> /* Read flash ID to make sure the switch was successful. */
> ret = spi_nor_read_id(nor, 0, 0, buf, SNOR_PROTO_1_1_1);
> if (ret) {
Thanks,
Takahiro
Powered by blists - more mailing lists