Lines Matching refs:bitbang
28 * to glue code. These bitbang setup() and cleanup() routines are always
36 * which means you could use a bitbang driver either to get hardware
186 struct spi_bitbang *bitbang;
190 bitbang = spi_master_get_devdata(spi->master);
201 cs->txrx_word = bitbang->txrx_word[spi->mode & (SPI_CPOL|SPI_CPHA)];
207 if (bitbang->setup_transfer) {
208 retval = bitbang->setup_transfer(spi, NULL);
237 struct spi_bitbang *bitbang;
239 bitbang = spi_master_get_devdata(spi->master);
240 if (bitbang->set_line_direction) {
243 err = bitbang->set_line_direction(spi, !!(t->tx_buf));
273 struct spi_bitbang *bitbang;
275 bitbang = spi_master_get_devdata(spi);
277 mutex_lock(&bitbang->lock);
278 bitbang->busy = 1;
279 mutex_unlock(&bitbang->lock);
288 struct spi_bitbang *bitbang = spi_master_get_devdata(master);
291 if (bitbang->setup_transfer) {
292 status = bitbang->setup_transfer(spi, transfer);
298 status = bitbang->txrx_bufs(spi, transfer);
313 struct spi_bitbang *bitbang;
315 bitbang = spi_master_get_devdata(spi);
317 mutex_lock(&bitbang->lock);
318 bitbang->busy = 0;
319 mutex_unlock(&bitbang->lock);
326 struct spi_bitbang *bitbang = spi_master_get_devdata(spi->master);
328 /* SPI core provides CS high / low, but bitbang driver
335 bitbang->chipselect(spi, enable ? BITBANG_CS_ACTIVE :
342 int spi_bitbang_init(struct spi_bitbang *bitbang)
344 struct spi_master *master = bitbang->master;
358 if (custom_cs && !bitbang->chipselect)
361 mutex_init(&bitbang->lock);
364 master->mode_bits = SPI_CPOL | SPI_CPHA | bitbang->flags;
379 if (!bitbang->txrx_bufs) {
380 bitbang->use_dma = 0;
381 bitbang->txrx_bufs = spi_bitbang_bufs;
383 if (!bitbang->setup_transfer)
384 bitbang->setup_transfer =
397 * @bitbang: driver handle
411 * master methods. Those methods are the defaults if the bitbang->txrx_bufs
423 int spi_bitbang_start(struct spi_bitbang *bitbang)
425 struct spi_master *master = bitbang->master;
428 ret = spi_bitbang_init(bitbang);
446 void spi_bitbang_stop(struct spi_bitbang *bitbang)
448 spi_unregister_master(bitbang->master);