Lines Matching refs:spi
49 u32 (*txrx_word)(struct spi_device *spi, unsigned nsecs,
53 struct spi_device *spi,
60 struct spi_device *spi, in bitbang_txrx_8() argument
61 u32 (*txrx_word)(struct spi_device *spi, in bitbang_txrx_8() argument
77 word = txrx_word(spi, ns, word, bits); in bitbang_txrx_8()
86 struct spi_device *spi, in bitbang_txrx_16() argument
87 u32 (*txrx_word)(struct spi_device *spi, in bitbang_txrx_16() argument
103 word = txrx_word(spi, ns, word, bits); in bitbang_txrx_16()
112 struct spi_device *spi, in bitbang_txrx_32() argument
113 u32 (*txrx_word)(struct spi_device *spi, in bitbang_txrx_32() argument
129 word = txrx_word(spi, ns, word, bits); in bitbang_txrx_32()
137 int spi_bitbang_setup_transfer(struct spi_device *spi, struct spi_transfer *t) in spi_bitbang_setup_transfer() argument
139 struct spi_bitbang_cs *cs = spi->controller_state; in spi_bitbang_setup_transfer()
153 bits_per_word = spi->bits_per_word; in spi_bitbang_setup_transfer()
165 hz = spi->max_speed_hz; in spi_bitbang_setup_transfer()
179 int spi_bitbang_setup(struct spi_device *spi) in spi_bitbang_setup() argument
181 struct spi_bitbang_cs *cs = spi->controller_state; in spi_bitbang_setup()
185 bitbang = spi_master_get_devdata(spi->master); in spi_bitbang_setup()
191 spi->controller_state = cs; in spi_bitbang_setup()
195 cs->txrx_word = bitbang->txrx_word[spi->mode & (SPI_CPOL|SPI_CPHA)]; in spi_bitbang_setup()
200 int retval = bitbang->setup_transfer(spi, NULL); in spi_bitbang_setup()
205 dev_dbg(&spi->dev, "%s, %u nsec/bit\n", __func__, 2 * cs->nsecs); in spi_bitbang_setup()
215 bitbang->chipselect(spi, BITBANG_CS_INACTIVE); in spi_bitbang_setup()
227 void spi_bitbang_cleanup(struct spi_device *spi) in spi_bitbang_cleanup() argument
229 kfree(spi->controller_state); in spi_bitbang_cleanup()
233 static int spi_bitbang_bufs(struct spi_device *spi, struct spi_transfer *t) in spi_bitbang_bufs() argument
235 struct spi_bitbang_cs *cs = spi->controller_state; in spi_bitbang_bufs()
238 return cs->txrx_bufs(spi, cs->txrx_word, nsecs, t); in spi_bitbang_bufs()
255 static int spi_bitbang_prepare_hardware(struct spi_master *spi) in spi_bitbang_prepare_hardware() argument
260 bitbang = spi_master_get_devdata(spi); in spi_bitbang_prepare_hardware()
278 struct spi_device *spi = m->spi; in spi_bitbang_transfer_one() local
300 status = bitbang->setup_transfer(spi, t); in spi_bitbang_transfer_one()
315 bitbang->chipselect(spi, BITBANG_CS_ACTIVE); in spi_bitbang_transfer_one()
334 status = bitbang->txrx_bufs(spi, t); in spi_bitbang_transfer_one()
356 bitbang->chipselect(spi, BITBANG_CS_INACTIVE); in spi_bitbang_transfer_one()
369 bitbang->chipselect(spi, BITBANG_CS_INACTIVE); in spi_bitbang_transfer_one()
378 static int spi_bitbang_unprepare_hardware(struct spi_master *spi) in spi_bitbang_unprepare_hardware() argument
383 bitbang = spi_master_get_devdata(spi); in spi_bitbang_unprepare_hardware()