--- a/drivers/spi/Kconfig +++ b/drivers/spi/Kconfig @@ -117,6 +117,13 @@ config SPI_BUTTERFLY inexpensive battery powered microcontroller evaluation board. This same cable can be used to flash new firmware. +config SPI_CNS3XXX + tristate "CNS3XXX SPI controller" + depends on ARCH_CNS3XXX && SPI_MASTER + select SPI_BITBANG + help + This enables using the CNS3XXX SPI controller in master mode. + config SPI_COLDFIRE_QSPI tristate "Freescale Coldfire QSPI controller" depends on (M520x || M523x || M5249 || M527x || M528x || M532x) --- a/drivers/spi/Makefile +++ b/drivers/spi/Makefile @@ -18,6 +18,7 @@ obj-$(CONFIG_SPI_BFIN) += spi-bfin5xx. obj-$(CONFIG_SPI_BFIN_SPORT) += spi-bfin-sport.o obj-$(CONFIG_SPI_BITBANG) += spi-bitbang.o obj-$(CONFIG_SPI_BUTTERFLY) += spi-butterfly.o +obj-$(CONFIG_SPI_CNS3XXX) += spi-cns3xxx.o obj-$(CONFIG_SPI_COLDFIRE_QSPI) += spi-coldfire-qspi.o obj-$(CONFIG_SPI_DAVINCI) += spi-davinci.o obj-$(CONFIG_SPI_DESIGNWARE) += spi-dw.o --- a/drivers/spi/spi-bitbang.c +++ b/drivers/spi/spi-bitbang.c @@ -330,6 +330,12 @@ static void bitbang_work(struct work_str */ if (!m->is_dma_mapped) t->rx_dma = t->tx_dma = 0; + + if (t->transfer_list.next == &m->transfers) + t->last_in_message_list = 1; + else + t->last_in_message_list = 0; + status = bitbang->txrx_bufs(spi, t); } if (status > 0)