android_kernel_motorola_sm6225/drivers
David Brownell 9904f22a72 [PATCH] spi: add spi_bitbang driver
This adds a bitbanging spi master, hooking up to board/adapter-specific glue
code which knows how to set and read the signals (gpios etc).

This code kicks in after the glue code creates a platform_device with the
right platform_data.  That data includes I/O loops, which will usually
come from expanding an inline function (provided in the header).  One goal
is that the I/O loops should be easily optimized down to a few GPIO register
accesses, in common cases, for speed and minimized overhead.

This understands all the currently defined protocol tweaking options in the
SPI framework, and might eventually serve as as reference implementation.

  - different word sizes (1..32 bits)
  - differing clock rates
  - SPI modes differing by CPOL (affecting chip select and I/O loops)
  - SPI modes differing by CPHA (affecting I/O loops)
  - delays (usecs) after transfers
  - temporarily deselecting chips in mid-transfer

A lot of hardware could work with this framework, though common types of
controller can't reach peak performance without switching to a driver
structure that supports pipelining of transfers (e.g.  DMA queues) and maybe
controllers (e.g.  IRQ driven).

Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2006-01-13 16:29:55 -08:00
..
acorn [PATCH] move capable() to capability.h 2006-01-11 18:42:13 -08:00
acpi [PATCH] i386: Handle missing local APIC timer interrupts on C3 state 2006-01-11 19:04:54 -08:00
amba [ARM] Remove asm/irq.h includes from ARM drivers 2006-01-09 13:56:42 +00:00
atm [ATM]: Remove unneeded kmalloc() return value casts + tiny whitespace cleanup 2006-01-10 13:09:01 -08:00
base [PATCH] move capable() to capability.h 2006-01-11 18:42:13 -08:00
block Merge git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc-merge 2006-01-12 10:21:22 -08:00
bluetooth [PATCH] TTY layer buffering revamp 2006-01-10 08:01:59 -08:00
cdrom [PATCH] powerpc: remove bitfields from HvLpEvent 2006-01-12 20:09:29 +11:00
char Merge branch 'drm-forlinus' of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6 2006-01-12 13:53:40 -08:00
connector [PATCH] Switch getnstimestamp() calls to ktime_get_ts() 2006-01-10 08:01:39 -08:00
cpufreq [CPUFREQ] CPU frequency display in /proc/cpuinfo 2005-12-06 19:35:11 -08:00
crypto [CRYPTO] Allow AES C/ASM implementations to coexist 2006-01-09 14:15:39 -08:00
dio [PATCH] drivers/dio: kmalloc + memset -> kzalloc conversion 2005-11-07 07:53:59 -08:00
eisa [PATCH] drivers/eisa: kmalloc + memset -> kzalloc conversion 2005-11-07 07:53:59 -08:00
fc4 [SPARC]: introduce a SPARC Kconfig symbol 2005-12-22 23:09:54 -08:00
firmware [PATCH] move capable() to capability.h 2006-01-11 18:42:13 -08:00
hwmon [PATCH] drivers/*rest*: Replace pci_module_init() with pci_register_driver() 2006-01-09 12:13:23 -08:00
i2c [ARM] 3237/1: PXA I2C driver updates 2006-01-12 16:30:23 +00:00
ide [PATCH] Revert ide softirq handling 2006-01-12 12:00:47 -08:00
ieee1394 [PATCH] don't include ioctl32.h in drivers 2006-01-10 08:01:34 -08:00
infiniband Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband 2006-01-08 20:18:44 -08:00
input [PATCH] spi: ads7836 uses spi_driver 2006-01-13 16:29:55 -08:00
isdn [PATCH] TTY layer buffering revamp 2006-01-10 08:01:59 -08:00
macintosh [PATCH] m68k: NULL noise removal 2006-01-12 09:09:04 -08:00
mca
md [PATCH] md: remove slashes from disk names when creation dev names in sysfs 2006-01-12 09:08:49 -08:00
media V4L/DVB (3354): VIDEO_SAA7134_ALSA shouldn't select SND_PCM_OSS 2006-01-12 00:37:59 -02:00
message [PATCH] don't include ioctl32.h in drivers 2006-01-10 08:01:34 -08:00
mfd [MMC+MFD] Convert mmc to mutexes 2006-01-12 18:43:35 +00:00
misc Input: ibmasm - fix input initialization error path 2006-01-10 02:00:39 -05:00
mmc [MMC+MFD] Convert mmc to mutexes 2006-01-12 18:43:35 +00:00
mtd [PATCH] spi: mtd dataflash driver 2006-01-13 16:29:54 -08:00
net [PATCH] via-velocity: use NETIF_F_IP_CSUM (hardware only support IPv4) 2006-01-12 16:39:45 -05:00
nubus
oprofile [PATCH] move capable() to capability.h 2006-01-11 18:42:13 -08:00
parisc [PATCH] move capable() to capability.h 2006-01-11 18:42:13 -08:00
parport [PARISC] Fix parport_gsc by selecting PARPORT_NOT_PC 2006-01-10 21:52:25 -05:00
pci Merge master.kernel.org:/pub/scm/linux/kernel/git/gregkh/pci-2.6 2006-01-09 18:41:42 -08:00
pcmcia Merge git://git.kernel.org/pub/scm/linux/kernel/git/brodo/pcmcia-fixes-2.6 2006-01-12 14:00:47 -08:00
pnp [PATCH] x86: Fixed pnp bios limits 2006-01-06 08:33:35 -08:00
rapidio [PATCH] fix more missing includes 2006-01-08 20:13:45 -08:00
s390 [PATCH] TTY layer buffering revamp 2006-01-10 08:01:59 -08:00
sbus [PATCH] sbus/char/uctrl: missing prototypes and NULL noise removal 2005-12-15 10:01:28 -08:00
scsi [PATCH] m68k: fix PIO case in esp 2006-01-12 09:09:05 -08:00
serial Merge git://git.kernel.org/pub/scm/linux/kernel/git/brodo/pcmcia-fixes-2.6 2006-01-12 14:00:47 -08:00
sh [PATCH] superhyway: multiple block support and VCR rework 2005-11-07 07:53:28 -08:00
sn
spi [PATCH] spi: add spi_bitbang driver 2006-01-13 16:29:55 -08:00
tc [MIPS] zs.c: Resurrect the deceased zs.c for now. 2005-11-17 16:23:39 +00:00
telephony [PATCH] pcmcia: unify attach, EVENT_CARD_INSERTION handlers into one probe callback 2006-01-06 00:03:24 +01:00
usb [PATCH] TTY layer buffering revamp 2006-01-10 08:01:59 -08:00
video [PATCH] m68k: fix macfb init 2006-01-12 09:09:05 -08:00
w1 spelling: s/usefull/useful/ 2006-01-10 00:08:17 +01:00
zorro [PATCH] m68k: zorro __user annotations 2006-01-12 09:09:04 -08:00
Kconfig [PATCH] spi: simple SPI framework 2006-01-13 16:29:54 -08:00
Makefile [PATCH] spi: simple SPI framework 2006-01-13 16:29:54 -08:00