Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 496a2e36 authored by Grant Likely's avatar Grant Likely
Browse files

Merge branch 'for-grant' of git://arago-project.org/git/projects/linux-davinci into spi/next

* 'for-grant' of git://arago-project.org/git/projects/linux-davinci into spi/next
   spi: davinci: fix checkpatch errors
   spi: davinci: whitespace cleanup
   spi: davinci: remove unused variable 'pdata'
   spi: davinci: set chip-select mode in SPIDEF only once
   spi: davinci: enable both activation and deactivation of chip-selects
   spi: davinci: remove unnecessary data transmit on CS disable
   spi: davinci: enable GPIO lines to be used as chip selects
   spi: davinci: simplify prescalar calculation
   spi: davinci: remove 'wait_enable' platform data member
   spi: davinci: make chip-slect specific parameters really chip-select specific
   spi: davinci: consolidate setup of SPIFMTn in one function
   spi: davinci: setup chip-select timers values only if timer enabled
   spi: davinci: add support for wait enable timeouts
   spi: davinci: remove unused members of davinci_spi_slave
   spi: davinci: eliminate the single member structure davinci_spi_slave
   spi: davinci: eliminate unnecessary update of davinci_spi->count
   spi: davinci: simplify calculation of edma acount value
   spi: davinci: check for NULL buffer pointer before using it
   spi: davinci: remove unnecessary disable of SPI
   spi: davinci: remove unnecessary 'count' variable in driver private data
   spi: davinci: remove unnecessary completion variable initialization
   spi: davinci: remove non-useful interrupt mode support
   spi: davinci: simplify poll mode transfers
   spi: davinci: add support for interrupt mode
   spi: davinci: configure the invariable bits in spipc0 only once
   spi: davinci: remove unnecessary function davinci_spi_bufs_prep()
   spi: davinci: remove unnecessary call to davinci_spi_setup_transfer()
   spi: davinci: do not store DMA channel information per chip select
   spi: davinci: always start transmit DMA
   spi: davinci: do not use temporary buffer if no transmit data provided
   spi: davinci: always start receive DMA
   spi: davinci: use edma_write_slot() to setup EDMA PaRAM slot
   spi: davinci: fix DMA event generation stoppage
   spi: davinci: fix EDMA CC errors at end of transfers
   spi: davinci: handle DMA completion errors correctly
   spi: davinci: remove usage of additional completion variables for DMA
   spi: davinci: let DMA operation be specified on per-device basis
   spi: davinci: remove non-useful "clk_internal" platform data
   spi: davinci: enable and power-up SPI only when required
   spi: davinci: setup the driver owner
   spi: davinci: add additional comments
   spi: davinci: add EF Johnson Technologies copyright
   spi: davinci: removed unused #defines
   spi: davinci: remove unnecessary typecast
   spi: davinci: do not treat Tx interrupt being set as error
   spi: davinci: do not allocate DMA channels during SPI device setup
   spi: davinci: remove unnecessary private data member 'region_size'
   spi: davinci: shorten variable names
   spi: davinci: kconfig: add manufacturer name to prompt string
