Lines Matching defs:spi

21 #include <linux/spi/spi.h>
74 int (*prepare_transfer)(struct spi_imx_data *spi_imx, struct spi_device *spi);
233 static bool spi_imx_can_dma(struct spi_controller *controller, struct spi_device *spi,
520 static int mx51_ecspi_channel(const struct spi_device *spi)
522 if (!spi_get_csgpiod(spi, 0))
523 return spi_get_chipselect(spi, 0);
524 return spi->controller->unused_native_cs;
530 struct spi_device *spi = msg->spi;
537 int channel = mx51_ecspi_channel(spi);
548 if (spi->mode & SPI_READY)
561 if (spi->mode & SPI_LOOP)
577 if (spi->mode & SPI_CPOL) {
585 if (spi->mode & SPI_MOSI_IDLE_LOW)
590 if (spi->mode & SPI_CS_HIGH)
633 struct spi_device *spi)
635 bool cpha = (spi->mode & SPI_CPHA);
636 bool flip_cpha = (spi->mode & SPI_RX_CPHA_FLIP) && spi_imx->rx_only;
638 int channel = mx51_ecspi_channel(spi);
652 struct spi_device *spi)
683 mx51_configure_cpha(spi_imx, spi);
787 struct spi_device *spi)
803 if (spi->mode & SPI_CPHA)
805 if (spi->mode & SPI_CPOL)
807 if (spi->mode & SPI_CS_HIGH)
809 if (!spi_get_csgpiod(spi, 0))
810 reg |= (spi_get_chipselect(spi, 0)) <<
820 if (spi->mode & SPI_LOOP)
891 struct spi_device *spi)
903 if (spi->mode & SPI_CPHA)
905 if (spi->mode & SPI_CPOL)
907 if (spi->mode & SPI_CS_HIGH)
909 if (!spi_get_csgpiod(spi, 0))
910 reg |= spi_get_chipselect(spi, 0) << MX21_CSPICTRL_CS_SHIFT;
966 struct spi_device *spi)
977 if (spi->mode & SPI_CPHA)
979 if (spi->mode & SPI_CPOL)
1253 static int spi_imx_setupxfer(struct spi_device *spi,
1256 struct spi_imx_data *spi_imx = spi_controller_get_devdata(spi->controller);
1262 if (!spi->max_speed_hz) {
1263 dev_err(&spi->dev, "no speed_hz provided!\n");
1266 dev_dbg(&spi->dev, "using spi->max_speed_hz!\n");
1267 spi_imx->spi_bus_clk = spi->max_speed_hz;
1280 !(spi->mode & SPI_CS_WORD) &&
1303 if (spi_imx_can_dma(spi_imx->controller, spi, t))
1309 || (t->tx_buf == spi->controller->dummy_tx));
1317 spi_imx->devtype_data->prepare_transfer(spi_imx, spi);
1499 static int spi_imx_pio_transfer(struct spi_device *spi,
1502 struct spi_imx_data *spi_imx = spi_controller_get_devdata(spi->controller);
1523 dev_err(&spi->dev, "I/O Error in PIO\n");
1531 static int spi_imx_poll_transfer(struct spi_device *spi,
1534 struct spi_imx_data *spi_imx = spi_controller_get_devdata(spi->controller);
1567 dev_err_ratelimited(&spi->dev,
1572 return spi_imx_pio_transfer(spi, transfer);
1579 static int spi_imx_pio_transfer_target(struct spi_device *spi,
1582 struct spi_imx_data *spi_imx = spi_controller_get_devdata(spi->controller);
1587 dev_err(&spi->dev, "Transaction too big, max size is %d bytes\n",
1607 dev_dbg(&spi->dev, "interrupted\n");
1624 struct spi_device *spi,
1627 struct spi_imx_data *spi_imx = spi_controller_get_devdata(spi->controller);
1630 spi_imx_setupxfer(spi, transfer);
1638 return spi_imx_pio_transfer_target(spi, transfer);
1656 return spi_imx_poll_transfer(spi, transfer);
1658 return spi_imx_pio_transfer(spi, transfer);
1661 static int spi_imx_setup(struct spi_device *spi)
1663 dev_dbg(&spi->dev, "%s: mode %d, %u bpw, %d hz\n", __func__,
1664 spi->mode, spi->bits_per_word, spi->max_speed_hz);
1669 static void spi_imx_cleanup(struct spi_device *spi)
1727 of_property_read_bool(np, "spi-slave");
1737 ret = of_property_read_u32(np, "fsl,spi-rdy-drctl", &spi_drctl);