OpenCloudOS-Kernel/drivers/spi
Jan Nikitenko 63bd23591e au1550 SPI controller driver
Here is a driver for the Alchemy au1550 PSC (Programmable Serial
Controller) in SPI master mode.

It supports dma transfers using the Alchemy descriptor based dma controller
for 4-8 bits per word SPI transfers.  For 9-24 bits per word transfers, pio
irq based mode is used to avoid setup of dma channels from scratch on each
number of bits per word change.

Tested with au1550; this may also work on other MIPS Alchemy cpus, like
au1200/au1210/au1250.  Used extensively with SD card connected via SPI;
this handles 8.1MHz SPI clock transfers using dma without any problem (the
highest SPI clock freq possible with au1550 running on 324MHz).

The driver supports sharing of SPI bus by multiple devices.  All features
of Alchemy SPI mode are supported (all SPI modes, msb/lsb first, bits per
word in 4-24 range).

As the SPI clock of the controller depends on main input clock that shall
be configured externally, platform data structure for au1550 SPI controller
driver contains mainclk_hz attribute to define the input clock rate.  From
this value, dividers of the controller for SPI clock are set up for
required frequency.

Signed-off-by: Jan Nikitenko <jan.nikitenko@gmail.com>

Whitespace and section fixups.  Remove partial workaround for platform
setup bug in dma_mask setup; it couldn't work with multiple controllers.

Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-05-08 11:15:16 -07:00
..
Kconfig au1550 SPI controller driver 2007-05-08 11:15:16 -07:00
Makefile au1550 SPI controller driver 2007-05-08 11:15:16 -07:00
at25.c [PATCH] SPI: at25: do not use pointer before assignment 2007-03-16 19:25:05 -07:00
atmel_spi.c [PATCH] gpio_direction_output() needs an initial value 2007-03-16 19:25:04 -07:00
atmel_spi.h [PATCH] SPI: atmel_spi driver 2007-02-14 08:09:53 -08:00
au1550_spi.c au1550 SPI controller driver 2007-05-08 11:15:16 -07:00
omap_uwire.c [PATCH] SPI controller build/warning fixes 2007-02-20 17:10:16 -08:00
pxa2xx_spi.c [PATCH] SPI cleanup() method param becomes non-const 2007-02-12 09:48:31 -08:00
spi.c SPI kerneldoc 2007-05-08 11:15:16 -07:00
spi_bfin5xx.c Blackfin: blackfin on-chip SPI controller driver 2007-05-07 12:12:58 -07:00
spi_bitbang.c [PATCH] spi: destroy workqueue after spi_unregister_master 2007-03-16 19:25:04 -07:00
spi_butterfly.c minor spi_butterfly cleanup 2007-05-08 11:15:15 -07:00
spi_imx.c [PATCH] SPI controller build/warning fixes 2007-02-20 17:10:16 -08:00
spi_mpc83xx.c [PATCH] SPI: define null tx_buf to mean "shift out zeroes" 2006-12-30 10:56:42 -08:00
spi_s3c24xx.c spi_s3c24xx.c: Fix build 2007-05-07 12:13:04 -07:00
spi_s3c24xx_gpio.c [PATCH] spi_s3c2410_gpio.c spi mode 2 and 3 support 2007-02-20 17:10:16 -08:00
spidev.c /dev/spidevB.C interface 2007-05-08 11:15:15 -07:00