android_kernel_xiaomi_sm8350/drivers/spi
David Brownell d29389de0b spi_gpio driver
Generalize the old at91rm9200 "bootstrap" bitbanging SPI master driver as
"spi_gpio", so it works with arbitrary GPIOs and can be configured through
platform_data.  Such SPI masters support:

 - any number of bus instances (bus_num is the platform_device.id)
 - any number of chipselects (one GPIO per spi_device)
 - all four SPI_MODE values, and SPI_CS_HIGH
 - i/o word sizes from 1 to 32 bits;
 - devices configured as with any other spi_master controller

When configured using platform_data, this provides relatively low clock
rates.  On platforms that support inlined GPIO calls, significantly
improved transfer speeds are also possible with a semi-custom driver.
(It's still painful when accessing flash memory, but less so.)

Sanity checked by using this version to replace both native controllers on
a board with six different SPI slaves, relying on three different
SPI_MODE_* values and both SPI_CS_HIGH settings for correct operation.

[akpm@linux-foundation.org: cleanups]
Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Acked-by: Magnus Damm <damm@igel.co.jp>
Tested-by: Magnus Damm <damm@igel.co.jp>
Cc: Torgil Svensson <torgil.svensson@gmail.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2009-01-06 15:59:19 -08:00
..
at25.c
atmel_spi.c atmel_spi: work-around required for new HW bug in AT91SAM9263 Rev.B SPI controller 2008-11-12 17:17:17 -08:00
atmel_spi.h
au1550_spi.c spi: au1550_spi full duplex dma fix 2008-12-01 19:55:24 -08:00
Kconfig spi_gpio driver 2009-01-06 15:59:19 -08:00
Makefile spi_gpio driver 2009-01-06 15:59:19 -08:00
mpc52xx_psc_spi.c spi: mpc52xx_psc_spi chipselect bugfix 2008-12-01 19:55:24 -08:00
omap2_mcspi.c [ARM] omap: convert OMAP drivers to use ioremap() 2008-09-05 17:02:30 +01:00
omap_uwire.c [ARM] omap: convert OMAP drivers to use ioremap() 2008-09-05 17:02:30 +01:00
orion_spi.c orion_spi: handle 88F6183 erratum 2008-10-16 11:21:38 -07:00
pxa2xx_spi.c [ARM] Hide ISA DMA API when ISA_DMA_API is unset 2008-11-29 18:42:40 +00:00
spi_bfin5xx.c spi_bfin5xx: use PIO for full duplex, not DMA 2008-05-01 08:04:01 -07:00
spi_bitbang.c spi: replace remaining __FUNCTION__ occurrences 2008-04-28 08:58:31 -07:00
spi_butterfly.c
spi_gpio.c spi_gpio driver 2009-01-06 15:59:19 -08:00
spi_imx.c spi: fix spi_imx probe oopsing 2008-12-01 19:55:24 -08:00
spi_lm70llp.c
spi_mpc83xx.c spi_mpc83xx: reject invalid transfer sizes 2008-09-13 14:41:51 -07:00
spi_s3c24xx_gpio.c spi: fix spi_s3c24xx_gpio num_chipselect 2008-12-01 19:55:24 -08:00
spi_s3c24xx.c [ARM] S3C: Move plat/regs-spi.h to arch/arm/plat-s3c/include/plat. 2008-10-30 10:17:15 +00:00
spi_sh_sci.c spi: fix platform driver hotplug/coldplug 2008-04-11 08:06:43 -07:00
spi_txx9.c spi: fix platform driver hotplug/coldplug 2008-04-11 08:06:43 -07:00
spi.c spi: core and gpio expanders use subsys_init 2008-10-16 11:21:38 -07:00
spidev.c spi: avoid spidev crash when device is removed 2008-12-01 19:55:24 -08:00
tle62x0.c
xilinx_spi.c xilinx_spi: test below 0 on unsigned irq in xilinx_spi_probe() 2008-07-24 10:47:30 -07:00