spi: SuperH MSIOF SPI Master driver V2
authorMagnus Damm <damm@opensource.se>
Thu, 26 Nov 2009 11:10:05 +0000 (11:10 +0000)
committerGrant Likely <grant.likely@secretlab.ca>
Sun, 13 Dec 2009 07:48:27 +0000 (00:48 -0700)
commit8051effcbced8478119167b93b0e9554cb82d28e
tree03ce88851ca697c8ed5f1d8eadcb32972342dbac
parent41df70d9ac2d0d36b23a0ec4866f67e540f366ff
spi: SuperH MSIOF SPI Master driver V2

This patch is V2 of SPI Master support for the SuperH MSIOF.
Full duplex, spi mode 0-3, active high cs, 3-wire and lsb
first should all be supported, but the driver has so far
only been tested with "mmc_spi".

The MSIOF hardware comes with 32-bit FIFOs for receive and
transmit, and this driver simply breaks the SPI messages
into FIFO-sized chunks. The MSIOF hardware manages the pins
for clock, receive and transmit (sck/miso/mosi), but the chip
select pin is managed by software and must be configured as
a regular GPIO pin by the board code.

Performance wise there is still room for improvement, but
on a Ecovec board with the built-in sh7724 MSIOF0 this driver
gets Mini-sd read speeds of about half a megabyte per second.

Future work include better clock setup and merging of 8-bit
transfers into 32-bit words to reduce interrupt load and
improve throughput.

Signed-off-by: Magnus Damm <damm@opensource.se>
Signed-off-by: Grant Likely <grant.likely@secretlab.ca>
drivers/spi/Kconfig
drivers/spi/Makefile
drivers/spi/spi_sh_msiof.c [new file with mode: 0644]
include/linux/spi/sh_msiof.h [new file with mode: 0644]