diff options
-rw-r--r-- | drivers/spi/spi-dw.c | 5 |
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; |