diff --git a/drivers/spi/spi_imx.c b/drivers/spi/spi_imx.c
index b1f530fd6bdc48368a73940d8f04af33bb249725..a8f9bff529e5a4c4f7c4750284a1a4fe1ec45551 100644
--- a/drivers/spi/spi_imx.c
+++ b/drivers/spi/spi_imx.c
@@ -443,6 +443,13 @@ static int spi_imx_setupxfer(struct spi_device *spi,
 	config.speed_hz  = t ? t->speed_hz : spi->max_speed_hz;
 	config.mode = spi->mode;
 
+	if (!config.speed_hz)
+		config.speed_hz = spi->max_speed_hz;
+	if (!config.bpw)
+		config.bpw = spi->bits_per_word;
+	if (!config.speed_hz)
+		config.speed_hz = spi->max_speed_hz;
+
 	spi_imx->config(spi_imx, &config);
 
 	return 0;