58 lines
1.7 KiB
Diff
58 lines
1.7 KiB
Diff
--- 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)
|
|
--- a/include/linux/spi/spi.h
|
|
+++ b/include/linux/spi/spi.h
|
|
@@ -508,6 +508,13 @@ struct spi_transfer {
|
|
u32 speed_hz;
|
|
|
|
struct list_head transfer_list;
|
|
+
|
|
+#ifdef CONFIG_ARCH_CNS3XXX
|
|
+ unsigned last_in_message_list;
|
|
+#ifdef CONFIG_SPI_CNS3XXX_2IOREAD
|
|
+ u8 dio_read;
|
|
+#endif
|
|
+#endif
|
|
};
|
|
|
|
/**
|