GPIO lines to provide the SPI bus. This can be used where
the inbuilt hardware cannot provide the transfer mode, or
where the board is using non hardware connected pins.
-
-config SPI_OMAP24XX
- bool "McSPI driver for OMAP24xx"
- depends on SPI_MASTER && ARCH_OMAP24XX
- help
- SPI master controller for OMAP24xx McSPI modules.
-
#
# Add new SPI master controllers in alphabetical order above this line
#
comment "SPI Protocol Masters"
depends on SPI_MASTER
-config TSC2101
- depends on SPI_MASTER
- tristate "TSC2101 chip support"
- ---help---
- Say Y here if you want support for the TSC2101 chip.
- At the moment it provides basic register read / write interface
- as well as a way to enable the MCLK clock.
-
-config TSC2102
- depends on SPI_MASTER
- tristate "TSC2102 codec support"
- ---help---
- Say Y here if you want support for the TSC2102 chip. It
- will be needed for the touchscreen driver on some boards.
-
config SPI_AT25
tristate "SPI EEPROMs from most vendors"
depends on SPI_MASTER && SYSFS
This driver can also be built as a module. If so, the module
will be called at25.
+config SPI_TSC2101
+ depends on SPI_MASTER
+ tristate "TSC2101 chip support"
+ ---help---
+ Say Y here if you want support for the TSC2101 chip.
+ At the moment it provides basic register read / write interface
+ as well as a way to enable the MCLK clock.
+
+config SPI_TSC2102
+ depends on SPI_MASTER
+ tristate "TSC2102 codec support"
+ ---help---
+ Say Y here if you want support for the TSC2102 chip. It
+ will be needed for the touchscreen driver on some boards.
+
config SPI_TSC2301
tristate "TSC2301 driver"
depends on SPI_MASTER
obj-$(CONFIG_SPI_MPC83xx) += spi_mpc83xx.o
obj-$(CONFIG_SPI_S3C24XX_GPIO) += spi_s3c24xx_gpio.o
obj-$(CONFIG_SPI_S3C24XX) += spi_s3c24xx.o
-obj-$(CONFIG_SPI_OMAP24XX) += omap2_mcspi.o
-obj-$(CONFIG_SPI_OMAP_UWIRE) += omap_uwire.o
# ... add above this line ...
# SPI protocol drivers (device/link on bus)
-obj-$(CONFIG_TSC2101) += tsc2101.o
-obj-$(CONFIG_TSC2102) += tsc2102.o
obj-$(CONFIG_SPI_AT25) += at25.o
-obj-$(CONFIG_SPI_TSC2301) += tsc2301.o
-tsc2301-objs := tsc2301-core.o
-tsc2301-$(CONFIG_SPI_TSC2301_AUDIO) += tsc2301-mixer.o
+obj-$(CONFIG_SPI_TSC2101) += tsc2101.o
+obj-$(CONFIG_SPI_TSC2102) += tsc2102.o
+obj-$(CONFIG_SPI_TSC2301) += tsc2301.o
+tsc2301-objs := tsc2301-core.o
+tsc2301-$(CONFIG_SPI_TSC2301_AUDIO) += tsc2301-mixer.o
# ... add above this line ...
# SPI slave controller drivers (upstream link)
printk(KERN_ERR "Unable to request DMA channel for McSPI RX\n");
return -EAGAIN;
}
-
+
if (omap_request_dma(tx_dev_id, "McSPI TX",
omap2_mcspi_dma_tx_callback, spi,
&mcspi_dma->dma_tx_channel)) {
printk(KERN_ERR "Unable to request DMA channel for McSPI TX\n");
return -EAGAIN;
}
-
+
mcspi_dma->dma_rx_sync_dev = rx_dev_id;
mcspi_dma->dma_tx_sync_dev = tx_dev_id;
init_completion(&mcspi_dma->dma_rx_completion);
init_completion(&mcspi_dma->dma_tx_completion);
-
+
return 0;
}
return -ENOMEM;
spi->controller_state = cs;
}
-
+
if (mcspi_dma->dma_rx_channel == -1 ||
mcspi_dma->dma_tx_channel == -1) {
ret = omap2_mcspi_request_dma(spi);
struct omap2_mcspi *mcspi;
struct resource *r;
int status = 0, i;
-
+
if (!pdata)
return -EINVAL;
status = -ENODEV;
goto err1;
}
-
+
mcspi->base = io_p2v(r->start);
INIT_WORK(&mcspi->work, omap2_mcspi_work);
}
clk_enable(mcspi->fck);
- mcspi->dma_channels =
+ mcspi->dma_channels =
(struct omap2_mcspi_dma *)kzalloc(master->num_chipselect *
sizeof(struct omap2_mcspi_dma),
GFP_KERNEL);
-
+
if (mcspi->dma_channels == NULL)
goto err3;