- Feb 05, 2014
-
-
Maxime Ripard authored
The Allwinner A31 has a new SPI controller IP compared to the older Allwinner SoCs. It supports DMA, but the driver only does PIO for now, and DMA will be supported eventually. Signed-off-by:
Maxime Ripard <maxime.ripard@free-electrons.com> Signed-off-by:
Mark Brown <broonie@linaro.org>
-
- Dec 04, 2013
-
-
Jonas Gorski authored
Add a driver for the High Speed SPI controller found on newer BCM63XX SoCs. It does feature some new modes like 3-wire or dual spi, but neither of it is currently implemented. Signed-off-by:
Jonas Gorski <jogo@openwrt.org> Signed-off-by:
Mark Brown <broonie@linaro.org>
-
- Aug 22, 2013
-
-
Sourav Poddar authored
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:
Sourav Poddar <sourav.poddar@ti.com> Signed-off-by:
Mark Brown <broonie@linaro.org>
-
Chao Fu authored
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:
Alison Wang <b18965@freescale.com> Signed-off-by:
Chao Fu <b44548@freescale.com> Signed-off-by:
Mark Brown <broonie@linaro.org>
-
- Aug 09, 2013
-
-
Uwe Kleine-König authored
Signed-off-by:
Uwe Kleine-König <u.kleine-koenig@pengutronix.de> Signed-off-by:
Mark Brown <broonie@linaro.org>
-
- Jul 15, 2013
-
-
Scott Jiang authored
New spi controller(version 3) is integrated into Blackfin 60x processor. Comparing to bf5xx spi controller, we support 32 bits word size and independent receive and transmit DMA channels now. Also mode 0 and 2 (CPHA = 0) can get fully supported becasue cs line may be controlled by the software. Signed-off-by:
Scott Jiang <scott.jiang.linux@gmail.com> Signed-off-by:
Mark Brown <broonie@linaro.org>
-
- Apr 07, 2013
-
-
Laxman Dewangan authored
Add SPI driver for NVIDIA's Tegra114 SPI controller. This controller is different than the older SoCs SPI controller in internal design as well as register interface. This driver supports the: - non DMA based transfer for smaller transfer i.e. less than FIFO depth. - APB DMA based transfer for larger transfer i.e. more than FIFO depth. - Clock gating through runtime PM callbacks. - registration through DT only. Signed-off-by:
Laxman Dewangan <ldewangan@nvidia.com> Reviewed-by:
Stephen Warren <swarren@nvidia.com> Signed-off-by:
Grant Likely <grant.likely@secretlab.ca>
-
Andreas Larsson authored
This makes the spi-fsl-spi driver usable in CPU mode outside of an FSL_SOC and even an powerpc environment by moving CPM mode functionality to a separate file that is only compiled and linked in an FSL_SOC environment and adding some ifdefs to hide types and functions or provide alternatives. For devicetree probing a "clock-frequency" property is used for clock frequency instead of calls to FSL_SOC-specific functions. Acked-by:
Anton Vorontsov <anton@enomsg.org> Signed-off-by:
Andreas Larsson <andreas@gaisler.com> Signed-off-by:
Grant Likely <grant.likely@secretlab.ca>
-
- Mar 12, 2013
-
-
Chris Boot authored
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:
Chris Boot <bootc@bootc.net> Signed-off-by:
Stephen Warren <swarren@wwwdotorg.org> Signed-off-by:
Mark Brown <broonie@opensource.wolfsonmicro.com>
-
- Feb 08, 2013
-
-
Mika Westerberg authored
To be able to use DMA with this driver on non-PXA platforms we implement support for the generic DMA engine API. This lets user to use different DMA engines with little or no modification to the driver. Request lines and channel numbers can be passed to the driver from the platform specific data. The DMA engine implementation will be selected by default even on PXA platform. User can select the legacy DMA API by enabling Kconfig option CONFIG_SPI_PXA2XX_PXADMA. Signed-off-by:
Mika Westerberg <mika.westerberg@linux.intel.com> Acked-by:
Linus Walleij <linus.walleij@linaro.org> Tested-by:
Lu Cao <lucao@marvell.com> Signed-off-by:
Mark Brown <broonie@opensource.wolfsonmicro.com>
-
Mika Westerberg authored
The PXA SPI driver uses PXA platform specific private DMA implementation which does not work on non-PXA platforms. In order to use this driver on other platforms we break out the private DMA implementation into a separate file that gets compiled only when CONFIG_SPI_PXA2XX_PXADMA is set. The DMA functions are stubbed out if there is no DMA implementation selected (i.e we are building on non-PXA platform). While we are there we can kill the dummy DMA bits in pxa2xx_spi.h as they are not needed anymore for CE4100. Once this is done we can add the generic DMA engine support to the driver that allows usage of any DMA controller that implements DMA engine API. Signed-off-by:
Mika Westerberg <mika.westerberg@linux.intel.com> Acked-by:
Linus Walleij <linus.walleij@linaro.org> Tested-by:
Lu Cao <lucao@marvell.com> Signed-off-by:
Mark Brown <broonie@opensource.wolfsonmicro.com>
-
- Dec 06, 2012
-
-
Wolfram Sang authored
This driver is obsolete and can't even be built anymore since the platform it depends has been removed. The STMP series is completely covered by the MXS platform these days, so spi-mxs can be used instead. Signed-off-by:
Wolfram Sang <w.sang@pengutronix.de> Signed-off-by:
Grant Likely <grant.likely@secretlab.ca>
-
- Dec 05, 2012
-
-
Alexander Shiyan authored
This patch add new driver for CLPS711X SPI master controller. Due to platform limitations driver supports only 8 bit transfer mode. Chip select control is handled via GPIO. Signed-off-by:
Alexander Shiyan <shc_work@mail.ru> Acked-by:
Arnd Bergmann <arnd@arndb.de> Signed-off-by:
Grant Likely <grant.likely@secretlab.ca>
-
- Nov 14, 2012
-
-
Laxman Dewangan authored
NVIDIA's Tegra20 have the SPI (SFLASH) controller to interface with spi flash device which is used for system boot. Add the spi driver for this controller. Signed-off-by:
Laxman Dewangan <ldewangan@nvidia.com> Acked-by:
Stephen Warren <swarren@nvidia.com> Tested-by:
Stephen Warren <swarren@nvidia.com> Signed-off-by:
Mark Brown <broonie@opensource.wolfsonmicro.com>
-
- Oct 30, 2012
-
-
Laxman Dewangan authored
Tegra20/Tegra30 supports the spi interface through its SLINK controller. Add spi driver for SLINK controller. Signed-off-by:
Laxman Dewangan <ldewangan@nvidia.com> Reviewed-by:
Stephen Warren <swarren@nvidia.com> Signed-off-by:
Mark Brown <broonie@opensource.wolfsonmicro.com>
-
- Oct 01, 2012
-
-
Stephen Warren authored
The current SPI driver has many issues. Examples are: * Segfaulting on most transfers due to expecting all transfers to have both RX and TX buffers. * Hanging on TX transfers since the whole driver flow is driven by RX DMA completion, but the HW is only told to enable RX for RX transfers. * Use of clk_disable_unprepare() from atomic context. * Once those and other minor issues are fixed, the driver still doesn't actually work. * The driver also implements a deprecated API to the SPI core. For this reason, simply remove the driver completely. This has two advantages: 1) This will remove the last use of Tegra's <mach/dma.h>, which will allow that file to be removed, which is required for single zImage work. 2) The downstream driver is significaly different from the current code. I believe a patch to re-add the downstream driver (with appropriate cleanup) will be much simpler to review if it's a new file rather than randomly interspered with essentially unrelated existing code. Signed-off-by:
Stephen Warren <swarren@nvidia.com> Signed-off-by:
Mark Brown <broonie@opensource.wolfsonmicro.com>
-
- Aug 22, 2012
-
-
David Daney authored
Add the driver, link it into the kbuild system and provide device tree binding documentation. Signed-off-by:
David Daney <david.daney@cavium.com> Acked-by:
Grant Likely <grant.likely@secretlab.ca> Patchwork: http://patchwork.linux-mips.org/patch/4292/ Signed-off-by:
John Crispin <blogic@openwrt.org>
-
Guenter Roeck authored
This driver adds support for NXP SC18IS602/603 I2C to SPI bus bridge. Signed-off-by:
Guenter Roeck <linux@roeck-us.net> Signed-off-by:
Mark Brown <broonie@opensource.wolfsonmicro.com>
-
- Aug 17, 2012
-
-
Marek Vasut authored
This is slightly reworked version of the SPI driver. Support for DT has been added and it's been converted to queued API. Based on previous attempt by: Fabio Estevam <fabio.estevam@freescale.com> Signed-off-by:
Fabio Estevam <fabio.estevam@freescale.com> Signed-off-by:
Marek Vasut <marex@denx.de> Acked-by:
Chris Ball <cjb@laptop.org> Acked-by:
Shawn Guo <shawn.guo@linaro.org> Signed-off-by:
Mark Brown <broonie@opensource.wolfsonmicro.com>
-
- Jul 23, 2012
-
-
Thomas Langer authored
The external bus unit (EBU) found on the FALCON SoC has spi emulation that is designed for serial flash access. This driver has only been tested with m25p80 type chips. The hardware has no support for other types of spi peripherals. Signed-off-by:
Thomas Langer <thomas.langer@lantiq.com> Signed-off-by:
John Crispin <blogic@openwrt.org> Cc: spi-devel-general@lists.sourceforge.net Cc: linux-mips@linux-mips.org Acked-by:
Grant Likely <grant.likely@secretlab.ca> Patchwork: https://patchwork.linux-mips.org/patch/3844/ Signed-off-by:
Ralf Baechle <ralf@linux-mips.org>
-
- Jul 20, 2012
-
-
Lars-Peter Clausen authored
This patch adds support for the I2C-SPI bridge which can be found on the Analog Devices AD-FMCOMMS1-EBZ board. Signed-off-by:
Lars-Peter Clausen <lars@metafoo.de> Signed-off-by:
Mark Brown <broonie@opensource.wolfsonmicro.com>
-
- Apr 27, 2012
-
-
Scott Jiang authored
This controller is only for blackfin 5xx soc, so rename it to BFIN5XX Signed-off-by:
Scott Jiang <scott.jiang.linux@gmail.com> Signed-off-by:
Grant Likely <grant.likely@secretlab.ca>
-
- Mar 09, 2012
-
-
Florian Fainelli authored
This patch adds support for the SPI controller found on the Broadcom BCM63xx SoCs. Signed-off-by:
Tanguy Bouzeloc <tanguy.bouzeloc@efixo.com> Signed-off-by:
Florian Fainelli <florian@openwrt.org> Signed-off-by:
Grant Likely <grant.likely@secretlab.ca>
-
Zhiwu Song authored
CSR SiRFprimaII has two SPIs (SPI0 and SPI1). Features: * Master and slave modes * 8-/12-/16-/32-bit data unit * 256 bytes receive data FIFO and 256 bytes transmit data FIFO * Multi-unit frame * Configurable SPI_EN (chip select pin) active state * Configurable SPI_CLK polarity * Configurable SPI_CLK phase * Configurable MSB/LSB first Signed-off-by:
Zhiwu Song <zhiwu.song@csr.com> Signed-off-by:
Barry Song <Baohua.Song@csr.com> Signed-off-by:
Grant Likely <grant.likely@secretlab.ca>
-
Kuninori Morimoto authored
This patch adds SuperH HSPI driver. It is still prototype driver, but has enough function at this point. Signed-off-by:
Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Signed-off-by:
Grant Likely <grant.likely@secretlab.ca>
-
- Mar 08, 2012
-
-
Shimoda, Yoshihiro authored
The SH7757 has RSPI module. This patch supports it. Signed-off-by:
Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com> Signed-off-by:
Grant Likely <grant.likely@secretlab.ca>
-
- Jul 04, 2011
-
-
Peter Korsgaard authored
It was equivalent to spi-gpio, and there's no longer any in-tree users of it, so get rid of it. Signed-off-by:
Peter Korsgaard <jacmet@sunsite.dk> Acked-by:
Ben Dooks <ben-linux@fluff.org> Signed-off-by:
Grant Likely <grant.likely@secretlab.ca>
-
- Jun 06, 2011
-
-
Grant Likely authored
Sort the SPI makefile and enforce the naming convention spi_*.c for spi drivers. This change also rolls the contents of atmel_spi.h into the .c file since there is only one user of that particular include file. v2: - Use 'spi-' prefix instead of 'spi_' to match what seems to be be the predominant pattern for subsystem prefixes. - Clean up filenames in Kconfig and header comment blocks Signed-off-by:
Grant Likely <grant.likely@secretlab.ca> Acked-by:
Wolfram Sang <w.sang@pengutronix.de> Acked-by:
Linus Walleij <linus.walleij@linaro.org>
-
- May 27, 2011
-
-
Cliff Cai authored
The Blackfin SPORT peripheral is a pretty flexible device. With enough coaching, we can make it generate SPI compatible waveforms. This is desirable as the SPORT can run at much higher clock frequencies than the dedicated on-chip SPI peripheral, and it can do full duplex DMA. It also opens up the possibility of multiple SPI buses in case someone wants to dedicate a whole bus to a specific part that does not play well with others. Signed-off-by:
Cliff Cai <cliff.cai@analog.com> Signed-off-by:
Bryan Wu <cooloney@kernel.org> Signed-off-by:
Michael Hennerich <michael.hennerich@analog.com> Signed-off-by:
Mike Frysinger <vapier@gentoo.org> Signed-off-by:
Grant Likely <grant.likely@secretlab.ca>
-
- Mar 15, 2011
-
-
Cyril Chemparathy authored
This patch adds an SPI master implementation that operates on top of an underlying TI-SSP port. Acked-by:
Grant Likely <grant.likely@secretlab.ca> Signed-off-by:
Cyril Chemparathy <cyril@ti.com> Signed-off-by:
Sekhar Nori <nsekhar@ti.com> Signed-off-by:
Kevin Hilman <khilman@ti.com>
-
- Feb 22, 2011
-
-
Yoshihiro Shimoda authored
The SH7757 has SPI0 module. This patch supports it. Signed-off-by:
Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com> [grant.likely@secretlab.ca: fixed Makefile ordering, added __dev{init,exit} annotations, removed DRIVER_VERSION (this is mainline, the version == the kernel version) and tidied some indentation & style stuff] Signed-off-by:
Grant Likely <grant.likely@secretlab.ca>
-
Thomas Chou authored
This patch adds a new SPI driver to support the Altera SOPC Builder SPI component. It uses the bitbanging library. Signed-off-by:
Thomas Chou <thomas@wytron.com.tw> Signed-off-by:
Grant Likely <grant.likely@secretlab.ca>
-
Thomas Chou authored
This patch adds support of OpenCores tiny SPI driver. http://opencores.org/project,tiny_spi Signed-off-by:
Thomas Chou <thomas@wytron.com.tw> Signed-off-by:
Grant Likely <grant.likely@secretlab.ca>
-
- Jan 18, 2011
-
-
Gabor Juhos authored
The Atheros AR71XX/AR724X/AR913X SoCs have a built-in SPI controller. This patch implements a driver for that. Signed-off-by:
Gabor Juhos <juhosg@openwrt.org> Cc: David Brownell <dbrownell@users.sourceforge.net> Cc: spi-devel-general@lists.sourceforge.net Acked-by:
Grant Likely <grant.likely@secretlab.ca> Cc: linux-mips@linux-mips.org Cc: Imre Kaloz <kaloz@openwrt.org> Cc: Luis R. Rodriguez <lrodriguez@atheros.com> Cc: Cliff Holden <Cliff.Holden@Atheros.com> Cc: Kathy Giori <Kathy.Giori@Atheros.com> Patchwork: https://patchwork.linux-mips.org/patch/1960/ Signed-off-by:
Ralf Baechle <ralf@linux-mips.org>
-
- Dec 24, 2010
-
-
Feng Tang authored
dw_spi driver in upstream only supports PIO mode, and this patch will support it to cowork with the Designware dma controller used on Intel Moorestown platform, at the same time it provides a general framework to support dw_spi core to cowork with dma controllers on other platforms It has been tested with a Option GTM501L 3G modem and Infenion 60x60 modem. To use DMA mode, DMA controller 2 of Moorestown has to be enabled Also change the dma interface suggested by Linus Walleij. Acked-by:
Linus Walleij <linus.walleij@stericsson.com> Signed-off-by:
Feng Tang <feng.tang@intel.com> [Typo fix and renames to match intel_mid_dma renaming] Signed-off-by:
Vinod Koul <vinod.koul@intel.com> Signed-off-by:
Alan Cox <alan@linux.intel.com> Signed-off-by:
Grant Likely <grant.likely@secretlab.ca>
-
- Dec 01, 2010
-
-
Sebastian Andrzej Siewior authored
Sodaville's SPI controller is very much the same as in PXA25x. The difference: - The RX/TX FIFO is only 4 words deep instead of 16 - No DMA support - The SPI controller offers a CS functionality Signed-off-by:
Sebastian Andrzej Siewior <bigeasy@linutronix.de> Signed-off-by:
Dirk Brandewie <dirk.brandewie@gmail.com>
-
- Nov 10, 2010
-
-
Grant Likely authored
Now that the of_platform_bus_type has been merged with the platform bus type, a single platform driver can handle both OF and non-OF use cases. This patch merges the OF support into the platform driver. Signed-off-by:
Grant Likely <grant.likely@secretlab.ca> Tested-by:
Michal Simek <monstr@monstr.eu>
-
Grant Likely authored
This patch merges the platform driver support into the main body of xilinx_spi.c in preparation for merging the OF and non-OF support code. Signed-off-by:
Grant Likely <grant.likely@secretlab.ca> Tested-by:
Michal Simek <monstr@monstr.eu>
-
- Oct 22, 2010
-
-
Erik Gilling authored
v2 changes: from Thierry Reding: * add "select TEGRA_SYSTEM_DMA" to Kconfig from Grant Likely: * add oneline description to header * inline references to DRIVER_NAME * inline references to BUSY_TIMEOUT * open coded bytes_per_word() * spi_readl/writel -> spi_tegra_readl/writel * move transfer validation to spi_tegra_transfer * don't request_mem_region iomem as platform bus does that for us * __exit -> __devexit v3 changes: from Russell King: * put request_mem_region back int from Grant Likely: * remove #undef DEBUG * add SLINK_ to register bit defines * remove unused bytes_per_word * make spi_tegra_readl/writel static linine * various refactoring for clarity * mark err if BSY bit is not cleared after 1000 retries * move spinlock to protect setting of RDY bit * subsys_initcall -> module_init v3 changes: from Grant Likely: * update spi_tegra to use PTR_ERRless dma API v4 changes: from Grant Likely: * remove empty spi_tegra_cleanup fucntion * allow device ids of -1 Signed-off-by:
Erik Gilling <konkers@android.com> Acked-by:
Grant Likely <grant.likely@secretlab.ca> Cc: Thierry Reding <thierry.reding@avionic-design.de> Cc: Russell King <linux@arm.linux.org.uk> spi: tegra: cleanups from upstream review Change-Id: Icecf7e64efcb39de072a15234ba1faa4bad40d25 Signed-off-by:
Erik Gilling <konkers@android.com>
-
- Oct 13, 2010
-
-
Mingkai Hu authored
Add eSPI controller support based on the library code spi_fsl_lib.c. The eSPI controller is newer controller 85xx/Pxxx devices supported. There're some differences comparing to the SPI controller: 1. Has different register map and different bit definition So leave the code operated the register to the driver code, not the common code. 2. Support 4 dedicated chip selects The software can't controll the chip selects directly, The SPCOM[CS] field is used to select which chip selects is used, and the SPCOM[TRANLEN] field is set to tell the controller how long the CS signal need to be asserted. So the driver doesn't need the chipselect related function when transfering data, just set corresponding register fields to controll the chipseclect. 3. Different Transmit/Receive FIFO access register behavior For SPI controller, the Tx/Rx FIFO access register can hold only one character regardless of the character length, but for eSPI controller, the register can hold 4 or 2 characters according to the character lengths. Access the Tx/Rx FIFO access register of the eSPI controller will shift out/in 4/2 characters one time. For SPI subsystem, the command and data are put into different transfers, so we need to combine all the transfers to one transfer in order to pass the transfer to eSPI controller. 4. The max transaction length limitation The max transaction length one time is limitted by the SPCOM[TRANSLEN] field which is 0xFFFF. When used mkfs.ext2 command to create ext2 filesystem on the flash, the read length will exceed the max value of the SPCOM[TRANSLEN] field. Signed-off-by:
Mingkai Hu <Mingkai.hu@freescale.com> Signed-off-by:
Grant Likely <grant.likely@secretlab.ca>
-