diff options
author | 2013-10-25 09:51:41 +0100 | |
---|---|---|
committer | 2013-10-25 09:51:41 +0100 | |
commit | 82f85cf98f0eb60093e8b3d606711c2d49538478 (patch) | |
tree | 4f47b44021db56a591d0e7d8930963853493d80e /include/linux/spi | |
parent | Merge remote-tracking branch 'spi/topic/txx9' into spi-next (diff) | |
parent | staging:iio:ade7753/ade7754/ade7759: Use spi_w8r16be() instead of spi_w8r16() (diff) | |
download | linux-82f85cf98f0eb60093e8b3d606711c2d49538478.tar.gz linux-82f85cf98f0eb60093e8b3d606711c2d49538478.tar.bz2 linux-82f85cf98f0eb60093e8b3d606711c2d49538478.zip |
Merge remote-tracking branch 'spi/topic/wr' into spi-next
Diffstat (limited to 'include/linux/spi')
-rw-r--r-- | include/linux/spi/spi.h | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/include/linux/spi/spi.h b/include/linux/spi/spi.h index 1619ed48e75d..8c62ba74dd91 100644 --- a/include/linux/spi/spi.h +++ b/include/linux/spi/spi.h @@ -853,6 +853,33 @@ static inline ssize_t spi_w8r16(struct spi_device *spi, u8 cmd) return (status < 0) ? status : result; } +/** + * spi_w8r16be - SPI synchronous 8 bit write followed by 16 bit big-endian read + * @spi: device with which data will be exchanged + * @cmd: command to be written before data is read back + * Context: can sleep + * + * This returns the (unsigned) sixteen bit number returned by the device in cpu + * endianness, or else a negative error code. Callable only from contexts that + * can sleep. + * + * This function is similar to spi_w8r16, with the exception that it will + * convert the read 16 bit data word from big-endian to native endianness. + * + */ +static inline ssize_t spi_w8r16be(struct spi_device *spi, u8 cmd) + +{ + ssize_t status; + __be16 result; + + status = spi_write_then_read(spi, &cmd, 1, &result, 2); + if (status < 0) + return status; + + return be16_to_cpu(result); +} + /*---------------------------------------------------------------------------*/ /* |