Lines Matching defs:spi
9 * Based in part on drivers/spi/spi_s3c24xx.c
36 #include <linux/spi/spi.h>
37 #include <linux/spi/spi_bitbang.h>
140 static int spi_ppc4xx_txrx(struct spi_device *spi, struct spi_transfer *t)
145 dev_dbg(&spi->dev, "txrx: tx %p, rx %p, len %d\n",
148 hw = spi_controller_get_devdata(spi->controller);
164 static int spi_ppc4xx_setupxfer(struct spi_device *spi, struct spi_transfer *t)
166 struct ppc4xx_spi *hw = spi_controller_get_devdata(spi->controller);
167 struct spi_ppc4xx_cs *cs = spi->controller_state;
173 speed = spi->max_speed_hz;
181 speed = min(t->speed_hz, spi->max_speed_hz);
184 if (!speed || (speed > spi->max_speed_hz)) {
185 dev_err(&spi->dev, "invalid speed_hz (%d)\n", speed);
198 dev_dbg(&spi->dev, "setting pre-scaler to %d (hz %d)\n", cdm, speed);
205 hw->bitbang.chipselect(spi, BITBANG_CS_INACTIVE);
213 static int spi_ppc4xx_setup(struct spi_device *spi)
215 struct spi_ppc4xx_cs *cs = spi->controller_state;
217 if (!spi->max_speed_hz) {
218 dev_err(&spi->dev, "invalid max_speed_hz (must be non-zero)\n");
226 spi->controller_state = cs;
235 switch (spi->mode & SPI_MODE_X_MASK) {
250 if (spi->mode & SPI_LSB_FIRST)
279 dev_dbg(hw->dev, "got interrupt but spi still busy?\n");
317 static void spi_ppc4xx_cleanup(struct spi_device *spi)
319 kfree(spi->controller_state);
376 /* the spi->mode bits understood by this driver: */
439 /* Finally register our spi controller */
477 { .compatible = "ibm,ppc4xx-spi", },