u-boot/drivers/spi
Marek Vasut e9f7eafd3c MX28: SPI: Fix the DMA chaining
It turns out that in order for the SPI DMA to properly support
continuous transfers longer than 65280 bytes, there are some very
important parts that were left out from the documentation.

Firstly, the XFER_SIZE register is not written with the whole length
of a transfer, but is written by each and every chained descriptor
with the length of the descriptors data buffer.

Next, unlike the demo code supplied by FSL, which only writes one PIO
word per descriptor, this does not apply if the descriptors are chained,
since the XFER_SIZE register must be written. Therefore, it is essential
to use four PIO words, CTRL0, CMD0, CMD1, XFER_SIZE. CMD0 and CMD1 are
written with zero, since they don't apply. The DMA programs the PIO words
in an incrementing order, so four PIO words.

Finally, unlike the demo code supplied by FSL, the SSP_CTRL0_IGNORE_CRC
must not be set during the whole transfer, but it must be set only on the
last descriptor in the chain.

Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Fabio Estevam <festevam@gmail.com>
Cc: Otavio Salvador <otavio@ossystems.com.br>
Cc: Stefano Babic <sbabic@denx.de>
2012-09-06 14:17:55 +02:00
..
altera_spi.c altera_spi: add spi_set_speed 2011-02-08 08:29:53 -05:00
andes_spi.c andes_spi: add andes_spi interface 2011-07-25 23:40:11 +02:00
andes_spi.h andes_spi: add andes_spi interface 2011-07-25 23:40:11 +02:00
armada100_spi.c SPI: Add SPI driver support for Marvell Armada100 2011-10-27 21:56:32 +02:00
atmel_dataflash_spi.c AT91/SPI: fix atmel_dataflash_spi.c to allow building without warnings 2011-08-03 13:00:56 +02:00
atmel_spi.c spi: atmel: add WDRBT bit to avoid receive overrun 2012-09-01 17:06:14 +02:00
atmel_spi.h spi: atmel: add WDRBT bit to avoid receive overrun 2012-09-01 17:06:14 +02:00
bfin_spi.c Blackfin: bfin_spi: fix build error when DEBUG is defined 2011-10-16 14:22:19 -04:00
cf_spi.c add CONFIG_SPI_IDLE_VAL for cf_spi.c to allow use of spi_mmc 2011-04-13 06:35:22 -05:00
davinci_spi.c Davinci: SPI: add the missing v2 patch changes 2010-07-05 20:00:40 -04:00
davinci_spi.h TI DaVinci: Driver for the davinci SPI controller 2010-02-12 12:31:53 -06:00
fsl_espi.c GCC4.6: Squash warnings in fsl_espi.c 2011-10-27 23:54:05 +02:00
kirkwood_spi.c kw_spi: fix clock prescaler computation 2012-09-03 17:28:51 +05:30
Makefile spi: Fix merge conflicts - Makefile 2012-08-07 23:08:14 +02:00
mpc8xxx_spi.c Move arch/ppc to arch/powerpc 2010-04-21 23:42:38 +02:00
mpc52xx_spi.c mpc52xx: Add SPI driver. 2009-06-14 23:01:38 +02:00
mxc_spi.c spi: fix mxc_spi_slave structure allocation to clear memory 2012-09-01 14:58:27 +02:00
mxs_spi.c MX28: SPI: Fix the DMA chaining 2012-09-06 14:17:55 +02:00
oc_tiny_spi.c spi: add new driver for OpenCores tiny_spi 2011-04-30 20:58:36 +02:00
omap3_spi.c am335x evm: Enable support for spi0 2012-09-01 14:58:19 +02:00
omap3_spi.h am33xx: Add support, update omap3 McSPI driver 2012-09-01 14:58:18 +02:00
sh_spi.c sh_spi: Add 4 chip select signals supporting 2012-03-26 10:09:31 +09:00
sh_spi.h sh_spi: Add 4 chip select signals supporting 2012-03-26 10:09:31 +09:00
soft_spi.c rename CFG_ macros to CONFIG_SYS 2008-10-18 21:54:03 +02:00
tegra_spi.c tegra20: rename tegra2 -> tegra20 2012-09-01 14:58:21 +02:00
xilinx_spi.c spi: microblaze: Adds driver for Xilinx SPI controller 2012-07-31 07:14:04 +02:00
xilinx_spi.h spi: microblaze: Adds driver for Xilinx SPI controller 2012-07-31 07:14:04 +02:00