1
linux/drivers/spi
Wolfgang Muees 93b61bddc1 Blackfin SPI Driver: Make mmc_spi driver work on Blackfin
1. Rewrite of the non-dma data transfer functions to use only ONE mode
   of TIMOD (TIMOD=0x1).  With TIMOD=0, it was not possible to set the TX
   bit pattern.  So the TDBR = 0xFFFF inside the read calls won't work.

2. Clear SPI_RDBR before reading and before duplex transfer.
   Otherwise the garbage data in RDBR will get read.  Since mmc_spi uses a
   lot of duplex transfers, this is the main cause of mmc_spi failure.

3. Poll RXS for transfer completion.  Polling SPIF or TXS cannot
   guarantee transfer completion.  This may interrupt a transfer before it
   is finished.  Also this may leave garbage data in buffer and affect
   next transfer.

[Yi Li <yi.li@analog.com>: add a field "u16 idle_tx_val" in "struct
bfin5xx_spi_chip" to specify the value to transmit if no TX value
is supplied.]
Signed-off-by: Wolfgang Muees <wolfgang.mues@auerswald.de>
Signed-off-by: Yi Li <yi.li@analog.com>
Signed-off-by: Bryan Wu <cooloney@kernel.org>
Cc: David Brownell <david-b@pacbell.net>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2009-04-07 08:31:06 -07:00
..
atmel_spi.c spi: struct device - replace bus_id with dev_name(), dev_set_name() 2009-03-24 16:38:21 -07:00
atmel_spi.h
au1550_spi.c spi: au1550_spi full duplex dma fix 2008-12-01 19:55:24 -08:00
Kconfig spi: Move at25 (for SPI eeproms) to /drivers/misc/eeprom 2009-01-26 21:19:54 +01:00
Makefile spi: Move at25 (for SPI eeproms) to /drivers/misc/eeprom 2009-01-26 21:19:54 +01:00
mpc52xx_psc_spi.c spi: struct device - replace bus_id with dev_name(), dev_set_name() 2009-03-24 16:38:21 -07:00
omap2_mcspi.c Merge branch 'origin' into devel 2009-03-28 20:29:51 +00:00
omap_uwire.c Merge branch 'origin' into devel 2009-03-28 20:29:51 +00:00
orion_spi.c spi: struct device - replace bus_id with dev_name(), dev_set_name() 2009-03-24 16:38:21 -07:00
pxa2xx_spi.c Merge branch 'origin' into devel 2009-03-28 20:29:51 +00:00
spi_bfin5xx.c Blackfin SPI Driver: Make mmc_spi driver work on Blackfin 2009-04-07 08:31:06 -07:00
spi_bitbang.c spi: struct device - replace bus_id with dev_name(), dev_set_name() 2009-01-06 10:44:37 -08:00
spi_butterfly.c spi: struct device - replace bus_id with dev_name(), dev_set_name() 2009-01-06 10:44:37 -08:00
spi_gpio.c spi-gpio: allow operation without CS signal 2009-04-02 19:04:51 -07:00
spi_imx.c spi: struct device - replace bus_id with dev_name(), dev_set_name() 2009-03-24 16:38:21 -07:00
spi_lm70llp.c hwmon: (lm70) Code streamlining and cleanup 2009-01-07 16:37:34 +01:00
spi_mpc83xx.c spi_mpc83xx: add OF platform driver bindings 2009-04-01 08:59:22 -07:00
spi_s3c24xx_gpio.c spi: fix spi_s3c24xx_gpio num_chipselect 2008-12-01 19:55:24 -08:00
spi_s3c24xx.c spi: use generic gpio calls in spi_s3c24xx_gpio 2009-01-06 15:59:19 -08:00
spi_sh_sci.c
spi_txx9.c spi: struct device - replace bus_id with dev_name(), dev_set_name() 2009-03-24 16:38:21 -07:00
spi.c spi: struct device - replace bus_id with dev_name(), dev_set_name() 2009-01-06 10:44:37 -08:00
spidev.c
tle62x0.c
xilinx_spi.c powerpc/virtex/spi: Xilinx SPI driver not releasing memory 2009-03-11 09:36:20 -06:00