1. 19 8月, 2016 1 次提交
  2. 25 7月, 2016 1 次提交
  3. 19 4月, 2016 1 次提交
  4. 05 4月, 2016 1 次提交
  5. 24 2月, 2016 1 次提交
  6. 06 2月, 2016 1 次提交
    • L
      spi: Add Analog Devices AXI SPI Engine controller support · b1353d1c
      Lars-Peter Clausen 提交于
      This patch adds support for the AXI SPI Engine controller which is a FPGA
      soft-peripheral which is used in some of Analog Devices' reference designs.
      
      The AXI SPI Engine controller is part of the SPI Engine framework[1] and
      allows memory mapped access to the SPI Engine control bus. This allows it
      to be used as a general purpose software driven SPI controller. The SPI
      Engine in addition offers some optional advanced acceleration and
      offloading capabilities, which are not part of this patch though and will
      be introduced separately.
      
      At the core of the SPI Engine framework is a small sort of co-processor
      that accepts a command stream and turns the commands into low-level SPI
      transactions. Communication is done through three memory mapped FIFOs in
      the register map of the AXI SPI Engine peripheral. One FIFO for the command
      stream and one each for transmit and receive data.
      
      The driver translates a spi_message in a command stream and writes it to
      the peripheral which executes it asynchronously. This allows it to perform
      very precise timings which are required for some SPI slave devices to
      achieve maximum performance (e.g. analog-to-digital and digital-to-analog
      converters). The execution flow is synchronized to the host system by a
      special synchronize instruction which generates a interrupt.
      
      [1] https://wiki.analog.com/resources/fpga/peripherals/spi_engineSigned-off-by: NLars-Peter Clausen <lars@metafoo.de>
      Signed-off-by: NMark Brown <broonie@kernel.org>
      b1353d1c
  7. 16 1月, 2016 1 次提交
  8. 13 12月, 2015 1 次提交
  9. 07 10月, 2015 1 次提交
  10. 29 8月, 2015 1 次提交
  11. 07 8月, 2015 1 次提交
  12. 13 6月, 2015 1 次提交
  13. 09 6月, 2015 1 次提交
  14. 18 4月, 2015 1 次提交
  15. 23 12月, 2014 2 次提交
  16. 25 11月, 2014 1 次提交
    • B
      spi: meson: Add support for Amlogic Meson SPIFC · c3e4bc54
      Beniamino Galvani 提交于
      This is a driver for the Amlogic Meson SPIFC (SPI flash controller),
      which is one of the two SPI controllers available on the SoC. It
      doesn't support DMA and has a 64-byte unified transmit/receive buffer.
      
      The device is optimized for interfacing with SPI NOR memories and
      allows the execution of standard operations such as read, page
      program, sector erase, etc. in a simplified way, toggling a bit in a
      dedicated register. The driver doesn't use those predefined commands
      and relies only on custom transfers.
      Signed-off-by: NBeniamino Galvani <b.galvani@gmail.com>
      Signed-off-by: NMark Brown <broonie@kernel.org>
      c3e4bc54
  17. 17 11月, 2014 1 次提交
  18. 20 8月, 2014 1 次提交
    • R
      spi: bcm53xx: driver for SPI controller on Broadcom bcma SoC · 0fc6a323
      Rafał Miłecki 提交于
      Broadcom 53xx ARM SoCs use bcma bus that contains various cores (AKA
      devices). If board has a serial flash, it's connected over SPI and the
      bcma bus includes a SPI controller. Example log from such a board:
      bus0: Found chip with id 53010, rev 0x00 and package 0x02
      (...)
      bus0: Core 18 found: SPI flash controller (manuf 0x4BF, id 0x50A, rev 0x01, class 0x0)
      
      This patch adds a bcma driver for SPI core, it registers SPI master
      controller and "bcm53xxspiflash" SPI device.
      Signed-off-by: NRafał Miłecki <zajec5@gmail.com>
      Signed-off-by: NMark Brown <broonie@linaro.org>
      0fc6a323
  19. 05 7月, 2014 1 次提交
    • A
      spi/rockchip: add driver for Rockchip RK3xxx SoCs integrated SPI · 64e36824
      addy ke 提交于
      In order to facilitate understanding, rockchip SPI controller IP design
      looks similar in its registers to designware. But IC implementation
      is different from designware, So we need a dedicated driver for Rockchip
      RK3XXX SoCs integrated SPI. The main differences:
      
      - dma request line: rockchip SPI controller have two DMA request line
        for tx and rx.
      
      - Register offset:
                        RK3288        dw
        SPI_CTRLR0      0x0000        0x0000
        SPI_CTRLR1      0x0004        0x0004
        SPI_SSIENR      0x0008        0x0008
        SPI_MWCR        NONE          0x000c
        SPI_SER         0x000c        0x0010
        SPI_BAUDR       0x0010        0x0014
        SPI_TXFTLR      0x0014        0x0018
        SPI_RXFTLR      0x0018        0x001c
        SPI_TXFLR       0x001c        0x0020
        SPI_RXFLR       0x0020        0x0024
        SPI_SR          0x0024        0x0028
        SPI_IPR         0x0028        NONE
        SPI_IMR         0x002c        0x002c
        SPI_ISR         0x0030        0x0030
        SPI_RISR        0x0034        0x0034
        SPI_TXOICR      NONE          0x0038
        SPI_RXOICR      NONE          0x003c
        SPI_RXUICR      NONE          0x0040
        SPI_MSTICR      NONE          0x0044
        SPI_ICR         0x0038        0x0048
        SPI_DMACR       0x003c        0x004c
        SPI_DMATDLR     0x0040        0x0050
        SPI_DMARDLR     0x0044        0x0054
        SPI_TXDR        0x0400        NONE
        SPI_RXDR        0x0800        NONE
        SPI_IDR         NONE          0x0058
        SPI_VERSION     NONE          0x005c
        SPI_DR          NONE          0x0060
      
      - register configuration:
        such as SPI_CTRLRO in rockchip SPI controller:
          cr0 = (CR0_BHT_8BIT << CR0_BHT_OFFSET)
              | (CR0_SSD_ONE << CR0_SSD_OFFSET);
          cr0 |= (rs->n_bytes << CR0_DFS_OFFSET);
          cr0 |= ((rs->mode & 0x3) << CR0_SCPH_OFFSET);
          cr0 |= (rs->tmode << CR0_XFM_OFFSET);
          cr0 |= (rs->type << CR0_FRF_OFFSET);
        For more information, see RK3288 chip manual.
      
      - Wait for idle: Must ensure that the FIFO data has been sent out
        before the next transfer.
      Signed-off-by: Naddy ke <addy.ke@rock-chips.com>
      Signed-off-by: NMark Brown <broonie@linaro.org>
      64e36824
  20. 15 4月, 2014 2 次提交
  21. 19 3月, 2014 1 次提交
  22. 13 3月, 2014 1 次提交
  23. 23 2月, 2014 1 次提交
    • M
      spi: sunxi: Add Allwinner A10 SPI controller driver · b5f65179
      Maxime Ripard 提交于
      The older Allwinner SoCs (A10, A13, A10s and A20) all have the same SPI
      controller.
      
      Unfortunately, this SPI controller, even though quite similar, is significantly
      different from the recently supported A31 SPI controller (different registers
      offset, split/merged registers, etc.). Supporting both controllers in a single
      driver would be unreasonable, hence the addition of a new driver.
      
      Like its more recent counterpart, it supports DMA, but the driver only does PIO
      until we have a dmaengine driver for this platform.
      Signed-off-by: NMaxime Ripard <maxime.ripard@free-electrons.com>
      Signed-off-by: NMark Brown <broonie@linaro.org>
      b5f65179
  24. 19 2月, 2014 1 次提交
    • I
      spi: Add Qualcomm QUP SPI controller support · 64ff247a
      Ivan T. Ivanov 提交于
      Qualcomm Universal Peripheral (QUP) core is an AHB slave that
      provides a common data path (an output FIFO and an input FIFO)
      for serial peripheral interface (SPI) mini-core. SPI in master
      mode supports up to 50MHz, up to four chip selects, programmable
      data path from 4 bits to 32 bits and numerous protocol variants.
      
      Cc: Alok Chauhan <alokc@codeaurora.org>
      Cc: Gilad Avidov <gavidov@codeaurora.org>
      Cc: Kiran Gunda <kgunda@codeaurora.org>
      Cc: Sagar Dharia <sdharia@codeaurora.org>
      Cc: dsneddon@codeaurora.org
      Signed-off-by: NIvan T. Ivanov <iivanov@mm-sol.com>
      Signed-off-by: NMark Brown <broonie@linaro.org>
      64ff247a
  25. 05 2月, 2014 1 次提交
  26. 04 12月, 2013 1 次提交
  27. 22 8月, 2013 2 次提交
    • S
      spi/qspi: Add qspi flash controller · 505a1495
      Sourav Poddar 提交于
      The patch add basic support for the quad spi controller.
      
      QSPI is a kind of spi module that allows single,
      dual and quad read access to external spi devices. The module
      has a memory mapped interface which provide direct interface
      for accessing data form external spi devices.
      
      The patch will configure controller clocks, device control
      register and for defining low level transfer apis which
      will be used by the spi framework to transfer data to
      the slave spi device(flash in this case).
      
      Test details:
      -------------
      Tested this on dra7 board.
      Test1: Ran mtd_stesstest for 40000 iterations.
         - All iterations went through without failure.
      Test2: Use mtd utilities:
        - flash_erase to erase the flash device
        - mtd_debug read to read data back.
        - mtd_debug write to write to the data flash.
       diff between the write and read data shows zero.
      
      Acked-by: Felipe Balbi<balbi@ti.com>
      Reviewed-by: Felipe Balbi<balbi@ti.com>
      Signed-off-by: NSourav Poddar <sourav.poddar@ti.com>
      Signed-off-by: NMark Brown <broonie@linaro.org>
      505a1495
    • C
      spi:Add Freescale DSPI driver for Vybrid VF610 platform · 349ad66c
      Chao Fu 提交于
      The serial peripheral interface (SPI) module implemented on Freescale Vybrid
      platform provides a synchronous serial bus for communication between Vybrid
      and the external peripheral device.
      The SPI supports full-duplex, three-wire synchronous transfer, has TX/RX FIFO
      with depth of four entries.
      
      This driver is the SPI master mode driver and has been tested on Vybrid
      VF610TWR board.
      Signed-off-by: NAlison Wang <b18965@freescale.com>
      Signed-off-by: NChao Fu  <b44548@freescale.com>
      Signed-off-by: NMark Brown <broonie@linaro.org>
      349ad66c
  28. 10 8月, 2013 1 次提交
  29. 15 7月, 2013 1 次提交
  30. 07 4月, 2013 2 次提交
  31. 13 3月, 2013 1 次提交
    • C
      spi: add driver for BCM2835 · f8043872
      Chris Boot 提交于
      The BCM2835 contains two forms of SPI master controller (one known
      simply as SPI0, and the other known as the "Universal SPI Master", in
      the auxilliary block) and one form of SPI slave controller. This patch
      adds support for the SPI0 controller.
      
      This driver is taken from Chris Boot's repository at
      git://github.com/bootc/linux.git rpi-linear
      as of commit 6de2905 "spi-bcm2708: fix printf with spurious %s".
      In the first SPI-related commit there, Chris wrote:
      
      Thanks to csoutreach / A Robinson for his driver which I used as an
      inspiration. You can find his version here:
      http://piface.openlx.org.uk/raspberry-pi-spi-kernel-driver-available-for
      
      Changes made during upstreaming:
      * Renamed bcm2708 to bcm2835 as per upstream naming for this SoC.
      * Removed support for brcm,realtime property.
      * Increased transfer timeout to 30 seconds.
      * Return IRQ_NONE from the IRQ handler if no interrupt was handled.
      * Disable TA (Transfer Active) and clear FIFOs on a transfer timeout.
      * Wrote device tree binding documentation.
      * Request unnamed clock rather than "sys_pclk"; the DT will provide the
        correct clock.
      * Assume that tfr->speed_hz and tfr->bits_per_word are always set in
        bcm2835_spi_start_transfer(), bcm2835_spi_transfer_one(), so no need
        to check spi->speed_hz or tft->bits_per_word.
      * Re-ordered probe() to remove the need for temporary variables.
      * Call clk_disable_unprepare() rather than just clk_unprepare() on probe()
        failure.
      * Don't use devm_request_irq(), to ensure that the IRQ doesn't fire after
        we've torn down the device, but not unhooked the IRQ.
      * Moved probe()'s call to clk_prepare_enable() so we can be sure the clock
        is enabled if the IRQ handler fires immediately.
      * Remove redundant checks from bcm2835_spi_check_transfer() and
        bcm2835_spi_setup().
      * Re-ordered IRQ handler to check for RXR before DONE. Added comments to
        ISR.
      * Removed empty prepare/unprepare implementations.
      * Removed use of devinit/devexit.
      * Added BCM2835_ prefix to defines.
      Signed-off-by: NChris Boot <bootc@bootc.net>
      Signed-off-by: NStephen Warren <swarren@wwwdotorg.org>
      Signed-off-by: NMark Brown <broonie@opensource.wolfsonmicro.com>
      f8043872
  32. 08 2月, 2013 2 次提交
  33. 06 12月, 2012 2 次提交
  34. 14 11月, 2012 1 次提交