From patchwork Sat Feb 21 09:42:15 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dario Binacchi X-Patchwork-Id: 4473 Return-Path: X-Original-To: linux-amarula@patchwork.amarulasolutions.com Delivered-To: linux-amarula@patchwork.amarulasolutions.com Received: from mail-wm1-f69.google.com (mail-wm1-f69.google.com [209.85.128.69]) by ganimede.amarulasolutions.com (Postfix) with ESMTPS id EC0303F184 for ; Sat, 21 Feb 2026 10:43:01 +0100 (CET) Received: by mail-wm1-f69.google.com with SMTP id 5b1f17b1804b1-483a24db6ecsf25575275e9.1 for ; Sat, 21 Feb 2026 01:43:01 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1771666981; cv=pass; d=google.com; s=arc-20240605; b=gDHl+S9l2PcH/pFDQ4H8fxFioUJhDOEnKN8wOz77G7cBvqR+fSLNLztZL7mlBIWEI8 t88VZVLfQFtAIbkDdHmYtwDl+F8kvC80Lw9PnoYSsDfRjIiCU3LhB8OMDM0iAQpVwPOw c8KqpJLbWE0Zqs1live5UFT793NMUoXdAevZhkXGEx3HHaIFm99y3Fx9JyraseE9sNuW upw2pojx+HnMNJUb0AZP9f/B5PFwh40TQV6P/dgEBfVy4dFqg5fxnmhEDS0G20O2q+GB I4mopwj2Hwq42gIegyaIUtgTDOf+TyaxlrUcRywLQDVZ3OvryYIkypQgdDXFwYtEoxby 7DEA== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=list-unsubscribe:list-archive:list-help:list-post:list-id :mailing-list:precedence:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:dkim-signature; bh=pXnIc67cJ+5hHBYLAtcNI2CzvLYOz0UjRT/z3AzIEMg=; fh=xxbaV3o3CD161aWWVegO/MOKsUGW8bdi2zvqKXub1Mo=; b=fVFmCax9wPSqIDYgoYKgpSom7iFbibP18BVerRct7sH+aQ7h8c1f2lFiKw/QSdBavX FMA6parl7Ia06pPt27Jq7sR1hvmL3uw+mUdwnPTpWy7VHC2pliW/0TmDpY+/BOrmW7Uv 56Dik2p/gYif93JtGcnF8agaPrI+CDiINAMjfZlCdg3g6MkOefEnBrcAgPrdCbXvXfva VZ5Y7B8Z/zcxNwpLb/LIeu+ALx/aXL0tIxTa0S7VMYnHTzyzBCp32mtmYpldhHLa34m0 7Wx6R8tJ6fukUuY00hBlwuM7A0SaTyyzpIctFl1KuKBgnnnCGQCuZzK33s26egD2ArfF haeA==; darn=patchwork.amarulasolutions.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@amarulasolutions.com header.s=google header.b=eXvVmMCC; spf=pass (google.com: domain of dario.binacchi@amarulasolutions.com designates 209.85.220.41 as permitted sender) smtp.mailfrom=dario.binacchi@amarulasolutions.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=amarulasolutions.com; dara=neutral header.i=@amarulasolutions.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amarulasolutions.com; s=google; t=1771666981; x=1772271781; darn=patchwork.amarulasolutions.com; h=list-unsubscribe:list-archive:list-help:list-post:list-id :mailing-list:precedence:x-original-authentication-results :x-original-sender:mime-version:references:in-reply-to:message-id :date:subject:cc:to:from:from:to:cc:subject:date:message-id:reply-to; bh=pXnIc67cJ+5hHBYLAtcNI2CzvLYOz0UjRT/z3AzIEMg=; b=UibMiC2BO+RShE1/T3MWmxpDCT/+MnxLInVzscXtCd3AEqUGt+Krmsucf54HYIaP2F +HPBRMCHB2jNgmyKRfctqjJG+BA0qvZo97EYacRoyq44vQeVoWOFpSL9pd054p+LITRK vXU/e59wtjs9JRYLAPacTI3YnE2Rk6JvzXhzU= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1771666981; x=1772271781; h=list-unsubscribe:list-archive:list-help:list-post :x-spam-checked-in-group:list-id:mailing-list:precedence :x-original-authentication-results:x-original-sender:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from:x-gm-gg :x-beenthere:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=pXnIc67cJ+5hHBYLAtcNI2CzvLYOz0UjRT/z3AzIEMg=; b=Mp3taCodbANFP6cn/BJGJsa3+bNuJX6ycSm/okkIo5aXUdq6SMQFHeaRJo81mb/6oE KZaWiBHKrB1j348rMfECsClWHh4H18iAfj7wwLeX9ZPvIUfsXASwRkk9OAG4k95UH6Xp BO3ydX/4yJ20K4/2r/jgXTbWuR8mofZSS/lrG1w5b3WwXnCiErA2PuqHrRsbresr88M+ m3ZpcksvNs5J+fGXXuKb+odlNpQvKcWI/8r6U/f2mOzCqlPPv5htuDjgXDeZwMZtI+/V P9ylf+QAWTzPlMO3gGEBaTev9Y+ADjp44c6ZB5BlIklwf0W+thaOQJgmAh+U8Q0JEvYj U+TQ== X-Forwarded-Encrypted: i=2; AJvYcCU+kmVzbyJB087teMxyEsW45Zy/EvLsobhJz1DKwOSHrEhjuecI0BNcaQ4k18gfipBfWDIZCfZdPnl9Ha3+@patchwork.amarulasolutions.com X-Gm-Message-State: AOJu0YwNLZtrLiV9TBguPcuRQZ/muHbhdNxSAApT4CQpfHXlFTOgFPIv v3qZ5fd3TW7f2JGKmsYcAdkG5I4hAFaEBJApjuqD9btCp8XgyxO3/Whr/gX6iuzuEienZQ== X-Received: by 2002:a05:600c:a00b:b0:477:af8d:203a with SMTP id 5b1f17b1804b1-483a963778emr34610265e9.27.1771666981253; Sat, 21 Feb 2026 01:43:01 -0800 (PST) X-BeenThere: linux-amarula@amarulasolutions.com; h="AV1CL+HVUfCD6S/y56n+xYXdfaBV8b1sKDn/Sml0EHYSMWZcFA==" Received: by 2002:a05:600c:3592:b0:480:711f:49dc with SMTP id 5b1f17b1804b1-4837908b062ls90267775e9.2.-pod-prod-07-eu; Sat, 21 Feb 2026 01:42:59 -0800 (PST) X-Forwarded-Encrypted: i=2; AJvYcCXlSp0iQ1aDUixl5i6qAG/2s5Oh82kj59YsHhKzD1cOGxZ7kRN700FmjXrE6Q/pJtxR/+07bnzjxnUwusdL@amarulasolutions.com X-Received: by 2002:a05:600c:8708:b0:477:7c7d:d9b2 with SMTP id 5b1f17b1804b1-483a963d62amr31033665e9.32.1771666979265; Sat, 21 Feb 2026 01:42:59 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1771666979; cv=none; d=google.com; s=arc-20240605; b=Z+vDG90D8v0VBimIsf+9CCZwKc/BWBiP6+m6Ql00/2pqmpMuKyVrPwtUfOm5Wh4BpM 2VPVyAzzhB4EfhN7oOMAwmX2mpAsvv29F8Y0rGh/T4gLKYXAej7ZB29+tqKiZ9A45vXm KKQmGolsFtUDv1tahvozezgfETfH2CHlSBQBlLr6B4nrNa5b61SizuWrEcg0WjDWSCiJ Ye7tmbNpy8rv7G6zQpqVjknyRwLTPRSVvxPQIf8KSfWi6r1b0DovS0iCYBb37+5l4ZtJ vYHmN+RucVNVWjZrzjmpWCFZs6X6GDdpla2VqSjYidDmj6F/dG/ZJ09eQNnYhpcJFVcd 7xKQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:dkim-signature; bh=5SpwVBfDTYR9+u4Mo5qtV6hRcGkLnuLeVILyHGsncm8=; fh=IIG/K475ERmD+Gd54olYVkqw5FBEi5HDM0wCDy9Pw8U=; b=GpMyh68QKeYZkxrVpJD8O9RkH8RpahLEcFi9rv0u1ZKX3i7c6OpB2ZA53iObtD3VNX 8+LkdAOvB7pNUoWPwJ0XQA8OXFixIEI5EsI2gN8DOcc6AYdl6E6e9BORr+Z0RYyaBZzJ 5lXM3ZtXJ2euJaePNn8O0ZcM+q+yozThcQ69stHwDTXHX6v00pHXPEG1coNAD7G3wyRD B/mxJCGaOzAwwrV7LCYXA4ISVsYxU2U8oWhJmpRwyAerpy5/pqdxvW4nh3p1iAWFr+Ro 9JtANqXX6nD2KFbe7fzeUHPUdaGTmLIYdx8TyEJ6lfj7UCLCErUFwBGwI4g5ISELRsfR R3BA==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@amarulasolutions.com header.s=google header.b=eXvVmMCC; spf=pass (google.com: domain of dario.binacchi@amarulasolutions.com designates 209.85.220.41 as permitted sender) smtp.mailfrom=dario.binacchi@amarulasolutions.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=amarulasolutions.com; dara=neutral header.i=@amarulasolutions.com Received: from mail-sor-f41.google.com (mail-sor-f41.google.com. [209.85.220.41]) by mx.google.com with SMTPS id 5b1f17b1804b1-483a9cb0e70sor1379655e9.19.2026.02.21.01.42.59 for (Google Transport Security); Sat, 21 Feb 2026 01:42:59 -0800 (PST) Received-SPF: pass (google.com: domain of dario.binacchi@amarulasolutions.com designates 209.85.220.41 as permitted sender) client-ip=209.85.220.41; X-Forwarded-Encrypted: i=1; AJvYcCXHT7W23SoRz3Q4pdsAsrKoECtXJyo6fZBE3DYjJt/oukuKZ/08tohxlp5ALcAXwvSuneYJh35JzgFJ96Zd@amarulasolutions.com X-Gm-Gg: AZuq6aK0vxQJutuoJxEXp/yONYziQfz2A4DbgmI5QoRkbuckxbjEtOGYvCf+fQk4xw4 FnN+B2srOimo1sOF4KcAuH1ApKwikAnTceZ7El3p9yFeF9a1Zqj/R72pAJPrmm1UvGDmfBNVzZf q59r5Ab7DJaRvJyIk6l7kvqXoTwqA4tOucvPz8iCMuD47chcW9ZcyDneh4JQfd/rpujoDgAy04I tVkH3NWIPISSet8Zg7lxFvr3NWgn8OStHpxBviW9znNJ7vEb1Q6wteI9FS1iD78QniaZdLyG6dQ FxFfpv18qEG7lEhoVUTNqZUyn2lCfb5or0Og5WotVoTyGuBOHFAhNCHoowCu+Yy4sXvRjInmmC3 xJmzRyMhHp18RdXb33z3cD45kT5mrTXxpbAY+h+z4dpQSDiJpJ0K8UjU66NdgrEaDH+E62szoZS 0NHWfe927G7K5ld+q+qGQsmMHfxnx/Oi6K+qirVARmpbERlHyOU8lhAIZsWAszarfFEtd4rtSsw 0PK+Gqx7lksCkA0DQaDktZ7uonJfK3HJQmftEPxBouoOGnAIzVWa6Ugb1kr4xa/FcA664E7Fe0Y EsFP7QeA+nEo8cHJBbji9GeY X-Received: by 2002:a05:600c:64ce:b0:47f:b737:5ce0 with SMTP id 5b1f17b1804b1-483a96378f0mr35132405e9.23.1771666978815; Sat, 21 Feb 2026 01:42:58 -0800 (PST) Received: from dario-ThinkPad-P14s-Gen-5.homenet.telecomitalia.it (host-95-248-31-95.retail.telecomitalia.it. [95.248.31.95]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-483a42f3968sm42694225e9.19.2026.02.21.01.42.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 21 Feb 2026 01:42:58 -0800 (PST) From: Dario Binacchi To: u-boot@lists.denx.de Cc: Patrice Chotard , Patrick Delaunay , linux-amarula@amarulasolutions.com, Dario Binacchi , Andrew Goodbody , Christian Marangi , Jagan Teki , Tom Rini Subject: [PATCH v2 1/8] spi: add support for bits-per-word setting Date: Sat, 21 Feb 2026 10:42:15 +0100 Message-ID: <20260221094252.3103034-2-dario.binacchi@amarulasolutions.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260221094252.3103034-1-dario.binacchi@amarulasolutions.com> References: <20260221094252.3103034-1-dario.binacchi@amarulasolutions.com> MIME-Version: 1.0 X-Original-Sender: dario.binacchi@amarulasolutions.com X-Original-Authentication-Results: mx.google.com; dkim=pass header.i=@amarulasolutions.com header.s=google header.b=eXvVmMCC; spf=pass (google.com: domain of dario.binacchi@amarulasolutions.com designates 209.85.220.41 as permitted sender) smtp.mailfrom=dario.binacchi@amarulasolutions.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=amarulasolutions.com; dara=neutral header.i=@amarulasolutions.com Content-Type: text/plain; charset="UTF-8" Precedence: list Mailing-list: list linux-amarula@amarulasolutions.com; contact linux-amarula+owners@amarulasolutions.com List-ID: X-Spam-Checked-In-Group: linux-amarula@amarulasolutions.com X-Google-Group-Id: 476853432473 List-Post: , List-Help: , List-Archive: List-Unsubscribe: , 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 --- (no changes since v1) drivers/spi/spi-uclass.c | 19 +++++++++++++++++++ include/spi.h | 12 ++++++++++++ 2 files changed, 31 insertions(+) diff --git a/drivers/spi/spi-uclass.c b/drivers/spi/spi-uclass.c index 49b584c648d6..a4a3b6c25b7d 100644 --- a/drivers/spi/spi-uclass.c +++ b/drivers/spi/spi-uclass.c @@ -91,6 +91,20 @@ void dm_spi_release_bus(struct udevice *dev) ops->release_bus(dev); } +int dm_spi_set_wordlen(struct udevice *dev, unsigned int wordlen) +{ + struct udevice *bus = dev->parent; + struct dm_spi_ops *ops = spi_get_ops(bus); + + if (bus->uclass->uc_drv->id != UCLASS_SPI) + return -EOPNOTSUPP; + + if (!ops->set_wordlen) + return -ENOSYS; + + return ops->set_wordlen(dev, wordlen); +} + int dm_spi_xfer(struct udevice *dev, unsigned int bitlen, const void *dout, void *din, unsigned long flags) { @@ -144,6 +158,11 @@ int spi_set_speed(struct spi_slave *slave, uint hz) return ret; } +int spi_set_wordlen(struct spi_slave *slave, unsigned int wordlen) +{ + return dm_spi_set_wordlen(slave->dev, wordlen); +} + int spi_xfer(struct spi_slave *slave, unsigned int bitlen, const void *dout, void *din, unsigned long flags) { diff --git a/include/spi.h b/include/spi.h index 2783200d663e..a92f54a7404b 100644 --- a/include/spi.h +++ b/include/spi.h @@ -729,6 +729,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 *