Lines Matching refs:spi

51 static unsigned int bitbang_txrx_8(struct spi_device *spi,  in bitbang_txrx_8()  argument
63 bitbang = spi_controller_get_devdata(spi->controller); in bitbang_txrx_8()
70 word = spi->mode & SPI_MOSI_IDLE_HIGH ? 0xFF : 0; in bitbang_txrx_8()
71 word = txrx_word(spi, ns, word, bits, flags); in bitbang_txrx_8()
77 bitbang->set_mosi_idle(spi); in bitbang_txrx_8()
82 static unsigned int bitbang_txrx_16(struct spi_device *spi, in bitbang_txrx_16() argument
94 bitbang = spi_controller_get_devdata(spi->controller); in bitbang_txrx_16()
101 word = spi->mode & SPI_MOSI_IDLE_HIGH ? 0xFFFF : 0; in bitbang_txrx_16()
102 word = txrx_word(spi, ns, word, bits, flags); in bitbang_txrx_16()
108 bitbang->set_mosi_idle(spi); in bitbang_txrx_16()
113 static unsigned int bitbang_txrx_32(struct spi_device *spi, in bitbang_txrx_32() argument
125 bitbang = spi_controller_get_devdata(spi->controller); in bitbang_txrx_32()
132 word = spi->mode & SPI_MOSI_IDLE_HIGH ? 0xFFFFFFFF : 0; in bitbang_txrx_32()
133 word = txrx_word(spi, ns, word, bits, flags); in bitbang_txrx_32()
139 bitbang->set_mosi_idle(spi); in bitbang_txrx_32()
144 int spi_bitbang_setup_transfer(struct spi_device *spi, struct spi_transfer *t) in spi_bitbang_setup_transfer() argument
146 struct spi_bitbang_cs *cs = spi->controller_state; in spi_bitbang_setup_transfer()
160 bits_per_word = spi->bits_per_word; in spi_bitbang_setup_transfer()
172 hz = spi->max_speed_hz; in spi_bitbang_setup_transfer()
186 int spi_bitbang_setup(struct spi_device *spi) in spi_bitbang_setup() argument
188 struct spi_bitbang_cs *cs = spi->controller_state; in spi_bitbang_setup()
193 bitbang = spi_controller_get_devdata(spi->controller); in spi_bitbang_setup()
199 spi->controller_state = cs; in spi_bitbang_setup()
204 cs->txrx_word = bitbang->txrx_word[spi->mode & (SPI_CPOL|SPI_CPHA)]; in spi_bitbang_setup()
211 retval = bitbang->setup_transfer(spi, NULL); in spi_bitbang_setup()
217 bitbang->set_mosi_idle(spi); in spi_bitbang_setup()
219 dev_dbg(&spi->dev, "%s, %u nsec/bit\n", __func__, 2 * cs->nsecs); in spi_bitbang_setup()
233 void spi_bitbang_cleanup(struct spi_device *spi) in spi_bitbang_cleanup() argument
235 kfree(spi->controller_state); in spi_bitbang_cleanup()
239 static int spi_bitbang_bufs(struct spi_device *spi, struct spi_transfer *t) in spi_bitbang_bufs() argument
241 struct spi_bitbang_cs *cs = spi->controller_state; in spi_bitbang_bufs()
245 bitbang = spi_controller_get_devdata(spi->controller); in spi_bitbang_bufs()
249 err = bitbang->set_line_direction(spi, !!(t->tx_buf)); in spi_bitbang_bufs()
254 if (spi->mode & SPI_3WIRE) { in spi_bitbang_bufs()
258 return cs->txrx_bufs(spi, cs->txrx_word, nsecs, t, flags); in spi_bitbang_bufs()
260 return cs->txrx_bufs(spi, cs->txrx_word, nsecs, t, 0); in spi_bitbang_bufs()
277 static int spi_bitbang_prepare_hardware(struct spi_controller *spi) in spi_bitbang_prepare_hardware() argument
281 bitbang = spi_controller_get_devdata(spi); in spi_bitbang_prepare_hardware()
291 struct spi_device *spi, in spi_bitbang_transfer_one() argument
298 status = bitbang->setup_transfer(spi, transfer); in spi_bitbang_transfer_one()
304 status = bitbang->txrx_bufs(spi, transfer); in spi_bitbang_transfer_one()
317 static int spi_bitbang_unprepare_hardware(struct spi_controller *spi) in spi_bitbang_unprepare_hardware() argument
321 bitbang = spi_controller_get_devdata(spi); in spi_bitbang_unprepare_hardware()
330 static void spi_bitbang_set_cs(struct spi_device *spi, bool enable) in spi_bitbang_set_cs() argument
332 struct spi_bitbang *bitbang = spi_controller_get_devdata(spi->controller); in spi_bitbang_set_cs()
338 enable = (!!(spi->mode & SPI_CS_HIGH) == enable); in spi_bitbang_set_cs()
341 bitbang->chipselect(spi, enable ? BITBANG_CS_ACTIVE : in spi_bitbang_set_cs()