kernel-ark/arch/arm
David Brownell 8ae12a0d85 [PATCH] spi: simple SPI framework
This is the core of a small SPI framework, implementing the model of a
queue of messages which complete asynchronously (with thin synchronous
wrappers on top).

  - It's still less than 2KB of ".text" (ARM).  If there's got to be a
    mid-layer for something so simple, that's the right size budget.  :)

  - The guts use board-specific SPI device tables to build the driver
    model tree.  (Hardware probing is rarely an option.)

  - This version of Kconfig includes no drivers.  At this writing there
    are two known master controller drivers (PXA/SSP, OMAP MicroWire)
    and three protocol drivers (CS8415a, ADS7846, DataFlash) with LKML
    mentions of other drivers in development.

  - No userspace API.  There are several implementations to compare.
    Implement them like any other driver, and bind them with sysfs.

The changes from last version posted to LKML (on 11-Nov-2005) are minor,
and include:

  - One bugfix (removes a FIXME), with the visible effect of making device
    names be "spiB.C" where B is the bus number and C is the chipselect.

  - The "caller provides DMA mappings" mechanism now has kerneldoc, for
    DMA drivers that want to be fancy.

  - Hey, the framework init can be subsys_init.  Even though board init
    logic fires earlier, at arch_init ... since the framework init is
    for driver support, and the board init support uses static init.

  - Various additional spec/doc clarifications based on discussions
    with other folk.  It adds a brief "thank you" at the end, for folk
    who've helped nudge this framework into existence.

As I've said before, I think that "protocol tweaking" is the main support
that this driver framework will need to evolve.

From: Mark Underwood <basicmark@yahoo.com>

  Update the SPI framework to remove a potential priority inversion case by
  reverting to kmalloc if the pre-allocated DMA-safe buffer isn't available.

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:54 -08:00
..
boot [ARM] Allow r2 to be passed through the decompressor to the kernel 2006-01-12 17:17:57 +00:00
common Merge master.kernel.org:/home/rmk/linux-2.6-arm 2006-01-12 12:23:49 -08:00
configs [ARM] 3247/1: AT91RM9200 support for 2.6 (Cogent CSB337 & CSB637 boards) (Patch 2006-01-10 16:59:29 +00:00
kernel Merge master.kernel.org:/home/rmk/linux-2.6-arm 2006-01-12 12:23:49 -08:00
lib [ARM] 3256/1: Make the function-returning ldm's use sp as the base register 2006-01-12 16:53:51 +00:00
mach-aaec2000 [ARM] Convert some arm semaphores to mutexes 2006-01-12 18:42:23 +00:00
mach-at91rm9200 [ARM] 3247/1: AT91RM9200 support for 2.6 (Cogent CSB337 & CSB637 boards) (Patch 2006-01-10 16:59:29 +00:00
mach-clps711x [ARM] Remove unused dma.c files 2006-01-04 14:06:31 +00:00
mach-clps7500 [ARM] Shut up gcc warning in clps7500 core.c 2005-11-21 17:03:15 +00:00
mach-ebsa110 [ARM] Convert EBSA110 network driver to a platform driver 2005-10-31 17:14:57 +00:00
mach-footbridge [PATCH] ARM: Netwinder ds1620 driver needs an export to be built as module 2006-01-08 20:13:39 -08:00
mach-h720x Create platform_device.h to contain all the platform device details. 2005-10-29 19:07:23 +01:00
mach-imx [ARM] 3231/1: mx1ads board support cleanup 2006-01-05 20:44:58 +00:00
mach-integrator [ARM] Convert some arm semaphores to mutexes 2006-01-12 18:42:23 +00:00
mach-iop3xx [ARM] 3217/1: iop331 uarts as platform devices 2006-01-05 20:53:02 +00:00
mach-ixp4xx [ARM] 3226/1: IXP4xx runtime expansion bus window size configuration 2006-01-05 20:59:29 +00:00
mach-ixp2000 [ARM] 3121/1: unconditionally use XCB=101 on ixp2000 2005-11-07 21:12:09 +00:00
mach-l7200 [ARM] 2980/1: Fix L7200 core.c compile 2005-10-14 12:49:15 +01:00
mach-lh7a40x Create platform_device.h to contain all the platform device details. 2005-10-29 19:07:23 +01:00
mach-omap1 spelling: s/trough/through/ 2006-01-10 00:13:33 +01:00
mach-omap2 [ARM] Move asm/hardware/clock.h to linux/clk.h 2006-01-07 16:15:52 +00:00
mach-pxa [ARM] Convert some arm semaphores to mutexes 2006-01-12 18:42:23 +00:00
mach-realview [ARM] Convert some arm semaphores to mutexes 2006-01-12 18:42:23 +00:00
mach-rpc [ARM] Remove '__address' from scatterlist and convert to DMA API 2006-01-04 15:08:30 +00:00
mach-s3c2410 [ARM] Convert some arm semaphores to mutexes 2006-01-12 18:42:23 +00:00
mach-sa1100 [ARM] Remove SA1100 PM prepare/finish ops 2006-01-04 15:55:41 +00:00
mach-shark [ARM] 2991/1: Replace map_desc.physical with map_desc.pfn: Shark 2005-10-28 15:19:03 +01:00
mach-versatile [ARM] Convert some arm semaphores to mutexes 2006-01-12 18:42:23 +00:00
mm [ARM] 3209/1: Configurable DMA-consistent memory region 2006-01-12 16:12:21 +00:00
nwfpe [ARM] 3118/1: fix and reenable nwfpe extended precision emulation for big-endian 2005-11-07 21:12:08 +00:00
oprofile [PATCH] mm: kill check_user_page_readable 2005-10-29 21:40:41 -07:00
plat-omap Merge master.kernel.org:/home/rmk/linux-2.6-arm 2006-01-12 12:23:49 -08:00
tools [ARM] Update mach-types 2006-01-09 12:57:05 +00:00
vfp kbuild: arm - use generic asm-offsets.h support 2005-09-09 21:08:59 +02:00
Kconfig [PATCH] spi: simple SPI framework 2006-01-13 16:29:54 -08:00
Kconfig.debug [ARM] Fix typo in arch/arm/Kconfig.debug 2005-09-09 15:57:17 +01:00
Makefile [ARM] 3240/2: AT91RM9200 support for 2.6 (Core) 2006-01-09 17:05:41 +00:00