Lines Matching defs:spi
9 * Based in part on drivers/spi/spi_s3c24xx.c
34 #include <linux/spi/spi.h>
35 #include <linux/spi/spi_bitbang.h>
138 static int spi_ppc4xx_txrx(struct spi_device *spi, struct spi_transfer *t)
143 dev_dbg(&spi->dev, "txrx: tx %p, rx %p, len %d\n",
146 hw = spi_controller_get_devdata(spi->controller);
162 static int spi_ppc4xx_setupxfer(struct spi_device *spi, struct spi_transfer *t)
164 struct ppc4xx_spi *hw = spi_controller_get_devdata(spi->controller);
165 struct spi_ppc4xx_cs *cs = spi->controller_state;
171 speed = spi->max_speed_hz;
179 speed = min(t->speed_hz, spi->max_speed_hz);
182 if (!speed || (speed > spi->max_speed_hz)) {
183 dev_err(&spi->dev, "invalid speed_hz (%d)\n", speed);
196 dev_dbg(&spi->dev, "setting pre-scaler to %d (hz %d)\n", cdm, speed);
203 hw->bitbang.chipselect(spi, BITBANG_CS_INACTIVE);
211 static int spi_ppc4xx_setup(struct spi_device *spi)
213 struct spi_ppc4xx_cs *cs = spi->controller_state;
215 if (!spi->max_speed_hz) {
216 dev_err(&spi->dev, "invalid max_speed_hz (must be non-zero)\n");
224 spi->controller_state = cs;
233 switch (spi->mode & SPI_MODE_X_MASK) {
248 if (spi->mode & SPI_LSB_FIRST)
277 dev_dbg(hw->dev, "got interrupt but spi still busy?\n");
315 static void spi_ppc4xx_cleanup(struct spi_device *spi)
317 kfree(spi->controller_state);
374 /* the spi->mode bits understood by this driver: */
437 /* Finally register our spi controller */
475 { .compatible = "ibm,ppc4xx-spi", },