spi_write_then_read
Prev | Chapter 26. Serial Peripheral Interface (SPI) | Next

## Name

spi_write_then_read — SPI synchronous write followed by read

## Synopsis

`int spi_write_then_read (` | struct spi_device * | spi,
| const u8 * | txbuf,
| unsigned | n_tx,
| u8 * | rxbuf,
| unsigned | n_rx`)`;

## Arguments

`spi`

  device with which data will be exchanged

`txbuf`

  data to be written (need not be dma-safe)

`n_tx`

  size of txbuf, in bytes

`rxbuf`

  buffer into which data will be read

`n_rx`

  size of rxbuf, in bytes (need not be dma-safe)

## Context

can sleep

## Description

This performs a half duplex MicroWire style transaction with the device, sending txbuf and then reading rxbuf. The return value is zero for success, else a negative errno status code. This call may only be used from a context that may sleep.

Parameters to this routine are always copied using a small buffer; portable code should never use this for more than 32 bytes. Performance-sensitive or bulk transfer code should instead use spi_{async,sync}() calls with dma-safe buffers.

Prev | Up | Next
spi_sync | Home | Chapter 27. I2C and SMBus Subsystem