diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2013-04-29 19:38:41 -0400 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2013-04-29 19:38:41 -0400 |
| commit | 61f3d0a9883d965b498edeb673235bddc92770fd (patch) | |
| tree | fa1e394cd1d5332f4a205d12f0db88320bc83813 /include/linux | |
| parent | 8ded8d4e4facab78acf616bc34085ddd15c2c21c (diff) | |
| parent | cd8d984f0def2a8c5733a9468634ec3e0feec03d (diff) | |
Merge tag 'spi-v3.10' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi
Pull spi updates from Mark Brown:
"A fairly quiet release for SPI, mainly driver work. A few highlights:
- Supports bits per word compatibility checking in the core.
- Allow use of the IP used in Freescale SPI controllers outside
Freescale SoCs.
- DMA support for the Atmel SPI driver.
- New drivers for the BCM2835 and Tegra114"
* tag 'spi-v3.10' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi: (68 commits)
spi-topcliff-pch: fix to use list_for_each_entry_safe() when delete list items
spi-topcliff-pch: missing platform_driver_unregister() on error in pch_spi_init()
ARM: dts: add pinctrl property for spi node for atmel SoC
ARM: dts: add spi nodes for the atmel boards
ARM: dts: add spi nodes for atmel SoC
ARM: at91: add clocks for spi dt entries
spi/spi-atmel: add dmaengine support
spi/spi-atmel: add flag to controller data for lock operations
spi/spi-atmel: add physical base address
spi/sirf: fix MODULE_DEVICE_TABLE
MAINTAINERS: Add git repository and update my address
spi/s3c64xx: Check for errors in dmaengine prepare_transfer()
spi/s3c64xx: Fix non-dmaengine usage
spi: omap2-mcspi: fix error return code in omap2_mcspi_probe()
spi/s3c64xx: let device core setup the default pin configuration
MAINTAINERS: Update Grant's email address and maintainership
spi: omap2-mcspi: Fix transfers if DMADEVICES is not set
spi: s3c64xx: move to generic dmaengine API
spi-gpio: init CS before spi_bitbang_setup()
spi: spi-mpc512x-psc: let transmiter/receiver enabled when in xfer loop
...
Diffstat (limited to 'include/linux')
| -rw-r--r-- | include/linux/platform_data/spi-s3c64xx.h | 3 | ||||
| -rw-r--r-- | include/linux/spi/spi-tegra.h | 40 | ||||
| -rw-r--r-- | include/linux/spi/spi.h | 8 |
3 files changed, 11 insertions, 40 deletions
diff --git a/include/linux/platform_data/spi-s3c64xx.h b/include/linux/platform_data/spi-s3c64xx.h index ceba18d23a5a..8447f634c7f5 100644 --- a/include/linux/platform_data/spi-s3c64xx.h +++ b/include/linux/platform_data/spi-s3c64xx.h | |||
| @@ -11,6 +11,8 @@ | |||
| 11 | #ifndef __S3C64XX_PLAT_SPI_H | 11 | #ifndef __S3C64XX_PLAT_SPI_H |
| 12 | #define __S3C64XX_PLAT_SPI_H | 12 | #define __S3C64XX_PLAT_SPI_H |
| 13 | 13 | ||
| 14 | #include <linux/dmaengine.h> | ||
| 15 | |||
| 14 | struct platform_device; | 16 | struct platform_device; |
| 15 | 17 | ||
| 16 | /** | 18 | /** |
| @@ -38,6 +40,7 @@ struct s3c64xx_spi_info { | |||
| 38 | int src_clk_nr; | 40 | int src_clk_nr; |
| 39 | int num_cs; | 41 | int num_cs; |
| 40 | int (*cfg_gpio)(void); | 42 | int (*cfg_gpio)(void); |
| 43 | dma_filter_fn filter; | ||
| 41 | }; | 44 | }; |
| 42 | 45 | ||
| 43 | /** | 46 | /** |
diff --git a/include/linux/spi/spi-tegra.h b/include/linux/spi/spi-tegra.h deleted file mode 100644 index 786932c62edb..000000000000 --- a/include/linux/spi/spi-tegra.h +++ /dev/null | |||
| @@ -1,40 +0,0 @@ | |||
| 1 | /* | ||
| 2 | * spi-tegra.h: SPI interface for Nvidia Tegra20 SLINK controller. | ||
| 3 | * | ||
| 4 | * Copyright (C) 2011 NVIDIA Corporation | ||
| 5 | * | ||
| 6 | * This program is free software; you can redistribute it and/or modify | ||
| 7 | * it under the terms of the GNU General Public License as published by | ||
| 8 | * the Free Software Foundation; either version 2 of the License, or | ||
| 9 | * (at your option) any later version. | ||
| 10 | * | ||
| 11 | * This program is distributed in the hope that it will be useful, but WITHOUT | ||
| 12 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | ||
| 13 | * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | ||
| 14 | * more details. | ||
| 15 | * | ||
| 16 | * You should have received a copy of the GNU General Public License along | ||
| 17 | * with this program; if not, write to the Free Software Foundation, Inc., | ||
| 18 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. | ||
| 19 | */ | ||
| 20 | |||
| 21 | #ifndef _LINUX_SPI_TEGRA_H | ||
| 22 | #define _LINUX_SPI_TEGRA_H | ||
| 23 | |||
| 24 | struct tegra_spi_platform_data { | ||
| 25 | int dma_req_sel; | ||
| 26 | unsigned int spi_max_frequency; | ||
| 27 | }; | ||
| 28 | |||
| 29 | /* | ||
| 30 | * Controller data from device to pass some info like | ||
| 31 | * hw based chip select can be used or not and if yes | ||
| 32 | * then CS hold and setup time. | ||
| 33 | */ | ||
| 34 | struct tegra_spi_device_controller_data { | ||
| 35 | bool is_hw_based_cs; | ||
| 36 | int cs_setup_clk_count; | ||
| 37 | int cs_hold_clk_count; | ||
| 38 | }; | ||
| 39 | |||
| 40 | #endif /* _LINUX_SPI_TEGRA_H */ | ||
diff --git a/include/linux/spi/spi.h b/include/linux/spi/spi.h index 38c2b925923d..733eb5ee31c5 100644 --- a/include/linux/spi/spi.h +++ b/include/linux/spi/spi.h | |||
| @@ -228,6 +228,11 @@ static inline void spi_unregister_driver(struct spi_driver *sdrv) | |||
| 228 | * every chipselect is connected to a slave. | 228 | * every chipselect is connected to a slave. |
| 229 | * @dma_alignment: SPI controller constraint on DMA buffers alignment. | 229 | * @dma_alignment: SPI controller constraint on DMA buffers alignment. |
| 230 | * @mode_bits: flags understood by this controller driver | 230 | * @mode_bits: flags understood by this controller driver |
| 231 | * @bits_per_word_mask: A mask indicating which values of bits_per_word are | ||
| 232 | * supported by the driver. Bit n indicates that a bits_per_word n+1 is | ||
| 233 | * suported. If set, the SPI core will reject any transfer with an | ||
| 234 | * unsupported bits_per_word. If not set, this value is simply ignored, | ||
| 235 | * and it's up to the individual driver to perform any validation. | ||
| 231 | * @flags: other constraints relevant to this driver | 236 | * @flags: other constraints relevant to this driver |
| 232 | * @bus_lock_spinlock: spinlock for SPI bus locking | 237 | * @bus_lock_spinlock: spinlock for SPI bus locking |
| 233 | * @bus_lock_mutex: mutex for SPI bus locking | 238 | * @bus_lock_mutex: mutex for SPI bus locking |
| @@ -301,6 +306,9 @@ struct spi_master { | |||
| 301 | /* spi_device.mode flags understood by this controller driver */ | 306 | /* spi_device.mode flags understood by this controller driver */ |
| 302 | u16 mode_bits; | 307 | u16 mode_bits; |
| 303 | 308 | ||
| 309 | /* bitmask of supported bits_per_word for transfers */ | ||
| 310 | u32 bits_per_word_mask; | ||
| 311 | |||
| 304 | /* other constraints relevant to this driver */ | 312 | /* other constraints relevant to this driver */ |
| 305 | u16 flags; | 313 | u16 flags; |
| 306 | #define SPI_MASTER_HALF_DUPLEX BIT(0) /* can't do full duplex */ | 314 | #define SPI_MASTER_HALF_DUPLEX BIT(0) /* can't do full duplex */ |
