Lines Matching defs:spi

19 #include <linux/spi/spi.h>
20 #include <linux/spi/spi_bitbang.h>
23 #include <linux/platform_data/spi-davinci.h>
198 static void davinci_spi_chipselect(struct spi_device *spi, int value)
201 struct davinci_spi_config *spicfg = spi->controller_data;
202 u8 chip_sel = spi->chip_select;
205 dspi = spi_master_get_devdata(spi->master);
215 if (spi->cs_gpiod) {
217 gpiod_set_value(spi->cs_gpiod, 1);
219 gpiod_set_value(spi->cs_gpiod, 0);
222 if (!(spi->mode & SPI_CS_WORD))
258 * @spi: spi device on which data transfer to be done
259 * @t: spi transfer in which transfer info is filled
265 static int davinci_spi_setup_transfer(struct spi_device *spi,
275 dspi = spi_master_get_devdata(spi->master);
276 spicfg = spi->controller_data;
287 bits_per_word = spi->bits_per_word;
296 dspi->bytes_per_word[spi->chip_select] = 1;
300 dspi->bytes_per_word[spi->chip_select] = 2;
304 hz = spi->max_speed_hz;
314 if (spi->mode & SPI_LSB_FIRST)
317 if (spi->mode & SPI_CPOL)
320 if (!(spi->mode & SPI_CPHA))
363 if (spi->mode & SPI_READY) {
379 static int davinci_spi_of_setup(struct spi_device *spi)
381 struct davinci_spi_config *spicfg = spi->controller_data;
382 struct device_node *np = spi->dev.of_node;
383 struct davinci_spi *dspi = spi_master_get_devdata(spi->master);
392 if (!of_property_read_u32(np, "ti,spi-wdelay", &prop))
394 spi->controller_data = spicfg;
405 * @spi: spi device on which data transfer to be done
409 static int davinci_spi_setup(struct spi_device *spi)
412 struct device_node *np = spi->dev.of_node;
415 dspi = spi_master_get_devdata(spi->master);
417 if (!(spi->mode & SPI_NO_CS)) {
418 if (np && spi->cs_gpiod)
422 set_io_bits(dspi->base + SPIPC0, 1 << spi->chip_select);
425 if (spi->mode & SPI_READY)
428 if (spi->mode & SPI_LOOP)
433 return davinci_spi_of_setup(spi);
436 static void davinci_spi_cleanup(struct spi_device *spi)
438 struct davinci_spi_config *spicfg = spi->controller_data;
440 spi->controller_data = NULL;
441 if (spi->dev.of_node)
446 struct spi_device *spi,
449 struct davinci_spi_config *spicfg = spi->controller_data;
559 * @spi: spi device on which data transfer to be done
560 * @t: spi transfer in which transfer info is filled
566 static int davinci_spi_bufs(struct spi_device *spi, struct spi_transfer *t)
575 dspi = spi_master_get_devdata(spi->master);
577 spicfg = (struct davinci_spi_config *)spi->controller_data;
582 data_type = dspi->bytes_per_word[spi->chip_select];
596 if (!davinci_spi_can_dma(spi->master, spi, t)) {
677 if (davinci_spi_can_dma(spi->master, spi, t))
690 dev_name(&spi->dev));
695 dev_err(&spi->dev, "SPI data transfer error\n");
786 .compatible = "ti,dm6441-spi",
790 .compatible = "ti,da830-spi",
794 .compatible = "ti,keystone-spi",
839 of_property_read_u32(node, "ti,davinci-spi-intr-line", &intr_line);