Skip to content
Snippets Groups Projects
  1. May 25, 2010
  2. Apr 29, 2010
  3. Dec 04, 2009
  4. Sep 23, 2009
  5. Jul 01, 2009
    • David Brownell's avatar
      spi: new spi->mode bits · b55f627f
      David Brownell authored
      
      Add two new spi_device.mode bits to accomodate more protocol options, and
      pass them through to usermode drivers:
      
       * SPI_NO_CS ... a second 3-wire variant, where the chipselect
         line is removed instead of a data line; transfers are still
         full duplex.
      
         This obviously has STRONG protocol implications since the
         chipselect transitions can't be used to synchronize state
         transitions with the SPI master.
      
       * SPI_READY ... defines open drain signal that's pulled low
         to pause the clock.  This defines a 5-wire variant (normal
         4-wire SPI plus READY) and two 4-wire variants (READY plus
         each of the 3-wire flavors).
      
         Such hardware flow control can be a big win.  There are ADC
         converters and flash chips that expose READY signals, but not
         many host controllers support it today.
      
      The spi_bitbang code should be changed to use SPI_NO_CS instead of its
      current nonportable hack.  That's a mode most hardware can easily support
      (unlike SPI_READY).
      
      Signed-off-by: default avatarDavid Brownell <dbrownell@users.sourceforge.net>
      Cc: "Paulraj, Sandeep" <s-paulraj@ti.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      b55f627f
  6. Apr 21, 2009
  7. Jan 07, 2009
  8. Dec 02, 2008
  9. Oct 30, 2008
  10. Oct 16, 2008
  11. Aug 12, 2008
    • Randy Dunlap's avatar
      docsrc: build Documentation/ sources · 3794f3e8
      Randy Dunlap authored
      
      Currently source files in the Documentation/ sub-dir can easily bit-rot
      since they are not generally buildable, either because they are hidden in
      text files or because there are no Makefile rules for them.  This needs to
      be fixed so that the source files remain usable and good examples of code
      instead of bad examples.
      
      Add the ability to build source files that are in the Documentation/ dir.
      Add to Kconfig as "BUILD_DOCSRC" config symbol.
      
      Use "CONFIG_BUILD_DOCSRC=1 make ..." to build objects from the
      Documentation/ sources.  Or enable BUILD_DOCSRC in the *config system.
      However, this symbol depends on HEADERS_CHECK since the header files need
      to be installed (for userspace builds).
      
      Built (using cross-tools) for x86-64, i386, alpha, ia64, sparc32,
      sparc64, powerpc, sh, m68k, & mips.
      
      Signed-off-by: default avatarRandy Dunlap <randy.dunlap@oracle.com>
      Reviewed-by: default avatarSam Ravnborg <sam@ravnborg.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      3794f3e8
  12. Aug 07, 2008
  13. Apr 28, 2008
  14. Apr 09, 2008
  15. Oct 19, 2007
  16. Oct 16, 2007
  17. Jul 31, 2007
  18. Jul 17, 2007
  19. May 24, 2007
  20. May 08, 2007
  21. Apr 21, 2007
    • Eric Miao's avatar
      [ARM] 4304/1: removes the unnecessary bit number from CKENnn_XXXX · 7053acbd
      Eric Miao authored
      
      This patch removes the unnecessary bit number from CKENnn_XXXX
      definitions for PXA, so that
      
      	CKEN0_PWM0 --> CKEN_PWM0
      	CKEN1_PWM1 --> CKEN_PWM1
      	...
      	CKEN24_CAMERA --> CKEN_CAMERA
      
      The reasons for the change of these defitions are:
      
      1. they do not scale - they are currently valid for pxa2xx, but
      definitely not valid for pxa3xx, e.g., pxa3xx has bit 3 for camera
      instead of bit 24
      
      2. they are unnecessary - the peripheral name within the definition
      has already announced its usage, we don't need those bit numbers
      to know which peripheral we are going to enable/disable clock for
      
      3. they are inconvenient - think about this: a driver programmer
      for pxa has to remember which bit in the CKEN register to turn
      on/off
      
      Another change in the patch is to make the definitions equal to its
      clock bit index, so that
      
         #define CKEN_CAMERA  (24)
      
      instead of
      
         #define CKEN_CAMERA  (1 << 24)
      
      this change, however, will add a run-time bit shift operation in
      pxa_set_cken(), but the benefit of this change is that it scales
      when bit index exceeds 32, e.g., pxa3xx has two registers CKENA
      and CKENB, totally 64 bit for this, suppose CAMERA clock enabling
      bit is CKENB:10, one can simply define CKEN_CAMERA to be (32 + 10)
      and so that pxa_set_cken() need minimum change to adapt to that.
      
      Signed-off-by: default avatareric miao <eric.y.miao@gmail.com>
      Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
      7053acbd
  22. Feb 12, 2007
  23. Dec 10, 2006
    • Stephen Street's avatar
      [PATCH] spi: stabilize PIO mode transfers on PXA2xx systems · 8d94cc50
      Stephen Street authored
      
      Stabilize PIO mode transfers against a range of word sizes and FIFO
      thresholds and fixes word size setup/override issues.
      
      1) 16 and 32 bit DMA/PIO transfers broken due to timing differences.
      2) Potential for bad transfer counts due to transfer size assumptions.
      3) Setup function broken is multiple ways.
      4) Per transfer bit_per_word changes break DMA setup in pump_tranfers.
      5) False positive timeout are not errors.
      6) Changes in pxa2xx_spi_chip not effective in calls to setup.
      7) Timeout scaling wrong for PXA255 NSSP.
      8) Driver leaks memory while busy during unloading.
      
      Known issues:
      
      SPI_CS_HIGH and SPI_LSB_FIRST settings in struct spi_device are not handled.
      
      Testing:
      
      This patch has been test against the "random length, random bits/word,
      random data (verified on loopback) and stepped baud rate by octaves
      (3.6MHz to 115kHz)" test.  It is robust in PIO mode, using any
      combination of tx and rx thresholds, and also in DMA mode (which
      internally computes the thresholds).
      
      Much thanks to Ned Forrester for exhaustive reviews, fixes and testing.
      The driver is substantially better for his efforts.
      
      Signed-off-by: default avatarStephen Street <stephen@streetfiresound.com>
      Signed-off-by: default avatarDavid Brownell <dbrownell@users.sourceforge.net>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      8d94cc50
  24. Oct 03, 2006
  25. May 16, 2006
  26. Feb 06, 2006
  27. Jan 14, 2006
    • David Brownell's avatar
      [PATCH] SPI: add spi_butterfly driver · 2e10c84b
      David Brownell authored
      
      This adds a bitbanging parport based adaptor cable for AVR Butterfly, giving
      SPI links to its DataFlash chip and (eventually) firmware running in the card.
      
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      2e10c84b
    • David Brownell's avatar
      [PATCH] spi: misc fixes · 7111763d
      David Brownell authored
      
      This collects some small SPI patches that seem to be missing from the MM tree:
      
        - spi_butterfly kbuild hooks got dropped somehow; this restores them
        - quick fix for a (theoretical?) m25p80_write() oops noted by Andrew
        - quick fix for a potential config-specific oops for mtd_dataflash()
        - minor doc tweaks
      
      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>
      7111763d
    • David Brownell's avatar
      [PATCH] SPI core tweaks, bugfix · 0c868461
      David Brownell authored
      
      This includes various updates to the SPI core:
      
        - Fixes a driver model refcount bug in spi_unregister_master() paths.
      
        - The spi_master structures now have wrappers which help keep drivers
          from needing class-level get/put for device data or for refcounts.
      
        - Check for a few setup errors that would cause oopsing later.
      
        - Docs say more about memory management.  Highlights the use of DMA-safe
          i/o buffers, and zero-initializing spi_message and such metadata.
      
        - Provide a simple alloc/free for spi_message and its spi_transfer;
          this is only one of the possible memory management policies.
      
      Nothing to break code that already works.
      
      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>
      0c868461
    • David Brownell's avatar
      [PATCH] spi: add spi_driver to SPI framework · b885244e
      David Brownell authored
      
      This is a refresh of the "Simple SPI Framework" found in 2.6.15-rc3-mm1
      which makes the following changes:
      
        * There's now a "struct spi_driver".  This increase the footprint
          of the core a bit, since it now includes code to do what the driver
          core was previously handling directly.  Documentation and comments
          were updated to match.
      
        * spi_alloc_master() now does class_device_initialize(), so it can
          at least be refcounted before spi_register_master().  To match,
          spi_register_master() switched over to class_device_add().
      
        * States explicitly that after transfer errors, spi_devices will be
          deselected.  We want fault recovery procedures to work the same
          for all controller drivers.
      
        * Minor tweaks:  controller_data no longer points to readonly data;
          prevent some potential cast-from-null bugs with container_of calls;
          clarifies some existing kerneldoc,
      
      And a few small cleanups.
      
      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>
      b885244e
    • 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
Loading