@@ -34,10 +34,12 @@
*
* @speed: Current bus speed.
* @mode: Current bus mode.
+ * @wordlen: Current wordlen.
*/
struct sandbox_spi_priv {
uint speed;
uint mode;
+ uint wordlen;
};
__weak int sandbox_spi_get_emul(struct sandbox_state *state,
@@ -61,6 +63,16 @@ uint sandbox_spi_get_mode(struct udevice *dev)
return priv->mode;
}
+static int sandbox_spi_set_wordlen(struct udevice *slave, unsigned int wordlen)
+{
+ struct udevice *bus = slave->parent;
+ struct sandbox_spi_priv *priv = dev_get_priv(bus);
+
+ priv->wordlen = wordlen;
+
+ return 0;
+}
+
static int sandbox_spi_xfer(struct udevice *slave, unsigned int bitlen,
const void *dout, void *din, unsigned long flags)
{
@@ -158,6 +170,7 @@ static const struct dm_spi_ops sandbox_spi_ops = {
.set_mode = sandbox_spi_set_mode,
.cs_info = sandbox_cs_info,
.get_mmap = sandbox_spi_get_mmap,
+ .set_wordlen = sandbox_spi_set_wordlen,
};
static const struct udevice_id sandbox_spi_ids[] = {
The driver currently ignores the word length configuration. Implement the set_wordlen operation to store and track the current word length. Signed-off-by: Dario Binacchi <dario.binacchi@amarulasolutions.com> --- (no changes since v1) drivers/spi/sandbox_spi.c | 13 +++++++++++++ 1 file changed, 13 insertions(+)