From 7b879ddbc5644fa7a03e16e773054f96819948e7 Mon Sep 17 00:00:00 2001 From: Dario Binacchi Date: Wed, 25 Feb 2026 17:16:52 +0100 Subject: spi: add support for bits-per-word setting Allow dynamic configuration of the SPI word length. This is required for controllers and slaves that need to operate with non-standard word lengths, such as 9-bit wide transfers. Signed-off-by: Dario Binacchi Reviewed-by: Simon Glass --- include/spi.h | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'include') diff --git a/include/spi.h b/include/spi.h index 95e7d5b1556..7eaf0aa69b8 100644 --- a/include/spi.h +++ b/include/spi.h @@ -77,11 +77,13 @@ struct dm_spi_bus { * @cs: Chip select number (0..n-1) * @max_hz: Maximum bus speed that this slave can tolerate * @mode: SPI mode to use for this device (see SPI mode flags) + * @wordlen: Word length in bits to use for this device */ struct dm_spi_slave_plat { unsigned int cs[SPI_CS_CNT_MAX]; uint max_hz; uint mode; + unsigned int wordlen; }; /** @@ -718,6 +720,18 @@ int dm_spi_claim_bus(struct udevice *dev); */ void dm_spi_release_bus(struct udevice *dev); +/** + * Set the word length for SPI transactions + * + * Set the word length (number of bits per word) for SPI transactions. + * + * @slave: The SPI slave + * @wordlen: The number of bits in a word + * + * Returns: 0 on success, -1 on failure. + */ +int dm_spi_set_wordlen(struct udevice *dev, unsigned int wordlen); + /** * SPI transfer * -- cgit v1.2.3