]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
spi: imx: add i.MX51 ECSPI target mode support
authorCarlos Song <carlos.song@nxp.com>
Mon, 27 Oct 2025 11:02:56 +0000 (19:02 +0800)
committerMark Brown <broonie@kernel.org>
Thu, 6 Nov 2025 22:55:21 +0000 (22:55 +0000)
ECSPI in i.MX51 and i.MX53 support target mode. Current code only support
i.MX53. Remove is_imx53_ecspi() check for target mode to support i.MX51.

Signed-off-by: Carlos Song <carlos.song@nxp.com>
Link: https://patch.msgid.link/20251027110256.543314-1-carlos.song@nxp.com
Signed-off-by: Mark Brown <broonie@kernel.org>
drivers/spi/spi-imx.c

index 510074ef4ed46df3eacbfde8592cbb247527f9ba..edd33fc28c7d0511c94474cc14885242809c30e5 100644 (file)
@@ -586,7 +586,7 @@ static int mx51_ecspi_prepare_message(struct spi_imx_data *spi_imx,
         * is not functional for imx53 Soc, config SPI burst completed when
         * BURST_LENGTH + 1 bits are received
         */
-       if (spi_imx->target_mode && is_imx53_ecspi(spi_imx))
+       if (spi_imx->target_mode)
                cfg &= ~MX51_ECSPI_CONFIG_SBBCTRL(channel);
        else
                cfg |= MX51_ECSPI_CONFIG_SBBCTRL(channel);
@@ -674,7 +674,7 @@ static int mx51_ecspi_prepare_transfer(struct spi_imx_data *spi_imx,
 
        /* Clear BL field and set the right value */
        ctrl &= ~MX51_ECSPI_CTRL_BL_MASK;
-       if (spi_imx->target_mode && is_imx53_ecspi(spi_imx))
+       if (spi_imx->target_mode)
                ctrl |= (spi_imx->target_burst * 8 - 1)
                        << MX51_ECSPI_CTRL_BL_OFFSET;
        else {
@@ -1367,7 +1367,7 @@ static int spi_imx_setupxfer(struct spi_device *spi,
        spi_imx->rx_only = ((t->tx_buf == NULL)
                        || (t->tx_buf == spi->controller->dummy_tx));
 
-       if (is_imx53_ecspi(spi_imx) && spi_imx->target_mode) {
+       if (spi_imx->target_mode) {
                spi_imx->rx = mx53_ecspi_rx_target;
                spi_imx->tx = mx53_ecspi_tx_target;
                spi_imx->target_burst = t->len;
@@ -1641,8 +1641,7 @@ static int spi_imx_pio_transfer_target(struct spi_device *spi,
        struct spi_imx_data *spi_imx = spi_controller_get_devdata(spi->controller);
        int ret = 0;
 
-       if (is_imx53_ecspi(spi_imx) &&
-           transfer->len > MX53_MAX_TRANSFER_BYTES) {
+       if (transfer->len > MX53_MAX_TRANSFER_BYTES) {
                dev_err(&spi->dev, "Transaction too big, max size is %d bytes\n",
                        MX53_MAX_TRANSFER_BYTES);
                return -EMSGSIZE;