Lines Matching defs:spi

20 #include <linux/spi/spi.h>
21 #include <linux/spi/spi_bitbang.h>
223 static bool spi_imx_can_dma(struct spi_master *master, struct spi_device *spi,
518 struct spi_device *spi = msg->spi;
534 if (spi->mode & SPI_READY)
538 ctrl |= MX51_ECSPI_CTRL_CS(spi->chip_select);
547 if (spi->mode & SPI_LOOP)
559 cfg &= ~MX51_ECSPI_CONFIG_SBBCTRL(spi->chip_select);
561 cfg |= MX51_ECSPI_CONFIG_SBBCTRL(spi->chip_select);
563 if (spi->mode & SPI_CPHA)
564 cfg |= MX51_ECSPI_CONFIG_SCLKPHA(spi->chip_select);
566 cfg &= ~MX51_ECSPI_CONFIG_SCLKPHA(spi->chip_select);
568 if (spi->mode & SPI_CPOL) {
569 cfg |= MX51_ECSPI_CONFIG_SCLKPOL(spi->chip_select);
570 cfg |= MX51_ECSPI_CONFIG_SCLKCTL(spi->chip_select);
572 cfg &= ~MX51_ECSPI_CONFIG_SCLKPOL(spi->chip_select);
573 cfg &= ~MX51_ECSPI_CONFIG_SCLKCTL(spi->chip_select);
576 if (spi->mode & SPI_CS_HIGH)
577 cfg |= MX51_ECSPI_CONFIG_SSBPOL(spi->chip_select);
579 cfg &= ~MX51_ECSPI_CONFIG_SSBPOL(spi->chip_select);
616 struct spi_device *spi)
728 struct spi_device *spi)
744 if (spi->mode & SPI_CPHA)
746 if (spi->mode & SPI_CPOL)
748 if (spi->mode & SPI_CS_HIGH)
750 if (!spi->cs_gpiod)
751 reg |= (spi->chip_select) <<
761 if (spi->mode & SPI_LOOP)
832 struct spi_device *spi)
844 if (spi->mode & SPI_CPHA)
846 if (spi->mode & SPI_CPOL)
848 if (spi->mode & SPI_CS_HIGH)
850 if (!spi->cs_gpiod)
851 reg |= spi->chip_select << MX21_CSPICTRL_CS_SHIFT;
907 struct spi_device *spi)
918 if (spi->mode & SPI_CPHA)
920 if (spi->mode & SPI_CPOL)
1210 static int spi_imx_setupxfer(struct spi_device *spi,
1213 struct spi_imx_data *spi_imx = spi_master_get_devdata(spi->master);
1219 if (!spi->max_speed_hz) {
1220 dev_err(&spi->dev, "no speed_hz provided!\n");
1223 dev_dbg(&spi->dev, "using spi->max_speed_hz!\n");
1224 spi_imx->spi_bus_clk = spi->max_speed_hz;
1258 if (spi_imx_can_dma(spi_imx->bitbang.master, spi, t))
1269 spi_imx->devtype_data->prepare_transfer(spi_imx, spi);
1455 static int spi_imx_pio_transfer(struct spi_device *spi,
1458 struct spi_imx_data *spi_imx = spi_master_get_devdata(spi->master);
1479 dev_err(&spi->dev, "I/O Error in PIO\n");
1487 static int spi_imx_pio_transfer_slave(struct spi_device *spi,
1490 struct spi_imx_data *spi_imx = spi_master_get_devdata(spi->master);
1495 dev_err(&spi->dev, "Transaction too big, max size is %d bytes\n",
1515 dev_dbg(&spi->dev, "interrupted\n");
1531 static int spi_imx_transfer(struct spi_device *spi,
1534 struct spi_imx_data *spi_imx = spi_master_get_devdata(spi->master);
1543 return spi_imx_pio_transfer_slave(spi, transfer);
1548 return spi_imx_pio_transfer(spi, transfer);
1551 static int spi_imx_setup(struct spi_device *spi)
1553 dev_dbg(&spi->dev, "%s: mode %d, %u bpw, %d hz\n", __func__,
1554 spi->mode, spi->bits_per_word, spi->max_speed_hz);
1559 static void spi_imx_cleanup(struct spi_device *spi)
1619 of_property_read_bool(np, "spi-slave");
1629 ret = of_property_read_u32(np, "fsl,spi-rdy-drctl", &spi_drctl);