OpenCloudOS-Kernel/drivers/spi
Mingkai Hu 8b60d6c25b spi/fsl_spi: add eSPI controller support
Add eSPI controller support based on the library code spi_fsl_lib.c.

The eSPI controller is newer controller 85xx/Pxxx devices supported.
There're some differences comparing to the SPI controller:

1. Has different register map and different bit definition
   So leave the code operated the register to the driver code, not
   the common code.

2. Support 4 dedicated chip selects
   The software can't controll the chip selects directly, The SPCOM[CS]
   field is used to select which chip selects is used, and the
   SPCOM[TRANLEN] field is set to tell the controller how long the CS
   signal need to be asserted. So the driver doesn't need the chipselect
   related function when transfering data, just set corresponding register
   fields to controll the chipseclect.

3. Different Transmit/Receive FIFO access register behavior
   For SPI controller, the Tx/Rx FIFO access register can hold only
   one character regardless of the character length, but for eSPI
   controller, the register can hold 4 or 2 characters according to
   the character lengths. Access the Tx/Rx FIFO access register of the
   eSPI controller will shift out/in 4/2 characters one time. For SPI
   subsystem, the command and data are put into different transfers, so
   we need to combine all the transfers to one transfer in order to pass
   the transfer to eSPI controller.

4. The max transaction length limitation
   The max transaction length one time is limitted by the SPCOM[TRANSLEN]
   field which is 0xFFFF. When used mkfs.ext2 command to create ext2
   filesystem on the flash, the read length will exceed the max value of
   the SPCOM[TRANSLEN] field.

Signed-off-by: Mingkai Hu <Mingkai.hu@freescale.com>
Signed-off-by: Grant Likely <grant.likely@secretlab.ca>
2010-10-12 21:38:12 -06:00
..
Kconfig spi/fsl_spi: add eSPI controller support 2010-10-12 21:38:12 -06:00
Makefile spi/fsl_spi: add eSPI controller support 2010-10-12 21:38:12 -06:00
amba-pl022.c spi/pl022: fix dubious allocation staticize platform data 2010-10-12 21:37:37 -06:00
atmel_spi.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
atmel_spi.h [PATCH] SPI: atmel_spi driver 2007-02-14 08:09:53 -08:00
au1550_spi.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
coldfire_qspi.c m68knommu: include sched.h in ColdFire/SPI driver 2010-08-18 12:44:31 +10:00
davinci_spi.c spi/davinci: Fix clock prescale factor computation 2010-05-25 00:23:54 -06:00
dw_spi.c spi/dw_spi: clean the cs_control code 2010-09-08 10:50:00 -06:00
dw_spi_mmio.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
dw_spi_pci.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
ep93xx_spi.c spi/ep93xx: implemented driver for Cirrus EP93xx SPI controller 2010-05-25 00:23:16 -06:00
mpc52xx_psc_spi.c of/device: Replace struct of_device with struct platform_device 2010-08-06 09:25:50 -06:00
mpc52xx_spi.c of/device: Replace struct of_device with struct platform_device 2010-08-06 09:25:50 -06:00
mpc512x_psc_spi.c Merge branch 'next-spi' of git://git.secretlab.ca/git/linux-2.6 2010-08-14 11:54:09 -07:00
omap2_mcspi.c spi: omap2_mcspi: make use of dev_vdbg() 2010-09-29 17:31:29 +09:00
omap_spi_100k.c SPI100k: Fix 8-bit and RX-only transfers 2010-07-03 22:45:44 -06:00
omap_uwire.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
orion_spi.c spi/orion: Drop unnecessary null test 2010-09-29 17:31:29 +09:00
pxa2xx_spi.c [ARM] pxa: add namespace on ssp 2010-05-11 17:25:06 +02:00
spi.c of/spi: Fix OF-style driver binding of spi devices 2010-10-02 21:28:29 -06:00
spi_bfin5xx.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
spi_bitbang.c spi/bitbang: reinitialize transfer parameters for every message 2010-07-03 22:59:18 -06:00
spi_bitbang_txrx.h spi/bitbang: add support for SPI_MASTER_NO_{TX, RX} modes 2010-07-03 22:45:44 -06:00
spi_butterfly.c spi/bitbang: add support for SPI_MASTER_NO_{TX, RX} modes 2010-07-03 22:45:44 -06:00
spi_fsl_espi.c spi/fsl_spi: add eSPI controller support 2010-10-12 21:38:12 -06:00
spi_fsl_lib.c spi/mpc8xxx: refactor the common code for SPI/eSPI controller 2010-10-12 21:38:12 -06:00
spi_fsl_lib.h spi/fsl_spi: add eSPI controller support 2010-10-12 21:38:12 -06:00
spi_fsl_spi.c spi/mpc8xxx: refactor the common code for SPI/eSPI controller 2010-10-12 21:38:12 -06:00
spi_gpio.c spi: spi-gpio.c tests SPI_MASTER_NO_RX bit twice, but not SPI_MASTER_NO_TX 2010-10-02 21:09:08 -06:00
spi_imx.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
spi_lm70llp.c spi/bitbang: add support for SPI_MASTER_NO_{TX, RX} modes 2010-07-03 22:45:44 -06:00
spi_nuc900.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
spi_ppc4xx.c of/device: Replace struct of_device with struct platform_device 2010-08-06 09:25:50 -06:00
spi_s3c24xx.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
spi_s3c24xx_fiq.S spi_s3c24xx: add FIQ pseudo-DMA support 2009-12-17 08:57:01 -07:00
spi_s3c24xx_fiq.h spi_s3c24xx: add FIQ pseudo-DMA support 2009-12-17 08:57:01 -07:00
spi_s3c24xx_gpio.c spi/bitbang: add support for SPI_MASTER_NO_{TX, RX} modes 2010-07-03 22:45:44 -06:00
spi_s3c64xx.c spi/s3c64xx: Correction for 16,32 bits bus width 2010-09-29 17:31:33 +09:00
spi_sh_msiof.c Merge branch 'next-spi' of git://git.secretlab.ca/git/linux-2.6 2010-02-25 15:38:03 -08:00
spi_sh_sci.c spi/bitbang: add support for SPI_MASTER_NO_{TX, RX} modes 2010-07-03 22:45:44 -06:00
spi_stmp.c spi: Fix reversed args to time_before() in Freescale stmp driver. 2010-01-20 13:49:44 -07:00
spi_topcliff_pch.c spi/topcliff: cleanups for style and conciseness 2010-10-12 21:37:37 -06:00
spi_txx9.c Merge branch 'next-spi' of git://git.secretlab.ca/git/linux-2.6 2009-12-17 15:59:05 -08:00
spidev.c Merge branch 'next-spi' of git://git.secretlab.ca/git/linux-2.6 2009-12-17 15:59:05 -08:00
tle62x0.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
xilinx_spi.c of/spi: call of_register_spi_devices() from spi core code 2010-07-30 00:03:59 -06:00
xilinx_spi.h xilinx_spi: Split into of driver and generic part. 2009-12-08 18:48:14 -07:00
xilinx_spi_of.c of/device: Replace struct of_device with struct platform_device 2010-08-06 09:25:50 -06:00
xilinx_spi_pltfm.c xilinx_spi: add a platform driver using the xilinx_spi common module. 2009-12-08 18:48:14 -07:00