parents 5aa68b85 23ce17ad
Loading
Loading
Loading
Loading
+1 −6
Original line number Diff line number Diff line
@@ -412,12 +412,7 @@ static struct resource dm355_spi0_resources[] = {
static struct davinci_spi_platform_data dm355_spi0_pdata = {
	.version 	= SPI_VERSION_1,
	.num_chipselect = 2,
	.clk_internal	= 1,
	.cs_hold	= 1,
	.intr_level	= 0,
	.poll_mode	= 1,	/* 0 -> interrupt mode 1-> polling mode */
	.c2tdelay	= 0,
	.t2cdelay	= 0,
	.cshold_bug	= true,
};
static struct platform_device dm355_spi0_device = {
	.name = "spi_davinci",
+0 −6
Original line number Diff line number Diff line
@@ -625,12 +625,6 @@ static u64 dm365_spi0_dma_mask = DMA_BIT_MASK(32);
static struct davinci_spi_platform_data dm365_spi0_pdata = {
	.version 	= SPI_VERSION_1,
	.num_chipselect = 2,
	.clk_internal	= 1,
	.cs_hold	= 1,
	.intr_level	= 0,
	.poll_mode	= 1,	/* 0 -> interrupt mode 1-> polling mode */
	.c2tdelay	= 0,
	.t2cdelay	= 0,
};

static struct resource dm365_spi0_resources[] = {
+46 −6
Original line number Diff line number Diff line
@@ -19,26 +19,66 @@
#ifndef __ARCH_ARM_DAVINCI_SPI_H
#define __ARCH_ARM_DAVINCI_SPI_H

#define SPI_INTERN_CS	0xFF

enum {
	SPI_VERSION_1, /* For DM355/DM365/DM6467 */
	SPI_VERSION_2, /* For DA8xx */
};

/**
 * davinci_spi_platform_data - Platform data for SPI master device on DaVinci
 *
 * @version:	version of the SPI IP. Different DaVinci devices have slightly
 *		varying versions of the same IP.
 * @num_chipselect: number of chipselects supported by this SPI master
 * @intr_line:	interrupt line used to connect the SPI IP to the ARM interrupt
 *		controller withn the SoC. Possible values are 0 and 1.
 * @chip_sel:	list of GPIOs which can act as chip-selects for the SPI.
 *		SPI_INTERN_CS denotes internal SPI chip-select. Not necessary
 *		to populate if all chip-selects are internal.
 * @cshold_bug:	set this to true if the SPI controller on your chip requires
 *		a write to CSHOLD bit in between transfers (like in DM355).
 */
struct davinci_spi_platform_data {
	u8	version;
	u8	num_chipselect;
	u8	intr_line;
	u8	*chip_sel;
	bool	cshold_bug;
};

/**
 * davinci_spi_config - Per-chip-select configuration for SPI slave devices
 *
 * @wdelay:	amount of delay between transmissions. Measured in number of
 *		SPI module clocks.
 * @odd_parity:	polarity of parity flag at the end of transmit data stream.
 *		0 - odd parity, 1 - even parity.
 * @parity_enable: enable transmission of parity at end of each transmit
 *		data stream.
 * @io_type:	type of IO transfer. Choose between polled, interrupt and DMA.
 * @timer_disable: disable chip-select timers (setup and hold)
 * @c2tdelay:	chip-select setup time. Measured in number of SPI module clocks.
 * @t2cdelay:	chip-select hold time. Measured in number of SPI module clocks.
 * @t2edelay:	transmit data finished to SPI ENAn pin inactive time. Measured
 *		in number of SPI clocks.
 * @c2edelay:	chip-select active to SPI ENAn signal active time. Measured in
 *		number of SPI clocks.
 */
struct davinci_spi_config {
	u8	wdelay;
	u8	odd_parity;
	u8	parity_enable;
	u8	wait_enable;
#define SPI_IO_TYPE_INTR	0
#define SPI_IO_TYPE_POLL	1
#define SPI_IO_TYPE_DMA		2
	u8	io_type;
	u8	timer_disable;
	u8	clk_internal;
	u8	cs_hold;
	u8	intr_level;
	u8	poll_mode;
	u8	use_dma;
	u8	c2tdelay;
	u8	t2cdelay;
	u8	t2edelay;
	u8	c2edelay;
};

#endif	/* __ARCH_ARM_DAVINCI_SPI_H */
+5 −2
Original line number Diff line number Diff line
@@ -111,11 +111,14 @@ config SPI_COLDFIRE_QSPI
	  will be called coldfire_qspi.

config SPI_DAVINCI
	tristate "SPI controller driver for DaVinci/DA8xx SoC's"
	tristate "Texas Instruments DaVinci/DA8x/OMAP-L/AM1x SoC SPI controller"
	depends on SPI_MASTER && ARCH_DAVINCI
	select SPI_BITBANG
	help
	  SPI master controller for DaVinci and DA8xx SPI modules.
	  SPI master controller for DaVinci/DA8x/OMAP-L/AM1x SPI modules.

	  This driver can also be built as a module. The module will be called
	  davinci_spi.

config SPI_EP93XX
	tristate "Cirrus Logic EP93xx SPI controller"
+535 −779

File changed.

Preview size limit exceeded, changes collapsed.