[PATCH 05/10] spi: nxp-xspi: Use FIELD_MODIFY()

Frank Li Frank.li at nxp.com
Tue May 5 08:39:52 PDT 2026


On Thu, Apr 30, 2026 at 11:54:51PM +0800, Hans Zhang wrote:
> Use FIELD_MODIFY() to remove open-coded bit manipulation.
> No functional change intended.
>
> Signed-off-by: Hans Zhang <18255117159 at 163.com>
> ---

Reviewed-by: Frank Li <Frank.Li at nxp.com>

>  drivers/spi/spi-nxp-xspi.c | 12 ++++--------
>  1 file changed, 4 insertions(+), 8 deletions(-)
>
> diff --git a/drivers/spi/spi-nxp-xspi.c b/drivers/spi/spi-nxp-xspi.c
> index 385302a6e62f..037eac24e6fd 100644
> --- a/drivers/spi/spi-nxp-xspi.c
> +++ b/drivers/spi/spi-nxp-xspi.c
> @@ -493,9 +493,8 @@ static void nxp_xspi_disable_ddr(struct nxp_xspi *xspi)
>  	writel(reg, base + XSPI_MCR);
>
>  	reg &= ~XSPI_MCR_DDR_EN;
> -	reg &= ~XSPI_MCR_DQS_FA_SEL_MASK;
>  	/* Use dummy pad loopback mode to sample data */
> -	reg |= FIELD_PREP(XSPI_MCR_DQS_FA_SEL_MASK, 0x01);
> +	FIELD_MODIFY(XSPI_MCR_DQS_FA_SEL_MASK, &reg, 0x01);
>  	writel(reg, base + XSPI_MCR);
>  	xspi->support_max_rate = 133000000;
>
> @@ -524,15 +523,13 @@ static void nxp_xspi_enable_ddr(struct nxp_xspi *xspi)
>  	writel(reg, base + XSPI_MCR);
>
>  	reg |= XSPI_MCR_DDR_EN;
> -	reg &= ~XSPI_MCR_DQS_FA_SEL_MASK;
>  	/* Use external dqs to sample data */
> -	reg |= FIELD_PREP(XSPI_MCR_DQS_FA_SEL_MASK, 0x03);
> +	FIELD_MODIFY(XSPI_MCR_DQS_FA_SEL_MASK, &reg, 0x03);
>  	writel(reg, base + XSPI_MCR);
>  	xspi->support_max_rate = 200000000;
>
>  	reg = readl(base + XSPI_FLSHCR);
> -	reg &= ~XSPI_FLSHCR_TDH_MASK;
> -	reg |= FIELD_PREP(XSPI_FLSHCR_TDH_MASK, 0x01);
> +	FIELD_MODIFY(XSPI_FLSHCR_TDH_MASK, &reg, 0x01);
>  	writel(reg, base + XSPI_FLSHCR);
>
>  	reg = FIELD_PREP(XSPI_SMPR_DLLFSMPFA_MASK, 0x04);
> @@ -1096,8 +1093,7 @@ static int nxp_xspi_default_setup(struct nxp_xspi *xspi)
>
>  	/* Give read/write access right to EENV0 */
>  	reg = readl(base + XSPI_FRAD0_WORD2);
> -	reg &= ~XSPI_FRAD0_WORD2_MD0ACP_MASK;
> -	reg |= FIELD_PREP(XSPI_FRAD0_WORD2_MD0ACP_MASK, 0x03);
> +	FIELD_MODIFY(XSPI_FRAD0_WORD2_MD0ACP_MASK, &reg, 0x03);
>  	writel(reg, base + XSPI_FRAD0_WORD2);
>
>  	/* Enable the FRAD check for EENV0 */
> --
> 2.34.1
>



More information about the linux-arm-kernel mailing list