d29389de0b
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>
45 lines
1.4 KiB
Makefile
45 lines
1.4 KiB
Makefile
#
|
|
# Makefile for kernel SPI drivers.
|
|
#
|
|
|
|
ifeq ($(CONFIG_SPI_DEBUG),y)
|
|
EXTRA_CFLAGS += -DDEBUG
|
|
endif
|
|
|
|
# small core, mostly translating board-specific
|
|
# config declarations into driver model code
|
|
obj-$(CONFIG_SPI_MASTER) += spi.o
|
|
|
|
# SPI master controller drivers (bus)
|
|
obj-$(CONFIG_SPI_ATMEL) += atmel_spi.o
|
|
obj-$(CONFIG_SPI_BFIN) += spi_bfin5xx.o
|
|
obj-$(CONFIG_SPI_BITBANG) += spi_bitbang.o
|
|
obj-$(CONFIG_SPI_AU1550) += au1550_spi.o
|
|
obj-$(CONFIG_SPI_BUTTERFLY) += spi_butterfly.o
|
|
obj-$(CONFIG_SPI_GPIO) += spi_gpio.o
|
|
obj-$(CONFIG_SPI_IMX) += spi_imx.o
|
|
obj-$(CONFIG_SPI_LM70_LLP) += spi_lm70llp.o
|
|
obj-$(CONFIG_SPI_PXA2XX) += pxa2xx_spi.o
|
|
obj-$(CONFIG_SPI_OMAP_UWIRE) += omap_uwire.o
|
|
obj-$(CONFIG_SPI_OMAP24XX) += omap2_mcspi.o
|
|
obj-$(CONFIG_SPI_ORION) += orion_spi.o
|
|
obj-$(CONFIG_SPI_MPC52xx_PSC) += mpc52xx_psc_spi.o
|
|
obj-$(CONFIG_SPI_MPC83xx) += spi_mpc83xx.o
|
|
obj-$(CONFIG_SPI_S3C24XX_GPIO) += spi_s3c24xx_gpio.o
|
|
obj-$(CONFIG_SPI_S3C24XX) += spi_s3c24xx.o
|
|
obj-$(CONFIG_SPI_TXX9) += spi_txx9.o
|
|
obj-$(CONFIG_SPI_XILINX) += xilinx_spi.o
|
|
obj-$(CONFIG_SPI_SH_SCI) += spi_sh_sci.o
|
|
# ... add above this line ...
|
|
|
|
# SPI protocol drivers (device/link on bus)
|
|
obj-$(CONFIG_SPI_AT25) += at25.o
|
|
obj-$(CONFIG_SPI_SPIDEV) += spidev.o
|
|
obj-$(CONFIG_SPI_TLE62X0) += tle62x0.o
|
|
# ... add above this line ...
|
|
|
|
# SPI slave controller drivers (upstream link)
|
|
# ... add above this line ...
|
|
|
|
# SPI slave drivers (protocol for that link)
|
|
# ... add above this line ...
|