Lines Matching defs:spi

18 #include <linux/spi/spi.h>
19 #include <linux/spi/spi_bitbang.h>
22 #include <linux/platform_data/spi-davinci.h>
197 static void davinci_spi_chipselect(struct spi_device *spi, int value)
200 struct davinci_spi_config *spicfg = spi->controller_data;
201 u8 chip_sel = spi_get_chipselect(spi, 0);
204 dspi = spi_controller_get_devdata(spi->controller);
214 if (spi_get_csgpiod(spi, 0)) {
216 gpiod_set_value(spi_get_csgpiod(spi, 0), 1);
218 gpiod_set_value(spi_get_csgpiod(spi, 0), 0);
221 if (!(spi->mode & SPI_CS_WORD))
257 * @spi: spi device on which data transfer to be done
258 * @t: spi transfer in which transfer info is filled
264 static int davinci_spi_setup_transfer(struct spi_device *spi,
274 dspi = spi_controller_get_devdata(spi->controller);
275 spicfg = spi->controller_data;
286 bits_per_word = spi->bits_per_word;
295 dspi->bytes_per_word[spi_get_chipselect(spi, 0)] = 1;
299 dspi->bytes_per_word[spi_get_chipselect(spi, 0)] = 2;
303 hz = spi->max_speed_hz;
313 if (spi->mode & SPI_LSB_FIRST)
316 if (spi->mode & SPI_CPOL)
319 if (!(spi->mode & SPI_CPHA))
362 if (spi->mode & SPI_READY) {
378 static int davinci_spi_of_setup(struct spi_device *spi)
380 struct davinci_spi_config *spicfg = spi->controller_data;
381 struct device_node *np = spi->dev.of_node;
382 struct davinci_spi *dspi = spi_controller_get_devdata(spi->controller);
391 if (!of_property_read_u32(np, "ti,spi-wdelay", &prop))
393 spi->controller_data = spicfg;
404 * @spi: spi device on which data transfer to be done
408 static int davinci_spi_setup(struct spi_device *spi)
411 struct device_node *np = spi->dev.of_node;
414 dspi = spi_controller_get_devdata(spi->controller);
416 if (!(spi->mode & SPI_NO_CS)) {
417 if (np && spi_get_csgpiod(spi, 0))
421 set_io_bits(dspi->base + SPIPC0, 1 << spi_get_chipselect(spi, 0));
424 if (spi->mode & SPI_READY)
427 if (spi->mode & SPI_LOOP)
432 return davinci_spi_of_setup(spi);
435 static void davinci_spi_cleanup(struct spi_device *spi)
437 struct davinci_spi_config *spicfg = spi->controller_data;
439 spi->controller_data = NULL;
440 if (spi->dev.of_node)
445 struct spi_device *spi,
448 struct davinci_spi_config *spicfg = spi->controller_data;
558 * @spi: spi device on which data transfer to be done
559 * @t: spi transfer in which transfer info is filled
565 static int davinci_spi_bufs(struct spi_device *spi, struct spi_transfer *t)
574 dspi = spi_controller_get_devdata(spi->controller);
576 spicfg = (struct davinci_spi_config *)spi->controller_data;
581 data_type = dspi->bytes_per_word[spi_get_chipselect(spi, 0)];
595 if (!davinci_spi_can_dma(spi->controller, spi, t)) {
676 if (davinci_spi_can_dma(spi->controller, spi, t))
689 dev_name(&spi->dev));
694 dev_err(&spi->dev, "SPI data transfer error\n");
785 .compatible = "ti,dm6441-spi",
789 .compatible = "ti,da830-spi",
793 .compatible = "ti,keystone-spi",
833 of_property_read_u32(node, "ti,davinci-spi-intr-line", &intr_line);