[PATCH] mtd: spi-nor: spansion: Modify addr_mode_nbytes for DTR mode

Takahiro Kuwano tkuw584924 at gmail.com
Mon Sep 8 02:28:26 PDT 2025


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 at ti.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




More information about the linux-mtd mailing list