diff options
author | Oleksij Rempel <o.rempel@pengutronix.de> | 2022-04-13 10:21:58 +0200 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2022-04-14 09:42:09 +0200 |
commit | afff79e17a7807b3b2cfe5484e0b1f15fa337981 (patch) | |
tree | 245c67f9b57d7c9db2c3dbbdaeba08e1f5bf79fb /include | |
parent | 6bcd37b2cfce8844838162cce3c8588f14ed20c7 (diff) | |
download | barebox-afff79e17a7807b3b2cfe5484e0b1f15fa337981.tar.gz barebox-afff79e17a7807b3b2cfe5484e0b1f15fa337981.tar.xz |
spi: port spi_sync_transfer() function from kernel v5.17
This function is needed for SJA11xx switch driver
Signed-off-by: Oleksij Rempel <o.rempel@pengutronix.de>
Link: https://lore.barebox.org/20220413082205.429509-8-o.rempel@pengutronix.de
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'include')
-rw-r--r-- | include/spi/spi.h | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/include/spi/spi.h b/include/spi/spi.h index d133e0e212..b6d08592a3 100644 --- a/include/spi/spi.h +++ b/include/spi/spi.h @@ -442,6 +442,30 @@ spi_transfer_del(struct spi_transfer *t) int spi_sync(struct spi_device *spi, struct spi_message *message); +/** + * spi_sync_transfer - synchronous SPI data transfer + * @spi: device with which data will be exchanged + * @xfers: An array of spi_transfers + * @num_xfers: Number of items in the xfer array + * Context: can sleep + * + * Does a synchronous SPI data transfer of the given spi_transfer array. + * + * For more specific semantics see spi_sync(). + * + * Return: zero on success, else a negative error code. + */ +static inline int +spi_sync_transfer(struct spi_device *spi, struct spi_transfer *xfers, + unsigned int num_xfers) +{ + struct spi_message msg; + + spi_message_init_with_transfers(&msg, xfers, num_xfers); + + return spi_sync(spi, &msg); +} + struct spi_device *spi_new_device(struct spi_controller *ctrl, struct spi_board_info *chip); int spi_register_controller(struct spi_controller *ctrl); |