Lines Matching defs:spi

15 #include <linux/spi/spi.h>
16 #include <linux/spi/spi_bitbang.h>
42 u32 (*txrx_word)(struct spi_device *spi, unsigned nsecs,
46 struct spi_device *spi,
55 struct spi_device *spi,
56 u32 (*txrx_word)(struct spi_device *spi,
74 word = txrx_word(spi, ns, word, bits, flags);
83 struct spi_device *spi,
84 u32 (*txrx_word)(struct spi_device *spi,
102 word = txrx_word(spi, ns, word, bits, flags);
111 struct spi_device *spi,
112 u32 (*txrx_word)(struct spi_device *spi,
130 word = txrx_word(spi, ns, word, bits, flags);
138 int spi_bitbang_setup_transfer(struct spi_device *spi, struct spi_transfer *t)
140 struct spi_bitbang_cs *cs = spi->controller_state;
154 bits_per_word = spi->bits_per_word;
166 hz = spi->max_speed_hz;
180 int spi_bitbang_setup(struct spi_device *spi)
182 struct spi_bitbang_cs *cs = spi->controller_state;
187 bitbang = spi_master_get_devdata(spi->master);
193 spi->controller_state = cs;
198 cs->txrx_word = bitbang->txrx_word[spi->mode & (SPI_CPOL|SPI_CPHA)];
205 retval = bitbang->setup_transfer(spi, NULL);
210 dev_dbg(&spi->dev, "%s, %u nsec/bit\n", __func__, 2 * cs->nsecs);
224 void spi_bitbang_cleanup(struct spi_device *spi)
226 kfree(spi->controller_state);
230 static int spi_bitbang_bufs(struct spi_device *spi, struct spi_transfer *t)
232 struct spi_bitbang_cs *cs = spi->controller_state;
236 bitbang = spi_master_get_devdata(spi->master);
240 err = bitbang->set_line_direction(spi, !!(t->tx_buf));
245 if (spi->mode & SPI_3WIRE) {
249 return cs->txrx_bufs(spi, cs->txrx_word, nsecs, t, flags);
251 return cs->txrx_bufs(spi, cs->txrx_word, nsecs, t, 0);
268 static int spi_bitbang_prepare_hardware(struct spi_master *spi)
272 bitbang = spi_master_get_devdata(spi);
282 struct spi_device *spi,
289 status = bitbang->setup_transfer(spi, transfer);
295 status = bitbang->txrx_bufs(spi, transfer);
308 static int spi_bitbang_unprepare_hardware(struct spi_master *spi)
312 bitbang = spi_master_get_devdata(spi);
321 static void spi_bitbang_set_cs(struct spi_device *spi, bool enable)
323 struct spi_bitbang *bitbang = spi_master_get_devdata(spi->master);
327 * spi device driver takes care of handling SPI_CS_HIGH
329 enable = (!!(spi->mode & SPI_CS_HIGH) == enable);
332 bitbang->chipselect(spi, enable ? BITBANG_CS_ACTIVE :
407 * spi_bitbang_cleanup and spi_bitbang_setup_transfer to handle those spi
441 * spi_bitbang_stop - stops the task providing spi communication