Lines Matching refs:spi
51 u32 (*txrx_word)(struct spi_device *spi, unsigned nsecs,
55 struct spi_device *spi,
62 struct spi_device *spi, in bitbang_txrx_8() argument
63 u32 (*txrx_word)(struct spi_device *spi, in bitbang_txrx_8() argument
79 word = txrx_word(spi, ns, word, bits); in bitbang_txrx_8()
88 struct spi_device *spi, in bitbang_txrx_16() argument
89 u32 (*txrx_word)(struct spi_device *spi, in bitbang_txrx_16() argument
105 word = txrx_word(spi, ns, word, bits); in bitbang_txrx_16()
114 struct spi_device *spi, in bitbang_txrx_32() argument
115 u32 (*txrx_word)(struct spi_device *spi, in bitbang_txrx_32() argument
131 word = txrx_word(spi, ns, word, bits); in bitbang_txrx_32()
139 int spi_bitbang_setup_transfer(struct spi_device *spi, struct spi_transfer *t) in spi_bitbang_setup_transfer() argument
141 struct spi_bitbang_cs *cs = spi->controller_state; in spi_bitbang_setup_transfer()
155 bits_per_word = spi->bits_per_word; in spi_bitbang_setup_transfer()
167 hz = spi->max_speed_hz; in spi_bitbang_setup_transfer()
181 int spi_bitbang_setup(struct spi_device *spi) in spi_bitbang_setup() argument
183 struct spi_bitbang_cs *cs = spi->controller_state; in spi_bitbang_setup()
186 bitbang = spi_master_get_devdata(spi->master); in spi_bitbang_setup()
192 spi->controller_state = cs; in spi_bitbang_setup()
196 cs->txrx_word = bitbang->txrx_word[spi->mode & (SPI_CPOL|SPI_CPHA)]; in spi_bitbang_setup()
201 int retval = bitbang->setup_transfer(spi, NULL); in spi_bitbang_setup()
206 dev_dbg(&spi->dev, "%s, %u nsec/bit\n", __func__, 2 * cs->nsecs); in spi_bitbang_setup()
216 bitbang->chipselect(spi, BITBANG_CS_INACTIVE); in spi_bitbang_setup()
228 void spi_bitbang_cleanup(struct spi_device *spi) in spi_bitbang_cleanup() argument
230 kfree(spi->controller_state); in spi_bitbang_cleanup()
234 static int spi_bitbang_bufs(struct spi_device *spi, struct spi_transfer *t) in spi_bitbang_bufs() argument
236 struct spi_bitbang_cs *cs = spi->controller_state; in spi_bitbang_bufs()
239 return cs->txrx_bufs(spi, cs->txrx_word, nsecs, t); in spi_bitbang_bufs()
256 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()
270 struct spi_device *spi, in spi_bitbang_transfer_one() argument
277 status = bitbang->setup_transfer(spi, transfer); in spi_bitbang_transfer_one()
283 status = bitbang->txrx_bufs(spi, transfer); in spi_bitbang_transfer_one()
296 static int spi_bitbang_unprepare_hardware(struct spi_master *spi) in spi_bitbang_unprepare_hardware() argument
300 bitbang = spi_master_get_devdata(spi); in spi_bitbang_unprepare_hardware()
309 static void spi_bitbang_set_cs(struct spi_device *spi, bool enable) in spi_bitbang_set_cs() argument
311 struct spi_bitbang *bitbang = spi_master_get_devdata(spi->master); in spi_bitbang_set_cs()
317 enable = (!!(spi->mode & SPI_CS_HIGH) == enable); in spi_bitbang_set_cs()
320 bitbang->chipselect(spi, enable ? BITBANG_CS_ACTIVE : in spi_bitbang_set_cs()