linux/arch/blackfin
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
..
boot kbuild: use KECHO convenience echo 2008-12-03 21:32:01 +01:00
configs Blackfin arch: update default kernel configuration 2009-03-28 23:46:17 +08:00
include/asm Blackfin SPI Driver: Make mmc_spi driver work on Blackfin 2009-04-07 08:31:06 -07:00
kernel Merge git://git.infradead.org/mtd-2.6 2009-04-06 14:56:26 -07:00
lib Blackfin arch: merge adeos blackfin part to arch/blackfin/ 2009-01-07 23:14:39 +08:00
mach-bf518 Blackfin arch: add RSI's definitions to bf514 and bf516 2009-03-29 01:03:20 +08:00
mach-bf527 Blackfin arch: convert BF5{18,27,48}_FAMILY to CONFIG_BF{51,52,54}x 2009-03-28 20:32:57 +08:00
mach-bf533 Blackfin arch: SPI_MMC is now mainlined MMC_SPI 2009-03-06 00:27:57 +08:00
mach-bf537 Blackfin arch: add sport-spi related resource stuff to board file 2009-03-28 23:28:51 +08:00
mach-bf538 Blackfin arch: add stubs for anomalies 447 and 448 2009-03-06 00:20:49 +08:00
mach-bf548 Blackfin arch: convert BF5{18,27,48}_FAMILY to CONFIG_BF{51,52,54}x 2009-03-28 20:32:57 +08:00
mach-bf561 Blackfin arch: SPI_MMC is now mainlined MMC_SPI 2009-03-06 00:27:57 +08:00
mach-common Blackfin arch: Blacklist Hibernate (PM_SUSPEND_MEM) on BF561 as well 2009-03-28 23:14:41 +08:00
mm proc 2/2: remove struct proc_dir_entry::owner 2009-03-31 01:14:44 +04:00
oprofile Blackfin arch: remove hardware PM code, oprofile not use it 2009-01-07 23:14:39 +08:00
Kconfig trivial: fix typos/grammar errors in Kconfig texts 2009-03-30 15:22:01 +02:00
Kconfig.debug Blackfin arch: use common KGDB_TESTS rather than our own KGDB_TESTCASE 2009-03-02 18:14:47 +08:00
Makefile Blackfin arch: line up machine-/cpu- vars after BF54xM addition 2009-02-04 16:49:45 +08:00