}
 }
 
-static int rspi_setup(struct spi_device *spi)
-{
-       struct rspi_data *rspi = spi_controller_get_devdata(spi->controller);
-
-       rspi->max_speed_hz = spi->max_speed_hz;
-
-       rspi->spcmd = SPCMD_SSLKP;
-       if (spi->mode & SPI_CPOL)
-               rspi->spcmd |= SPCMD_CPOL;
-       if (spi->mode & SPI_CPHA)
-               rspi->spcmd |= SPCMD_CPHA;
-
-       /* CMOS output mode and MOSI signal from previous transfer */
-       rspi->sppcr = 0;
-       if (spi->mode & SPI_LOOP)
-               rspi->sppcr |= SPPCR_SPLP;
-
-       set_config_register(rspi, 8);
-
-       return 0;
-}
-
 static u16 qspi_transfer_mode(const struct spi_transfer *xfer)
 {
        if (xfer->tx_buf)
                                struct spi_message *msg)
 {
        struct rspi_data *rspi = spi_controller_get_devdata(ctlr);
+       struct spi_device *spi = msg->spi;
        int ret;
 
+       rspi->max_speed_hz = spi->max_speed_hz;
+
+       rspi->spcmd = SPCMD_SSLKP;
+       if (spi->mode & SPI_CPOL)
+               rspi->spcmd |= SPCMD_CPOL;
+       if (spi->mode & SPI_CPHA)
+               rspi->spcmd |= SPCMD_CPHA;
+
+       /* CMOS output mode and MOSI signal from previous transfer */
+       rspi->sppcr = 0;
+       if (spi->mode & SPI_LOOP)
+               rspi->sppcr |= SPPCR_SPLP;
+
+       set_config_register(rspi, 8);
+
        if (msg->spi->mode &
            (SPI_TX_DUAL | SPI_TX_QUAD | SPI_RX_DUAL | SPI_RX_QUAD)) {
                /* Setup sequencer for messages with multiple transfer modes */
        init_waitqueue_head(&rspi->wait);
 
        ctlr->bus_num = pdev->id;
-       ctlr->setup = rspi_setup;
        ctlr->auto_runtime_pm = true;
        ctlr->transfer_one = ops->transfer_one;
        ctlr->prepare_message = rspi_prepare_message;