{"id":2198270,"url":"http://patchwork.ozlabs.org/api/1.0/patches/2198270/?format=json","project":{"id":18,"url":"http://patchwork.ozlabs.org/api/1.0/projects/18/?format=json","name":"U-Boot","link_name":"uboot","list_id":"u-boot.lists.denx.de","list_email":"u-boot@lists.denx.de","web_url":null,"scm_url":null,"webscm_url":null},"msgid":"<20260219175130.2839234-2-dario.binacchi@amarulasolutions.com>","date":"2026-02-19T17:51:12","name":"[1/8] spi: add support for bits-per-word setting","commit_ref":null,"pull_url":null,"state":"changes-requested","archived":false,"hash":"8ec56c5e8a7f934ea115870cc2298b5a5860215c","submitter":{"id":83038,"url":"http://patchwork.ozlabs.org/api/1.0/people/83038/?format=json","name":"Dario Binacchi","email":"dario.binacchi@amarulasolutions.com"},"delegate":{"id":3651,"url":"http://patchwork.ozlabs.org/api/1.0/users/3651/?format=json","username":"trini","first_name":"Tom","last_name":"Rini","email":"trini@ti.com"},"mbox":"http://patchwork.ozlabs.org/project/uboot/patch/20260219175130.2839234-2-dario.binacchi@amarulasolutions.com/mbox/","series":[{"id":492708,"url":"http://patchwork.ozlabs.org/api/1.0/series/492708/?format=json","date":"2026-02-19T17:51:11","name":"video: support Rocktech RK050HR345-CT106A panel","version":1,"mbox":"http://patchwork.ozlabs.org/series/492708/mbox/"}],"check":"pending","checks":"http://patchwork.ozlabs.org/api/patches/2198270/checks/","tags":{},"headers":{"Return-Path":"<u-boot-bounces@lists.denx.de>","X-Original-To":"incoming@patchwork.ozlabs.org","Delivered-To":"patchwork-incoming@legolas.ozlabs.org","Authentication-Results":["legolas.ozlabs.org;\n\tdkim=pass (1024-bit key;\n unprotected) header.d=amarulasolutions.com header.i=@amarulasolutions.com\n header.a=rsa-sha256 header.s=google header.b=oGmYF7sz;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de\n (client-ip=2a01:238:438b:c500:173d:9f52:ddab:ee01; helo=phobos.denx.de;\n envelope-from=u-boot-bounces@lists.denx.de; receiver=patchwork.ozlabs.org)","phobos.denx.de;\n dmarc=pass (p=none dis=none) header.from=amarulasolutions.com","phobos.denx.de;\n spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de","phobos.denx.de;\n\tdkim=pass (1024-bit key;\n unprotected) header.d=amarulasolutions.com header.i=@amarulasolutions.com\n header.b=\"oGmYF7sz\";\n\tdkim-atps=neutral","phobos.denx.de; dmarc=pass (p=none dis=none)\n header.from=amarulasolutions.com","phobos.denx.de; spf=pass\n smtp.mailfrom=dario.binacchi@amarulasolutions.com"],"Received":["from phobos.denx.de (phobos.denx.de\n [IPv6:2a01:238:438b:c500:173d:9f52:ddab:ee01])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4fH1Cz6Rjgz1xpl\n\tfor <incoming@patchwork.ozlabs.org>; Fri, 20 Feb 2026 04:51:59 +1100 (AEDT)","from h2850616.stratoserver.net (localhost [IPv6:::1])\n\tby phobos.denx.de (Postfix) with ESMTP id 3D8DD83D0F;\n\tThu, 19 Feb 2026 18:51:53 +0100 (CET)","by phobos.denx.de (Postfix, from userid 109)\n id A34F383D3D; Thu, 19 Feb 2026 18:51:52 +0100 (CET)","from mail-wm1-x331.google.com (mail-wm1-x331.google.com\n [IPv6:2a00:1450:4864:20::331])\n (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits))\n (No client certificate requested)\n by phobos.denx.de (Postfix) with ESMTPS id B6E6883D0F\n for <u-boot@lists.denx.de>; Thu, 19 Feb 2026 18:51:50 +0100 (CET)","by mail-wm1-x331.google.com with SMTP id\n 5b1f17b1804b1-4837f27cf2dso10835055e9.2\n for <u-boot@lists.denx.de>; Thu, 19 Feb 2026 09:51:50 -0800 (PST)","from dario-ThinkPad-P14s-Gen-5.homenet.telecomitalia.it\n (host-95-248-31-95.retail.telecomitalia.it. [95.248.31.95])\n by smtp.gmail.com with ESMTPSA id\n 5b1f17b1804b1-483a31b0e63sm35485005e9.2.2026.02.19.09.51.45\n (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n Thu, 19 Feb 2026 09:51:49 -0800 (PST)"],"X-Spam-Checker-Version":"SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de","X-Spam-Level":"","X-Spam-Status":"No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED,\n DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_BLOCKED,\n SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.2","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=amarulasolutions.com; s=google; t=1771523510; x=1772128310;\n darn=lists.denx.de;\n h=content-transfer-encoding:mime-version:references:in-reply-to\n :message-id:date:subject:cc:to:from:from:to:cc:subject:date\n :message-id:reply-to;\n bh=h8DpYVjladhvWDx1P1+TyQplxDeEaGAqMxXk9vBFzcI=;\n b=oGmYF7szJFFmpVT6oNMH0hW0AJ9el4mrLFV3qOIf4YkufQEnKXYXHthl9o/AX9iD0f\n kPZK0rPWhV7z1FpmwCm6Yr555HQ5WFMkCrETnyhYFnQtqHtywhNHvAJnOaLjuaILxTVJ\n VppA6d9oHDnqjyTXNgDspXXoTIPgZUScECQbc=","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20230601; t=1771523510; x=1772128310;\n h=content-transfer-encoding:mime-version:references:in-reply-to\n :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from\n :to:cc:subject:date:message-id:reply-to;\n bh=h8DpYVjladhvWDx1P1+TyQplxDeEaGAqMxXk9vBFzcI=;\n b=usQ/s0PEvu9ZgicvyTu0u6SbrtH+VUONiDpQwFklH1fiXlY3K8M60xgeeavM5boNmq\n 0JpB5mLF4zhYi0NX/aKdI1pW80yWAP8eZW/YtneLr4ZErQtHMhEhMqirEjq6Woga6PLg\n anr52m6J+pRv65iASQHPh6aBOq+xDjBwecWrYFLHtO+GRlH7ePW8AT68UKXjdGUCEMwv\n DKMfnEchUoMCQG0JBBfqDkqNB2x8dVlzMoK5BZPIW8/hD+4610oW7GPuJC0W2MBdvXfo\n 2nQBR2+7ZF/rYE6/ayaUGsBfn6WJBlMdu20p/D94fXcOYcdE+5863lIq/3T4/i0guyu9\n jP2A==","X-Gm-Message-State":"AOJu0Yx9JAXAQHJXcUfNV6/x3/1CE2aDsVOIgXy2MXoT/cas4H6ibN5b\n tVMbxv7DM/vTebeDWh7vcZyrNCp0BRxgGRXaJwmf/O1w/BxPT3wWG7RpMGDyymkgNUSs887VNZk\n LjvOz","X-Gm-Gg":"AZuq6aJT92LIzm/2rkehTl5IaToSqi2BqsMB9UuwZcw7C3NKhpgWxV9rEaOoB6ZdIFL\n Lbm3RuNXjxRh2q/uSXmZ3dpmQZctTVJ+3GucbC+hVaOo3GZX9Zs8HWMlRuO1JPhinx69Aebw1ri\n 8aaSS2Z10UPgOHrvQI7i1mwPIREhnGG8uehczSNgMr6JiX1bVeTBaNI8B0ujA/pZsilo2DBdsoW\n Dp5rGECRZall97dr9ObKGiy3EOUrVeaUAn48pDvODuYBYo1w5GvbRuldKesjVoaYMZDilxFzdiw\n WngBMANLCk6xZI5z856/bFri7zmDKb29hy5WR6AF1kuvC1GG0GC+S+9hB7X0DLVLuZYOLabgkMz\n Tet6NISrd/v2Rwnk7t9nT5jkl90h5TUkD82i2tpTJ5DmG2ymD0girZISLsgchm/EFjXV5/UQRFJ\n vaK79TOVIBIO6HoHah352tqWbrDg4hUEU0ZMrd8RSNnN7Cohl04lnBP6cnhP1Mf6Pxtn2tySmkR\n bDpru1HzTbwK2GLRk+Q7hNeW/XuI0khI+lO+bOUFfyPllSyxqxi7eccJd3gDDfD29Eo1utXzJKk\n 5aGan1uU5lIeoqKfCzGennH/","X-Received":"by 2002:a05:600c:4687:b0:47a:935f:618e with SMTP id\n 5b1f17b1804b1-48371061414mr370502845e9.15.1771523509863;\n Thu, 19 Feb 2026 09:51:49 -0800 (PST)","From":"Dario Binacchi <dario.binacchi@amarulasolutions.com>","To":"u-boot@lists.denx.de","Cc":"Patrice Chotard <patrice.chotard@foss.st.com>,\n linux-amarula@amarulasolutions.com,\n Patrick Delaunay <patrick.delaunay@foss.st.com>,\n Dario Binacchi <dario.binacchi@amarulasolutions.com>,\n Andrew Goodbody <andrew.goodbody@linaro.org>,\n Christian Marangi <ansuelsmth@gmail.com>,\n Jagan Teki <jagan@amarulasolutions.com>, Tom Rini <trini@konsulko.com>","Subject":"[PATCH 1/8] spi: add support for bits-per-word setting","Date":"Thu, 19 Feb 2026 18:51:12 +0100","Message-ID":"<20260219175130.2839234-2-dario.binacchi@amarulasolutions.com>","X-Mailer":"git-send-email 2.43.0","In-Reply-To":"<20260219175130.2839234-1-dario.binacchi@amarulasolutions.com>","References":"<20260219175130.2839234-1-dario.binacchi@amarulasolutions.com>","MIME-Version":"1.0","Content-Transfer-Encoding":"8bit","X-BeenThere":"u-boot@lists.denx.de","X-Mailman-Version":"2.1.39","Precedence":"list","List-Id":"U-Boot discussion <u-boot.lists.denx.de>","List-Unsubscribe":"<https://lists.denx.de/options/u-boot>,\n <mailto:u-boot-request@lists.denx.de?subject=unsubscribe>","List-Archive":"<https://lists.denx.de/pipermail/u-boot/>","List-Post":"<mailto:u-boot@lists.denx.de>","List-Help":"<mailto:u-boot-request@lists.denx.de?subject=help>","List-Subscribe":"<https://lists.denx.de/listinfo/u-boot>,\n <mailto:u-boot-request@lists.denx.de?subject=subscribe>","Errors-To":"u-boot-bounces@lists.denx.de","Sender":"\"U-Boot\" <u-boot-bounces@lists.denx.de>","X-Virus-Scanned":"clamav-milter 0.103.8 at phobos.denx.de","X-Virus-Status":"Clean"},"content":"Allow dynamic configuration of the SPI word length. This is required\nfor controllers and slaves that need to operate with non-standard\nword lengths, such as 9-bit wide transfers.\n\nSigned-off-by: Dario Binacchi <dario.binacchi@amarulasolutions.com>\n---\n\n drivers/spi/spi-uclass.c | 19 +++++++++++++++++++\n include/spi.h            | 12 ++++++++++++\n 2 files changed, 31 insertions(+)","diff":"diff --git a/drivers/spi/spi-uclass.c b/drivers/spi/spi-uclass.c\nindex 49b584c648d6..a4a3b6c25b7d 100644\n--- a/drivers/spi/spi-uclass.c\n+++ b/drivers/spi/spi-uclass.c\n@@ -91,6 +91,20 @@ void dm_spi_release_bus(struct udevice *dev)\n \t\tops->release_bus(dev);\n }\n \n+int dm_spi_set_wordlen(struct udevice *dev, unsigned int wordlen)\n+{\n+\tstruct udevice *bus = dev->parent;\n+\tstruct dm_spi_ops *ops = spi_get_ops(bus);\n+\n+\tif (bus->uclass->uc_drv->id != UCLASS_SPI)\n+\t\treturn -EOPNOTSUPP;\n+\n+\tif (!ops->set_wordlen)\n+\t\treturn -ENOSYS;\n+\n+\treturn ops->set_wordlen(dev, wordlen);\n+}\n+\n int dm_spi_xfer(struct udevice *dev, unsigned int bitlen,\n \t\tconst void *dout, void *din, unsigned long flags)\n {\n@@ -144,6 +158,11 @@ int spi_set_speed(struct spi_slave *slave, uint hz)\n \treturn ret;\n }\n \n+int spi_set_wordlen(struct spi_slave *slave, unsigned int wordlen)\n+{\n+\treturn dm_spi_set_wordlen(slave->dev, wordlen);\n+}\n+\n int spi_xfer(struct spi_slave *slave, unsigned int bitlen,\n \t     const void *dout, void *din, unsigned long flags)\n {\ndiff --git a/include/spi.h b/include/spi.h\nindex 2783200d663e..a92f54a7404b 100644\n--- a/include/spi.h\n+++ b/include/spi.h\n@@ -729,6 +729,18 @@ int dm_spi_claim_bus(struct udevice *dev);\n  */\n void dm_spi_release_bus(struct udevice *dev);\n \n+/**\n+ * Set the word length for SPI transactions\n+ *\n+ * Set the word length (number of bits per word) for SPI transactions.\n+ *\n+ * @slave:\tThe SPI slave\n+ * @wordlen:\tThe number of bits in a word\n+ *\n+ * Returns: 0 on success, -1 on failure.\n+ */\n+int dm_spi_set_wordlen(struct udevice *dev, unsigned int wordlen);\n+\n /**\n  * SPI transfer\n  *\n","prefixes":["1/8"]}