• David Brownell's avatar
    [PATCH] spi: simple SPI framework · 8ae12a0d
    David Brownell authored
    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: default avatarDavid Brownell <dbrownell@users.sourceforge.net>
    Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
    8ae12a0d
spi-summary 16.2 KB