summaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorOleksij Rempel <o.rempel@pengutronix.de>2022-04-13 10:21:58 +0200
committerSascha Hauer <s.hauer@pengutronix.de>2022-04-14 09:42:09 +0200
commitafff79e17a7807b3b2cfe5484e0b1f15fa337981 (patch)
tree245c67f9b57d7c9db2c3dbbdaeba08e1f5bf79fb /include
parent6bcd37b2cfce8844838162cce3c8588f14ed20c7 (diff)
downloadbarebox-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.h24
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);