Lines Matching defs:spi
33 #include <linux/spi/spi.h>
34 #include <linux/spi/spi_bitbang.h>
45 #include "spi-fsl-lib.h"
46 #include "spi-fsl-cpm.h"
47 #include "spi-fsl-spi.h"
66 .compatible = "fsl,spi",
89 static void fsl_spi_change_mode(struct spi_device *spi)
91 struct mpc8xxx_spi *mspi = spi_master_get_devdata(spi->master);
92 struct spi_mpc8xxx_cs *cs = spi->controller_state;
114 static void fsl_spi_chipselect(struct spi_device *spi, int value)
116 struct mpc8xxx_spi *mpc8xxx_spi = spi_master_get_devdata(spi->master);
118 struct spi_mpc8xxx_cs *cs = spi->controller_state;
120 pdata = spi->dev.parent->parent->platform_data;
124 pdata->cs_control(spi, false);
133 fsl_spi_change_mode(spi);
136 pdata->cs_control(spi, true);
175 struct spi_device *spi,
196 !(spi->mode & SPI_LSB_FIRST));
206 static int fsl_spi_setup_transfer(struct spi_device *spi,
213 struct spi_mpc8xxx_cs *cs = spi->controller_state;
215 mpc8xxx_spi = spi_master_get_devdata(spi->master);
224 bits_per_word = spi->bits_per_word;
227 hz = spi->max_speed_hz;
230 bits_per_word = mspi_apply_cpu_mode_quirks(cs, spi,
253 dev_name(&spi->dev), hz, mpc8xxx_spi->spibrg / 1024);
264 fsl_spi_change_mode(spi);
286 static int fsl_spi_bufs(struct spi_device *spi, struct spi_transfer *t,
289 struct mpc8xxx_spi *mpc8xxx_spi = spi_master_get_devdata(spi->master);
296 bits_per_word = spi->bits_per_word;
340 struct spi_device *spi = m->spi;
367 if (m->spi->mode & SPI_LSB_FIRST && t->bits_per_word > 8)
384 dev_err(&spi->dev,
395 status = fsl_spi_setup_transfer(spi, t);
401 fsl_spi_chipselect(spi, BITBANG_CS_ACTIVE);
406 status = fsl_spi_bufs(spi, t, m->is_dma_mapped);
417 fsl_spi_chipselect(spi, BITBANG_CS_INACTIVE);
426 fsl_spi_chipselect(spi, BITBANG_CS_INACTIVE);
429 fsl_spi_setup_transfer(spi, NULL);
434 static int fsl_spi_setup(struct spi_device *spi)
441 struct spi_mpc8xxx_cs *cs = spi_get_ctldata(spi);
443 if (!spi->max_speed_hz)
450 spi_set_ctldata(spi, cs);
453 mpc8xxx_spi = spi_master_get_devdata(spi->master);
463 if (spi->mode & SPI_CPHA)
465 if (spi->mode & SPI_CPOL)
467 if (!(spi->mode & SPI_LSB_FIRST))
469 if (spi->mode & SPI_LOOP)
472 retval = fsl_spi_setup_transfer(spi, NULL);
481 fsl_spi_chipselect(spi, BITBANG_CS_INACTIVE);
486 static void fsl_spi_cleanup(struct spi_device *spi)
488 struct spi_mpc8xxx_cs *cs = spi_get_ctldata(spi);
491 spi_set_ctldata(spi, NULL);
548 static void fsl_spi_grlib_cs_control(struct spi_device *spi, bool on)
550 struct mpc8xxx_spi *mpc8xxx_spi = spi_master_get_devdata(spi->master);
553 u16 cs = spi->chip_select;
555 if (spi->cs_gpiod) {
556 gpiod_set_value(spi->cs_gpiod, on);
692 static void fsl_spi_cs_control(struct spi_device *spi, bool on)
694 if (spi->cs_gpiod) {
695 gpiod_set_value(spi->cs_gpiod, on);
697 struct device *dev = spi->dev.parent->parent;