Lines Matching defs:spi
23 #include <linux/spi/spi.h>
72 static int mpc512x_psc_spi_transfer_setup(struct spi_device *spi,
75 struct mpc512x_psc_spi_cs *cs = spi->controller_state;
78 ? t->speed_hz : spi->max_speed_hz;
80 ? t->bits_per_word : spi->bits_per_word;
85 static void mpc512x_psc_spi_activate_cs(struct spi_device *spi)
87 struct mpc512x_psc_spi_cs *cs = spi->controller_state;
88 struct mpc512x_psc_spi *mps = spi_master_get_devdata(spi->master);
97 if (spi->mode & SPI_CPHA)
102 if (spi->mode & SPI_CPOL)
107 if (spi->mode & SPI_LSB_FIRST)
124 if (spi_get_csgpiod(spi, 0)) {
126 gpiod_set_value(spi_get_csgpiod(spi, 0), 1);
130 static void mpc512x_psc_spi_deactivate_cs(struct spi_device *spi)
132 if (spi_get_csgpiod(spi, 0)) {
134 gpiod_set_value(spi_get_csgpiod(spi, 0), 0);
143 static int mpc512x_psc_spi_transfer_rxtx(struct spi_device *spi,
146 struct mpc512x_psc_spi *mps = spi_master_get_devdata(spi->master);
264 dev_warn(&spi->dev,
286 struct spi_device *spi;
291 spi = m->spi;
295 status = mpc512x_psc_spi_transfer_setup(spi, t);
300 mpc512x_psc_spi_activate_cs(spi);
303 status = mpc512x_psc_spi_transfer_rxtx(spi, t);
311 mpc512x_psc_spi_deactivate_cs(spi);
319 mpc512x_psc_spi_deactivate_cs(spi);
321 mpc512x_psc_spi_transfer_setup(spi, NULL);
357 static int mpc512x_psc_spi_setup(struct spi_device *spi)
359 struct mpc512x_psc_spi_cs *cs = spi->controller_state;
361 if (spi->bits_per_word % 8)
369 spi->controller_state = cs;
372 cs->bits_per_word = spi->bits_per_word;
373 cs->speed_hz = spi->max_speed_hz;
378 static void mpc512x_psc_spi_cleanup(struct spi_device *spi)
380 kfree(spi->controller_state);
497 "mpc512x-psc-spi", mps);
520 { .compatible = "fsl,mpc5121-psc-spi", .data = (void *)TYPE_MPC5121 },
521 { .compatible = "fsl,mpc5125-psc-spi", .data = (void *)TYPE_MPC5125 },
530 .name = "mpc512x-psc-spi",