aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/spi/spi-dw.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/spi/spi-dw.c b/drivers/spi/spi-dw.c
index e2f7c5c0f4ba..7064cd008539 100644
--- a/drivers/spi/spi-dw.c
+++ b/drivers/spi/spi-dw.c
@@ -591,6 +591,9 @@ static int dw_spi_setup(struct spi_device *spi)
591 | (spi->mode << SPI_MODE_OFFSET) 591 | (spi->mode << SPI_MODE_OFFSET)
592 | (chip->tmode << SPI_TMOD_OFFSET); 592 | (chip->tmode << SPI_TMOD_OFFSET);
593 593
594 if (spi->mode & SPI_LOOP)
595 chip->cr0 |= 1 << SPI_SRL_OFFSET;
596
594 if (gpio_is_valid(spi->cs_gpio)) { 597 if (gpio_is_valid(spi->cs_gpio)) {
595 ret = gpio_direction_output(spi->cs_gpio, 598 ret = gpio_direction_output(spi->cs_gpio,
596 !(spi->mode & SPI_CS_HIGH)); 599 !(spi->mode & SPI_CS_HIGH));
@@ -652,7 +655,7 @@ int dw_spi_add_host(struct device *dev, struct dw_spi *dws)
652 goto err_free_master; 655 goto err_free_master;
653 } 656 }
654 657
655 master->mode_bits = SPI_CPOL | SPI_CPHA; 658 master->mode_bits = SPI_CPOL | SPI_CPHA | SPI_LOOP;
656 master->bits_per_word_mask = SPI_BPW_MASK(8) | SPI_BPW_MASK(16); 659 master->bits_per_word_mask = SPI_BPW_MASK(8) | SPI_BPW_MASK(16);
657 master->bus_num = dws->bus_num; 660 master->bus_num = dws->bus_num;
658 master->num_chipselect = dws->num_cs; 661 master->num_chipselect = dws->num_cs;