From patchwork Wed Feb 25 16:16:52 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dario Binacchi X-Patchwork-Id: 4482 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 C6EDC40C8E for ; Wed, 25 Feb 2026 17:19:00 +0100 (CET) Received: by mail-wm1-f69.google.com with SMTP id 5b1f17b1804b1-4836cd6dfe6sf34899555e9.2 for ; Wed, 25 Feb 2026 08:19:00 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1772036340; cv=pass; d=google.com; s=arc-20240605; b=jShG6uczAtIblMKtihYzOT66+3sCNj9UwMJyyBKKIXI43csApdJ0H9kFSlEK9i2+2n ywi7mIqnD/OVN78Np2J6lBklJQEIzNsNjxqDMg04LC2W+oezHs6sxMCNLwvZ/XizQ6G1 yRlR3b5n5nxTSCKMXwQWeh4CZMrw6ZTgl4DIyKvflM7MyvXl5IbNroy4FGx32c8r5TfX kc5tcRlKaFKgDzPbultZ/I1gineMjjg2zesyOJD3iR7n+feEHml6f2K+5aKuaxo0lO4e HbbwunG4oJar1rwYMKz7JDS/f7WqRNFbv5YNJlWVAh5lxy+7fkmgNx1qakgesgXNU8UE mXxg== 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=Y39tDF2VMKqQI79Q1cwlDEfaD50P9bmqp16y92ei6WU=; fh=iHmByMaXN94KxbG/1B3RVC9KD+0Z7Rpj1fzINg6ovho=; b=ANgO372ZkjEPNFcWlPUzHulDZHPnWwaJHd6ol/OXyN16VOY9oLDz+vUumpiNgdH+yy q92rQgr8U/A+vcPRQQ3jrBap74wbh/bnfo8OWQ2sj4K8mettxRWFSKc+at4oEFLay+/6 kZTQbDOC3oRpp/qejIX38kZFSJ2SP1NXWRxpgv3vspUVUBQX6JRwEBZ+9dySWwzNHIok 4hApb6qMZb5ztRQk1TWxukN3ppqcfTzC/uySdsZjzF8EJe++mCTkGwoEfPTlKOtEGn8S SXmCZZNjf+Qf5InJZxo52v5VHATbA55rB7cNVf5QiemJfOaiOlfTw1lD28Srmz1oTmDz qXlQ==; darn=patchwork.amarulasolutions.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@amarulasolutions.com header.s=google header.b=Ee6kw6Mv; 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=1772036340; x=1772641140; 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=Y39tDF2VMKqQI79Q1cwlDEfaD50P9bmqp16y92ei6WU=; b=eIRdCbX9gT80HNrDoNbh7K07qXIRvzACq5jsmcv6Cs6WxKvom07WV2aCiybzY9G9l1 mi7oXJzNoozrVrkdS1fjK5+BGjByfAqPOn8AI5kJ9vjjfDTfJBIUFq8Ww6+3fQG/ihVs dBvo8xgd96+f7wp4UuDCdEBef184FlkZMAtsA= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1772036340; x=1772641140; 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=Y39tDF2VMKqQI79Q1cwlDEfaD50P9bmqp16y92ei6WU=; b=Kks3vsOfVYqSP4uUiGekiRfJL/X6ymKntwozETSm/puHXeX6l6jbH9A676fiKqygPM BR+Vmz1UhqlLcxjSzEIK2UazuWn7DDugNmGwl154HcHWWuVpzg9ak9ofoQ9O3jzD18s/ aADXsQUby+XvqlPLGbBjXU2uEjO7ADtrxW22oXRYga82gyr2sabMKcdP6SkANbmX/yak T6c+BCln2MZ1PpzG7UxoAVMI+NOuDT/EyNnlH5hhyo9uVPruJ2fg2rLXtt9gMOjkfu2h SgYZu/Czl1cMI2wzC07gMYaLZYKIJXixuY2HH8tIuh8cRTeMGNy231VmdnBnwxSY8imc niNw== X-Forwarded-Encrypted: i=2; AJvYcCW8cxzti1Ge7NqI0raTxix5F9nyrQI9yFy5lxVV0tXYklGDQnfULjbFWQq6ubPjNsLSR1t8Ki4QkaZZ19x1@patchwork.amarulasolutions.com X-Gm-Message-State: AOJu0YwIEa7O45cMaVqbNjaBB35ZJ4fVda6oGzbaKu2oNgai0FrOTSa8 iIrHF2L4OvcSgX+kJYOnfYlHPqlHQJpdV0sT6d4x2Dz4VB4uH06DmrXTT2e6AeTHbitpBw== X-Received: by 2002:a05:600c:4fd3:b0:483:7907:ea02 with SMTP id 5b1f17b1804b1-483c219ebc2mr17303555e9.16.1772036340234; Wed, 25 Feb 2026 08:19:00 -0800 (PST) X-BeenThere: linux-amarula@amarulasolutions.com; h="AV1CL+E9qir70g/k1ZdU3N+et85H4KNlSHmvGsLdHUMZ78yjmA==" Received: by 2002:a05:600c:3b84:b0:480:6d1a:97b4 with SMTP id 5b1f17b1804b1-483bf3524bfls6349605e9.0.-pod-prod-06-eu; Wed, 25 Feb 2026 08:18:58 -0800 (PST) X-Received: by 2002:a05:600c:450e:b0:477:55ce:f3c2 with SMTP id 5b1f17b1804b1-483c2176518mr18627715e9.14.1772036338113; Wed, 25 Feb 2026 08:18:58 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1772036338; cv=none; d=google.com; s=arc-20240605; b=JY5eOmN3GS6WkMin9ASCz0MWYMIGS4NyjsczBrto/cOixuZ50DiGNHZ5wtJB+bDIv/ CFngGIqkZr934nNgQYyPt2cKRKy7843eQFckMapkmA6Bq9YjI5kTLSu/isZIRy/jlr9Z 4kNjvQlyseNg+2HEnhxIvXw1bG3H0U9EJRx6zRKYhDuxv08gOwTDbM5Any0z/Z5GCYFa vPHqbXGT95Rap+1aiWkIVtQqdl1MLBX3L0kZqn7XbGmLIozkZljXH8wUlaJ+fiwam0o/ 5UUpaGuMkbSLfC7su1t7gZtkmRHgZS+EJpaG1Y/sKlRphYkeN5XYGc2U0lycHzpvNdxm cXSw== 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=d+RdgwCIFcBUgakrQ/69px0Mb4WK7f682IsrQihAe0k=; fh=SZgqhDWKukLiFu09O4MXZadCg3JZim6evx27FfgCVhE=; b=FRAannpd5g6FnfxcEtIBBEx5yfWHA9i1j/ZNkupqDs2OTNvBEPJYtVfBKgJ9uFJ1rM DpOnXSr+xPIM3n7aYBQbtnq5gRVVTjvwsM2CMkWMPsP63xKDGitwycSNgQ2FBWdV8cpN lSI4VCPTOkyZNtwhyywZE6AD0KxtmgZibF8fhn/Gn2CzJWKngMJFS1o0S0KWhHv9s+dN C9JCbQn8EbmqtEowjwG0/91YsiSVh8oVwRNymcTLQrdAkC2xlkiQUMRKTnaVugLoWuXB YSCZ5ciyXD6IPKqBRSTZpBphjpuCGBR0kBvuRvDLIxnn/fEIzPRAlXAxCxP3pdUbNrms iPSQ==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@amarulasolutions.com header.s=google header.b=Ee6kw6Mv; 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-483a9ca9b40sor14399825e9.20.2026.02.25.08.18.58 for (Google Transport Security); Wed, 25 Feb 2026 08:18:58 -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-Gm-Gg: ATEYQzz5kZk1vH6cvCOPaCnJBLiinIJy0/NwYiWsgWSQpF/TfT5SSBmXtADlGLbbxWK cRO7SrHzYT8FQ7tSCOahP4bZq68/dN1EaDucJdyQRqS77zTXiCSV9U7ePe52i72CqxLVqTL7Byg VI3nKlKTkhGub8U5mA6n6OAia6mEgIiT7MOxvmI64OilHTjuy1VqPX8ykNjflNaOwKcL6mqVCq1 mGTi8aAwD70ol9LcmpDP57sq35LtJeGqpaCwSV8NiqUzwcC6mTH75Sr3mDb2rCKLtRGirpRqIrH cJCu8RpSER5HzHHb4ufkhTaIZOj/z6HgExrHiaQ2DDH8JPZmQeryr2QAW94c/raDVloMlPKWjgT gU1SfquvX2EU29zNxTLbsj415JgjeEnidXUVjd0dAv4kDdHBMJ991OtxsH2YQETdzWDw2pixsW4 gKQxA4/HaBy3tK/GVbiUnIADuGulRdPxaI6PNrVvilm+5cj/35zvTMt3N/bsHbdMotWO6PmtFUZ 82ls1amALKD24OLTIntJjn9JxxBVT2gR0AsivJ+/gUFdwGq X-Received: by 2002:a05:600c:6815:b0:483:7783:537b with SMTP id 5b1f17b1804b1-483c21a54d7mr18617235e9.24.1772036337675; Wed, 25 Feb 2026 08:18:57 -0800 (PST) Received: from dario-ThinkPad-P14s-Gen-5.amarulasolutions.com ([2.196.43.111]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-483bd6f19f5sm186562265e9.1.2026.02.25.08.18.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 25 Feb 2026 08:18:57 -0800 (PST) From: Dario Binacchi To: u-boot@lists.denx.de Cc: linux-amarula@amarulasolutions.com, Patrick Delaunay , Patrice Chotard , Dario Binacchi , Simon Glass , Andrew Goodbody , Christian Marangi , Jagan Teki , Tom Rini Subject: [PATCH v3 1/9] spi: add support for bits-per-word setting Date: Wed, 25 Feb 2026 17:16:52 +0100 Message-ID: <20260225161851.2475274-2-dario.binacchi@amarulasolutions.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260225161851.2475274-1-dario.binacchi@amarulasolutions.com> References: <20260225161851.2475274-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=Ee6kw6Mv; 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 Reviewed-by: Simon Glass --- Changes in v3: - Add Reviewed-by tag of Simon Glass - Store the default value in struct dm_spi_slave_plat and copy it in struct spi_slave drivers/spi/spi-uclass.c | 22 +++++++++++++++++++++- include/spi.h | 14 ++++++++++++++ 2 files changed, 35 insertions(+), 1 deletion(-) diff --git a/drivers/spi/spi-uclass.c b/drivers/spi/spi-uclass.c index 49b584c648d6..f70c04994252 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) { @@ -215,7 +234,7 @@ static int spi_child_pre_probe(struct udevice *dev) slave->max_hz = plat->max_hz; slave->mode = plat->mode; - slave->wordlen = SPI_DEFAULT_WORDLEN; + slave->wordlen = plat->wordlen; return 0; } @@ -582,6 +601,7 @@ int spi_slave_of_to_plat(struct udevice *dev, struct dm_spi_slave_plat *plat) } plat->mode = mode; + plat->wordlen = SPI_DEFAULT_WORDLEN; return 0; } diff --git a/include/spi.h b/include/spi.h index 2783200d663e..5a98b1cad65e 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; }; /** @@ -729,6 +731,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 * From patchwork Wed Feb 25 16:16:53 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dario Binacchi X-Patchwork-Id: 4483 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 62B2440D16 for ; Wed, 25 Feb 2026 17:19:02 +0100 (CET) Received: by mail-wm1-f69.google.com with SMTP id 5b1f17b1804b1-483a24db6ecsf73761825e9.1 for ; Wed, 25 Feb 2026 08:19:02 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1772036342; cv=pass; d=google.com; s=arc-20240605; b=AI/zQ+6xNCxbSlUgiiKl9iDDEnpwRckN79RR2meDL4Y9HLVzVZ81dNbHruYa1VuQ4w tAYRMCqNSr8g9B/C1PzzKBisjGD1wdiZXuATkPIL5s57fR6Y90AyjtjnXpSfWjfN9mol QEc22T5S1AZeFFEHKHRhrg6/uDRXQqclyLDfVRPNQvINAD6sbX7JNrDAN/2LijBmhucr C3ZhGUKPelSB6Qgmdbsd8d77Fb2uNYzfS10Xcjpbpx5+lyFA56NkMZn99AoSwqhMeqgR cUT0QhEZ0JoUHCdPwH5HwE6RLceC/VNiJfLAaEG4czj1PCuk1eMvzeLEPfy/wmhM1Zm5 9uOA== 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=P6TMiXm6fV5rOf4dA7Uk0BIA+o5rIavhjC3IoIYv+g4=; fh=Lcz0ug76x1OjUkrJay6X9O1uNAwyCp6c2yboJ2xhHKI=; b=lpYzp0Jvht7MmYksbVm408T6ludBvvoZXiXMSNB7RORUE0tBNVBMbAC2VGedsYanOs 0Um9A6sekvF4BxxACpCRJurKq2cRch43ZUDlvney+y1qJGKoN+x5jkM9DnC+j5lDorA3 UKHyRD4BqDHODAAo+FnbYinpz3FdfEEBD7KdZnshGgleLYhNLZ/7mYiYJS9lFpMEwAg+ 9rI0bm+++CLqtwouCKAdMahKpPtpkidqyQbXV16vUKKfnVQtvDjODDKCLAkaz3STPK/D TMdjL/mmoZ2HRLD9fVLyRoQSKRPpgeRm6ZFCkw3bzoWKJV1xU52OwHaL6UtrbcFG50eG 5Ung==; darn=patchwork.amarulasolutions.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@amarulasolutions.com header.s=google header.b=Ll+VLXnf; 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=1772036342; x=1772641142; 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=P6TMiXm6fV5rOf4dA7Uk0BIA+o5rIavhjC3IoIYv+g4=; b=bMKw4rsoNgMDU5FPOgqu3RtpQhFrmVtrlr288OJB5xd4uppJMTNNnkdG6xIRI7I132 DZGAt0OxBzKB+HgEsUFA8l2mZo7qh2L/tyfZiu+9CJ9Vi3vykBzIEMpldvGbKQQBMelL evByRmb+mlwKMRT24oi2Qn3OXGOkauoex92MU= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1772036342; x=1772641142; 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=P6TMiXm6fV5rOf4dA7Uk0BIA+o5rIavhjC3IoIYv+g4=; b=o7oKZJEiMHhXql1hsd4fCIA1cfvZwWY5Gu4C9I1zDy8AbUIqpE77sjLCRtg+VKSNHs HK3TY8/I8YhKFMaBCY64pfdFWEM48baJO04DXNGzQSwIwiS8BAGI2Ru222h3pZixC+im nBBmr+4dUIfLughy+/jiwZcXJo7+yzjfmlrdtrUSa1OwvcHWRddHp4FEeZP2TcZgVMGb IoBKZsEhL5YV47R3MWcNOO/BlOh8uB4IdJdLoX7yhsCSAqo/StepGjlQVWGmyXC46KCs 3SxUBJRyjsg0+IrlNfY+MsVpNvEbuAolrG1AsgPiMhEw7DTKCaTrzuC6ARMhXON2dRAs Rt3Q== X-Forwarded-Encrypted: i=2; AJvYcCXH9tmzYAQ4zH96kH9Ftc2WGH/GICayRw7sz7lhYIsYwO2FkXyCIPR25x0TcYPEW+aUYkvq6GOjkOYcMRJx@patchwork.amarulasolutions.com X-Gm-Message-State: AOJu0YxSURAdrBDqnXuqwljunT4L1BJjiGR7vNVYUKFvLbVQj5t6MR40 70dZyTZ5E0KBYB3Sd0o8s5aqqrm26ZnG70toQIdiErI9Idpr/kx9Br53FlToZ5QgFrlroR3V0AB k5w== X-Received: by 2002:a05:600c:a016:b0:477:fcb:2256 with SMTP id 5b1f17b1804b1-483a962e470mr288244725e9.17.1772036341805; Wed, 25 Feb 2026 08:19:01 -0800 (PST) X-BeenThere: linux-amarula@amarulasolutions.com; h="AV1CL+F53rLx5YeRel/W3bCO9jPda0AW9l9JGjuFL7LLDEFwLg==" Received: by 2002:a05:600c:8b4c:b0:47e:e788:97d2 with SMTP id 5b1f17b1804b1-483bf0309f6ls6547295e9.0.-pod-prod-07-eu; Wed, 25 Feb 2026 08:19:00 -0800 (PST) X-Received: by 2002:a05:600c:4fc6:b0:480:4a90:1afe with SMTP id 5b1f17b1804b1-483a963de54mr280092615e9.34.1772036339735; Wed, 25 Feb 2026 08:18:59 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1772036339; cv=none; d=google.com; s=arc-20240605; b=Gjjm7bWAOwgOUvYz8anjfIw7CtWac+fBcu9DnCFpvyI9wpEtU9uJlVbKn0UNVr81BD K/BDbs423JIIgMtiVGj+Xem8Kt9SWY3VGRmXUCS9CHqABNR5SMgnzkv8JJT2Q63lfklz +lxSaa3TPbsnMP6OryA052AUGBuD/hNnxzUIOJDq0fzHDSVAcL2kQk+Tm379N9RKM5u2 rL0qU+rOf77CkNdPzN1gJUgL3KCTamBxfdeLZIW19JfyLEozzr1oG6sXhyJhm5eAMGUK nY/SpxXXO4z2yUp0mA1eQ1gnSXEYa4rUIY+yIQaB1yKUDSFReWWegLwbCivD4wxq6JPV pIVg== 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=r6tAXVQt7ZycmjS5oFVFmcoK4X7swFXBbYv+fE4pNxo=; fh=ui+ndE+o9v1fHFjpmz3+1s9DABExnosvyG4QUpNaudw=; b=JAuRDMxG+AjGEAHLR3iru+OlFVMfmNoBdX5YsJ5F7JnrlnmQt20WFYgdmgSbbkz53H PVAFOZGJjVgA01UhYxTxh00Jr8vBxRmml/PGZyNO1gaZUcL0ByvAcokCcpKRWKWj7dZC 8D93yNEZczHDsE3kpmMYq/kTySXlvgOmQ/Cw/WKpkMamQ+AQbwPuNJ5I0lnmSH9GZV94 wKqsjLPRSjTKwnvp01os2J+XczzueQu6GxJv23cBEoYflNH9i+N6MAukXXmnemNt1zRF WOeOLojqLn1yw9bdNshUPOqVoyDAIZjicH54zpXy/kXU7KK0ndBEynsSBH7uC2XKOEsY +GUQ==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@amarulasolutions.com header.s=google header.b=Ll+VLXnf; 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-483a9b26318sor14833285e9.0.2026.02.25.08.18.59 for (Google Transport Security); Wed, 25 Feb 2026 08:18: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-Gm-Gg: ATEYQzyPJN/rTv5CBltxUkC6dLprBUCRGgfBpV0I5+Z0oM9BXobWel03WrglRGJdWtJ LlsQYa7fg5F3FypRkNspvAqpTAHuakxUxL3VlfSQeaBi1DW+fmNkq+qY+mmVmGzaSizEuFjpxXv TieOFYuTc2GDQh51813htA/DYNoFDiRBGO65sIicjloEaRAJ094r12K8NeakpVL2XNeHO1ZmGCl 8T3levlNHUUSih0d+ZwkslZgfbh7JxGrNyoQSxonb75GzccESYyPLM724RjWodhllpIhVr5Krkd uFHfVkOtiZ2OHljBX6NTAP1t4YEQh99dEBwmWj2vww9au3ap9OqOIb6WqFahVHl+CPmNvJvQvlA EkJJW2WBjumabvDl1GlYls+D9cOVMn6etLwFH6ktw4b634VG0fllORjKVTxhARjw9s46Kimbq1d 2Tnz+OSCiBqnrD3ParKxNQGOxBWWePfAnGD9iGpBS7U5qOQI8M9yIcOQ3GcUQeXCHq+m+bqt0g9 sirHgHo9AK7XLbHe1urd9s3tNL6NtXplrRKR/D8yF+P871+ X-Received: by 2002:a05:600c:19c9:b0:477:79c7:8994 with SMTP id 5b1f17b1804b1-483a963d2d9mr247390685e9.30.1772036339263; Wed, 25 Feb 2026 08:18:59 -0800 (PST) Received: from dario-ThinkPad-P14s-Gen-5.amarulasolutions.com ([2.196.43.111]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-483bd6f19f5sm186562265e9.1.2026.02.25.08.18.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 25 Feb 2026 08:18:58 -0800 (PST) From: Dario Binacchi To: u-boot@lists.denx.de Cc: linux-amarula@amarulasolutions.com, Patrick Delaunay , Patrice Chotard , Dario Binacchi , Simon Glass , Jagan Teki , Simon Glass , Tom Rini Subject: [PATCH v3 2/9] spi: sandbox_spi: support wordlen setup Date: Wed, 25 Feb 2026 17:16:53 +0100 Message-ID: <20260225161851.2475274-3-dario.binacchi@amarulasolutions.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260225161851.2475274-1-dario.binacchi@amarulasolutions.com> References: <20260225161851.2475274-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=Ll+VLXnf; 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: , 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 Reviewed-by: Simon Glass --- Changes in v3: - Add Reviewed-by tag of Simon Glass - Store wordlen in struct spi_slave data instead of driver private data. drivers/spi/sandbox_spi.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/drivers/spi/sandbox_spi.c b/drivers/spi/sandbox_spi.c index 4cc016138b11..7c237ac8d371 100644 --- a/drivers/spi/sandbox_spi.c +++ b/drivers/spi/sandbox_spi.c @@ -61,6 +61,15 @@ uint sandbox_spi_get_mode(struct udevice *dev) return priv->mode; } +static int sandbox_spi_set_wordlen(struct udevice *dev, unsigned int wordlen) +{ + struct spi_slave *slave = dev_get_parent_priv(dev); + + slave->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 +167,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[] = { From patchwork Wed Feb 25 16:16:54 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dario Binacchi X-Patchwork-Id: 4484 Return-Path: X-Original-To: linux-amarula@patchwork.amarulasolutions.com Delivered-To: linux-amarula@patchwork.amarulasolutions.com Received: from mail-wm1-f70.google.com (mail-wm1-f70.google.com [209.85.128.70]) by ganimede.amarulasolutions.com (Postfix) with ESMTPS id 0C8213F1C6 for ; Wed, 25 Feb 2026 17:19:04 +0100 (CET) Received: by mail-wm1-f70.google.com with SMTP id 5b1f17b1804b1-4837c597cd5sf12433045e9.3 for ; Wed, 25 Feb 2026 08:19:04 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1772036343; cv=pass; d=google.com; s=arc-20240605; b=ZazMI3tnUae2S7+Dbp/S4mhT/gAsvHXTmFR4spqKnJUDDewhAc/kmX/q8fxahH6XQo 3FEe6xL8+VPp8OzmyzR5UoiXjNVAU1MYC+J+sbaiy/q6EoCMpxoSFP4/uH0qkrkLHsGj bs3gt/L0z0W49YblohCvLO4Cm+xyHjH1Lh5XnTLknLuKeK9Ls54QtDhGnPb8vsaDCNHM +4iKhYiNXTBVZ9986Ix82WH9p2QHihJanaBD3baCa/yLLzDHioZkw/8aJWQtkTMkX+4A CB7tfUy+7z7TMBkXvx3MbtBB12WCNSN4uZcGk2OLf/kUTiPUgh2NUFJidmT7Psiseyia y6bw== 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=Ji0PnndBMXAJvVYEiFNTv7fX9EdcwaPQi8Qfnzh7UoM=; fh=tpEpSitd/jM63mg8QnRUu39IM3PJWkSitDCHYb3d1B8=; b=B9WqVqMLT/NIY1qMr5cpM8kS4tdbwLFz/yme8+NEP4KH1L03VDnOI0dbXCTupR8V0R qJ1e6Td/Qt9PaVZBNPBnhgrBMwx2oYKz1iNIqLufCvzjB2NIjB1U2L6wZIio+nL6c7o7 scOQiShWMH9tdH2Qrik1MofTd7DuTuc0MNrPcOmQF/t8IhCVHIpuYM453LQQyCqRH68c jcWHmdZNDUa2gd8cETBk+S0q6vepeFJ/S7OkB+98iXrkOJ/M/bW9TlE4JvHwUgBNJhD6 eVm2rq8lcLXtrEQWECLjFyubbYWz4NiPdQFQCD1x1s/N7g+i7+nNdeI+R8i7SGZM7uc8 1Wfg==; darn=patchwork.amarulasolutions.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@amarulasolutions.com header.s=google header.b=E2SLrBq9; 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=1772036343; x=1772641143; 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=Ji0PnndBMXAJvVYEiFNTv7fX9EdcwaPQi8Qfnzh7UoM=; b=QbNDHGstl3/922pwtLfRNHaKTb4RelqRLSybM8YT2rydoskeFWlETsRPI/NyYorKFC Di/LelicFkhoOXgeejlcOh7Q9fwdwagW/a2jnWvFCYUCkiusKle1QPmlKSw09z/8i2h+ PJvJ8upot81VEfkSXrSJZWzWBtJLDa9JORo9I= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1772036343; x=1772641143; 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=Ji0PnndBMXAJvVYEiFNTv7fX9EdcwaPQi8Qfnzh7UoM=; b=KbEETG3Ek4ApyKcyDfrskvNki7sTo9ZEIUNeWTCoz5D3fxgkV1CbOsxv57pYED7V2L SdEXu2Ttr73eAig8Fe31BxgTfnfiEKe8UVj1eB8hY3UqZZoL+HAX3/AuY9MQAiKdGpmY VAngEvtISWikxBBq8c87DyOYy9kKg10AWwa3RMHR9Zfg6VhrFqpBf0vigeB+gXEbc4G4 4PMBgzEz+spSmOQ2EauyJZoSknCTxGwH6dMHUei+NxiE+7pMFeU0LeGCrywgPvbu7rVp o2akXn9ymbjq/EGyFGhHzy1jW+7vzmiWrCyvppWHuuT/tAh4vm05r/zto/lXbHPRL+cc WdWA== X-Forwarded-Encrypted: i=2; AJvYcCXyA0wRuPVGA5iLR8nguS6oewv+AqQg9y3Gi4sN3Q3D+ZyxUFZm6ngqdMaO650bupvGR+srT490ljCoHmds@patchwork.amarulasolutions.com X-Gm-Message-State: AOJu0YyGj45GIWwj7ro1zfb8Lwn2ZcHemJSruorbok4zm9Kh98oTKKlR P+SZek0G9Wy1GEsPwqO0uNjmi2mBikWpwoGjj5pSLepMG2SNPfnPbKEtK3BlRwv0bbUGA/1vjk2 NoQ== X-Received: by 2002:a05:600c:3484:b0:483:3380:ca11 with SMTP id 5b1f17b1804b1-483a95ee3fdmr247282185e9.33.1772036343384; Wed, 25 Feb 2026 08:19:03 -0800 (PST) X-BeenThere: linux-amarula@amarulasolutions.com; h="AV1CL+FosJGdodi+Tj8uOxjWvx1wRQ6fn3IFu3a5YoN2LPBGgA==" Received: by 2002:a05:600c:46ca:b0:477:a036:8e82 with SMTP id 5b1f17b1804b1-483bf036f3als6566275e9.0.-pod-prod-08-eu; Wed, 25 Feb 2026 08:19:01 -0800 (PST) X-Received: by 2002:a05:600c:3b96:b0:47e:e076:c7a5 with SMTP id 5b1f17b1804b1-483a95b7aedmr323316575e9.11.1772036341335; Wed, 25 Feb 2026 08:19:01 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1772036341; cv=none; d=google.com; s=arc-20240605; b=PKTyBWd2y3opy/RRnbmKVdtaG569Cz/D0eh9+709GojJfYIolAtRHQC6vGsQYLweOV lequLLbuepeFdTKdN8d5Q0XMzWTmo6EofqsWow59WJR6U4YZlObcepqhM904/ZawMl9P K86kjyDA89kw3vdHaT6jTLSt4LYIvg/lE1RMA6u+DlPCUc8ln4J5nibgqXgmIQ9sfQWN 0aXaQINOh8HJkJKqWek/wMWGFyyNj3ttuFVcPgGYoWNl0Q/trSXPka7NlQoKBvkG00be 2rAnMhf/zYemrbtccpzfiDW3p0KQ7j/eZY69u+f6lZm0tBX4HhcTz5xn9AyZFBlYjC1O BdPA== 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=gwYALHZDBEirWjUwGBe95A54XbbI8IIK1ONmtW4T1Qs=; fh=ui+ndE+o9v1fHFjpmz3+1s9DABExnosvyG4QUpNaudw=; b=Jp/+6LZsaZbzhlr69FvqUlWMBPu8O27yOc/YO6u/zu+raKVt/4KfINk3tuSW1ZJuIT GuXuo+yzhL+k/CndpwrlYIWl2kxab8LR9QvpKiyomNwLoVXJJnOy2CtII4/sFvO2hd0d Z33NjfYFOrAjLmzXw5D10HRWS+TE5kBQ5TeC5M/P/XDNCZmMUf2wEKmDu/gLS0jK6skg 6DfMtF8n3SMTONWa9SFmdAZ0QvVNQ2RtlO6GeXCxOq38wcw0lAlC+TIdZ9pT8RFwBBOe +Xec8eP6v2itJ21VrcCX2wmsXangtu4PPbRux4+Hk6uTlW+EpQWyGGB6rDIkbOjsufXI T4eQ==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@amarulasolutions.com header.s=google header.b=E2SLrBq9; 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-483a9b73006sor10317445e9.7.2026.02.25.08.19.01 for (Google Transport Security); Wed, 25 Feb 2026 08:19:01 -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-Gm-Gg: ATEYQzzj8ccq4Ovj5MhaI41GuagaDs89YDrdMLZeha53R6Sna+R26sqTkS9p41ylHbf nNsemKZ0R5Gcp9LNe8t0kTx9O8a2tD6iZld6Zu5PUmRHMdh8d5fn8K+Wow4X1LRkLA8TSN6zEkO hjEarCHwOI+G2Yuyf6fxBlgovYHt1ZPPm7SHEvCMrQDj21aglnwQpADdg/hKH2+cp5eaMphyqSl oikd+F/rw0ojkU984yi+pvpqg090Ss6rsvxr3L5Yz2/yygVUl6bBqF9rkxr8fnf98Anh2aJKgTd j9tXcWt7TbBDecFPOZiOUppB1dcvV3QYy6L+dA30pLOPy9K0fIz+Ka19laCDTSpxz3prWArCKtA dwXPuLdMwjs6FdstciBiyEXZtp1CbuBv449YKpnyYyhKiYIlu5nGgZWMAJPkQB5YbuYJ2VacV9e LOGktOoDFtBo+IpzbFhOrN8XsGU9Z1DEKo61QBTxRZyyVVRMtgPVYQ0Zxxext3broXZemJbeC99 bm0wU/KLogUl3Y/0cL4rJ21EcKgGh9f8f0wEv3cMycGT7R4 X-Received: by 2002:a05:600c:4f95:b0:483:8e43:6def with SMTP id 5b1f17b1804b1-483a95e5a97mr250975375e9.28.1772036340869; Wed, 25 Feb 2026 08:19:00 -0800 (PST) Received: from dario-ThinkPad-P14s-Gen-5.amarulasolutions.com ([2.196.43.111]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-483bd6f19f5sm186562265e9.1.2026.02.25.08.18.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 25 Feb 2026 08:19:00 -0800 (PST) From: Dario Binacchi To: u-boot@lists.denx.de Cc: linux-amarula@amarulasolutions.com, Patrick Delaunay , Patrice Chotard , Dario Binacchi , Simon Glass , Jagan Teki , Simon Glass , Tom Rini Subject: [PATCH v3 3/9] test: spi: add sandbox_spi_get_wordlen interface Date: Wed, 25 Feb 2026 17:16:54 +0100 Message-ID: <20260225161851.2475274-4-dario.binacchi@amarulasolutions.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260225161851.2475274-1-dario.binacchi@amarulasolutions.com> References: <20260225161851.2475274-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=E2SLrBq9; 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: , Add the sandbox_spi_get_wordlen() public interface to retrieve the internal word length state of the sandbox SPI device. This is intended for use in sandbox SPI test cases to verify that the word length is correctly propagated from the SPI uclass to the driver. Signed-off-by: Dario Binacchi Reviewed-by: Simon Glass --- Changes in v3: - Add Reviewed-by tag of Simon Glass - Get from struct spi_slave data. arch/sandbox/include/asm/test.h | 8 ++++++++ drivers/spi/sandbox_spi.c | 7 +++++++ 2 files changed, 15 insertions(+) diff --git a/arch/sandbox/include/asm/test.h b/arch/sandbox/include/asm/test.h index 0e8d19ce2325..0438790028b9 100644 --- a/arch/sandbox/include/asm/test.h +++ b/arch/sandbox/include/asm/test.h @@ -243,6 +243,14 @@ uint sandbox_spi_get_speed(struct udevice *dev); */ uint sandbox_spi_get_mode(struct udevice *dev); +/** + * sandbox_spi_get_wordlen() - Get current wordlen setting of a sandbox spi slave + * + * @dev: Device to check + * Return: current wordlen + */ +uint sandbox_spi_get_wordlen(struct udevice *dev); + /** * sandbox_get_pch_spi_protect() - Get the PCI SPI protection status * diff --git a/drivers/spi/sandbox_spi.c b/drivers/spi/sandbox_spi.c index 7c237ac8d371..3ee97d67f4a0 100644 --- a/drivers/spi/sandbox_spi.c +++ b/drivers/spi/sandbox_spi.c @@ -61,6 +61,13 @@ uint sandbox_spi_get_mode(struct udevice *dev) return priv->mode; } +uint sandbox_spi_get_wordlen(struct udevice *dev) +{ + struct spi_slave *slave = dev_get_parent_priv(dev); + + return slave->wordlen; +} + static int sandbox_spi_set_wordlen(struct udevice *dev, unsigned int wordlen) { struct spi_slave *slave = dev_get_parent_priv(dev); From patchwork Wed Feb 25 16:16:55 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dario Binacchi X-Patchwork-Id: 4485 Return-Path: X-Original-To: linux-amarula@patchwork.amarulasolutions.com Delivered-To: linux-amarula@patchwork.amarulasolutions.com Received: from mail-wm1-f71.google.com (mail-wm1-f71.google.com [209.85.128.71]) by ganimede.amarulasolutions.com (Postfix) with ESMTPS id 7F19B40C8E for ; Wed, 25 Feb 2026 17:19:05 +0100 (CET) Received: by mail-wm1-f71.google.com with SMTP id 5b1f17b1804b1-4836ff58111sf81836865e9.1 for ; Wed, 25 Feb 2026 08:19:05 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1772036345; cv=pass; d=google.com; s=arc-20240605; b=BzUA0h9WHwHiWY1voVrUVwzYtz/Wl5+NKTvk6CjV4upZU73W1SGorZO64KPiScmXTj 9l4Wvoj/zuUKibg7NSQeQPQmlEOvlX21lcVAl4A01iaeZTsIfU7gsmF5Cj9xW6E8w3xf A3ZMgPwopSxafAtQwXFLzFrhs/Q9nG5Xj2qTJAmnpuWL0xtI2+vHSWkZBgB48tqhE0kX 89JfwF625kShT8OCmp6WugBEwzbUBvjpjr+rT5U2BuF9HliMH1oSVLhDP3Gvr23cFNha Ls9xUcfljy2QNk+pCiVaC3iT1wqZ95dnjNaFbCyebU5Otv+SY8pKvjI+DnK0ztGd9s1w kJFg== 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=AeH1zaRibPmG77cqx/uEaRTF1Wl3bAEj3eDWciYr25I=; fh=Srun9AOMfLwqUvaQAii0VS0mhS4cpzffM8COYRflzQs=; b=jEuNw/pXkLLaYRjYcg3vxsnZS8Q6dB3KfZwSbUzhgBvNn9XAKAOfesXo9QoTenPPTD eWOikkUCLrsztl/3ChXclx4tYswfkmauuaHODYl9DkPfPvtuKC3mUiKMPo5iJ3flYs2p 5xCq91cQXZaniSymXOgni6et9nYeDxbjVJdKDkr1La3jTOgUY1x3HvVm4kgzCRclQyyx qsDSy9SLfOm0MEDzBD7RccmtkE6kBFOEry5kHVvejOfd+ItSE7ugOOEvFnbmjw797G/w jzYjA/18bjElH7vuNhN6Z8Js1LQIGH53zJtuOw3FUwDii6l+25UnmtnrFeBR+l3pZzuG p5cw==; darn=patchwork.amarulasolutions.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@amarulasolutions.com header.s=google header.b=FjKjzalw; 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=1772036345; x=1772641145; 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=AeH1zaRibPmG77cqx/uEaRTF1Wl3bAEj3eDWciYr25I=; b=mTvLF4tVkTRJYR6b7e1GQsALLOosg2d1UFevNaMH4thiqL+rsg3Y4/GSMBs9snWbxD 7nEengeWyVPCOmldKzvaE1yV5s3WKVzk4Uj6ScGqgAPVy65ze45R/NE+kslMTXR3DASq EXwq2XljqD7FxO6yAMsdGR0fKgj7DkRu2HUZU= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1772036345; x=1772641145; 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=AeH1zaRibPmG77cqx/uEaRTF1Wl3bAEj3eDWciYr25I=; b=dX+e37PyrBXEuD0OEUB9Aqi/iEd4qjjbW9ep0cz+vj0lGDv7Xt9HiUdYbfdgXXHW64 X2qFruCPetuK52uc2HBWYgbICevgQpPfJfb5BSZd+uxnSjiT5V/hgebFTvTDHsGFEzWz AVHRSgHQYn2lj2Aa2tzv4HbwGciVms1T8ktcf8cz61CDrzRTLC8Cbq+cLztaoV180Zxy b68XDf70g6ACTNiQ8XSeQQmfobWj7+bekuW6NQhL+1I/LQlxhBAzKRBJWH4BJwG6Iz9q mzZCrbay1N2OEQQL0oKOqbAJcAoJIwtHUcboYNCUBvUs39LLAY16AKi/5+LcV1Kn5r2o QENw== X-Forwarded-Encrypted: i=2; AJvYcCUH9PA1OQ77S5MVoSklx/RSm9OI0dMLTlNg27XXzdallcobBvP5fAYqnWOU2QNCKC2eBZXAgSCnabiCTKwj@patchwork.amarulasolutions.com X-Gm-Message-State: AOJu0YxLyG5RF5qIXC51nvvi4iKvcReKz+wTYb/wkUOgM4KR0Xj78RhF mp13lSc41qGm3udi5U//UyoiseXBaC+Az8mUBxDcorSDCRIAEo52Nmr+GiUqwnjbtK/zGw== X-Received: by 2002:a05:600c:45cc:b0:477:7a53:f493 with SMTP id 5b1f17b1804b1-483a95f554amr271795595e9.23.1772036345088; Wed, 25 Feb 2026 08:19:05 -0800 (PST) X-BeenThere: linux-amarula@amarulasolutions.com; h="AV1CL+EXdQIWxxslJo74Mz5KkygU+X75xHg2wf1waYgW3toaUg==" Received: by 2002:a05:600c:4f14:b0:480:6ce4:66eb with SMTP id 5b1f17b1804b1-483bf08fa25ls7538065e9.2.-pod-prod-09-eu; Wed, 25 Feb 2026 08:19:03 -0800 (PST) X-Received: by 2002:a05:600c:c8a:b0:480:4a90:1b06 with SMTP id 5b1f17b1804b1-483a9603d42mr253530365e9.34.1772036342951; Wed, 25 Feb 2026 08:19:02 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1772036342; cv=none; d=google.com; s=arc-20240605; b=i9ZqrXAapwUSxvXUjFuysMRAsBTHv3MoET+WKIdKoU/is6vpn3aOJaMZTqwsyOO1g8 xUEXesCN7Lg2GQ9MUM9IGEajWa16GOudaQCcxKoi3QsPG2DWAq7VDhK2M8UV5gsCUji9 nWg2f0xP/9YiiQxeWaLBwKxj11rBrQ6L2lPRyiy3Od+H6WMGppvi6uU8JOxnlOG5lMfp 3wJ4txZeN7OdSGJQD0ik3g9542WqA9eYaKzzdJhBG1S/N7yx6JRlQi1doFaeCvuPRCP1 lmACQx0Wm3zq49Y14aw0FmseumHGVuvv/kUONJ8/QefM1m8mcgfNftv8Do5Q/bqkNyYI FMnw== 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=c1HZgE5igLhgG1kbZ9E0XuxbdbhDf2N+jj2WjzZAc+g=; fh=ui+ndE+o9v1fHFjpmz3+1s9DABExnosvyG4QUpNaudw=; b=gS4vjoMQhMbCYdOhl5ist2aTapw9uMSnPIlVylUgLTpjKZAxlJq216OMJFfMr/LVGn 8lm3H3d5yhT90bMQq2e2/yCK+FPrHoOauYG9gjZJiXrGjFtNWiSr9+0jHF3fqHvVNC0W 3y96Tu4jfg8rCRT/zsPxpoyEplqEo55qLh144QZFYIDE7Nof8lD1cVXmOm2iqgK2XQny IxD5oHggJZRbe0F9RS4kKEYCuI3PrV3OVR5rB0UvFGXTUhU1vyqGhR3AwYFpmucZp5bH BmlTfwcy7cIpyO4tRUI00775OhlKZUSpKA0jf+lqpwuBaL+BQ3CVK4Y/zcGOT3LupLvH h7nw==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@amarulasolutions.com header.s=google header.b=FjKjzalw; 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-483a9b2467bsor19144555e9.0.2026.02.25.08.19.02 for (Google Transport Security); Wed, 25 Feb 2026 08:19:02 -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-Gm-Gg: ATEYQzwQHxeF5C7ZvDUp1KVWkUP/Uym41mWg97YocSkKI8vM/dKV5lzq4wgPrrgdK9I NTkGxR0UpfGgEZPidQX3zZArN0P2Ev/K/FMJIDIwSo+iuGaxmBMfY33+H4K4NCgasuElFytSDjA B9iymfPei8Pyc5yU7KqimaHbFteVHgob+AI/OCuiXW0wHl7uislNjFt+RWoyz1rYrPeN/bKMgXe JPA60jLeA3sqPn8GQz3GYld3ZMNtmOng9JdgJRbqaaxu5P8ehL6TqZjerfwe7KuEd72NfRU9MuB vmdkSx5M66g4XsuMtsVggFM5fZ/PMSPyPFeNLtUed1SlGBnVOJWlc2f7ox9yQ4dcZcHayJulnQZ Ywyj3c+5mMeyxojGoWc2ahyybU4twVZ5zEOPdQpaY0P8ILPMOBdZLMGFsq84viApjnc0Q+fWYKs z5kwzEGkwiJv8wTyGVbd+RaK+8u/Q5LWXq85FA9nusNINRETA2BGe69h7+a2Dh2K7oy3mFgvp1E iHsfi/wsVYWCXnzEukgfticlqp/JgavOoCifK49RgOzn5PW X-Received: by 2002:a05:600c:45cc:b0:477:7a53:f493 with SMTP id 5b1f17b1804b1-483a95f554amr271793225e9.23.1772036342463; Wed, 25 Feb 2026 08:19:02 -0800 (PST) Received: from dario-ThinkPad-P14s-Gen-5.amarulasolutions.com ([2.196.43.111]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-483bd6f19f5sm186562265e9.1.2026.02.25.08.19.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 25 Feb 2026 08:19:01 -0800 (PST) From: Dario Binacchi To: u-boot@lists.denx.de Cc: linux-amarula@amarulasolutions.com, Patrick Delaunay , Patrice Chotard , Dario Binacchi , Simon Glass , Jagan Teki , Simon Glass , Tom Rini Subject: [PATCH v3 4/9] test: dm: spi: add testcase for spi_set_wordlen() Date: Wed, 25 Feb 2026 17:16:55 +0100 Message-ID: <20260225161851.2475274-5-dario.binacchi@amarulasolutions.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260225161851.2475274-1-dario.binacchi@amarulasolutions.com> References: <20260225161851.2475274-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=FjKjzalw; 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: , Add a unit test to verify that the SPI word length configuration is correctly handled by the SPI uclass and successfully passed down to the sandbox driver. Signed-off-by: Dario Binacchi Reviewed-by: Simon Glass --- Changes in v3: - Add Reviewed-by tag of Simon Glass test/dm/spi.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/test/dm/spi.c b/test/dm/spi.c index 249a9238fedc..a89ba06274fc 100644 --- a/test/dm/spi.c +++ b/test/dm/spi.c @@ -170,6 +170,22 @@ static int dm_test_spi_claim_bus(struct unit_test_state *uts) } DM_TEST(dm_test_spi_claim_bus, UTF_SCAN_PDATA | UTF_SCAN_FDT); +static int dm_test_spi_set_wordlen(struct unit_test_state *uts) +{ + struct spi_slave *slave; + struct udevice *bus; + const int busnum = 0, cs = 0; + + ut_assertok(spi_get_bus_and_cs(busnum, cs, &bus, &slave)); + ut_assertok(spi_set_wordlen(slave, 8)); + ut_asserteq(8, sandbox_spi_get_wordlen(slave->dev)); + ut_assertok(spi_set_wordlen(slave, 9)); + ut_asserteq(9, sandbox_spi_get_wordlen(slave->dev)); + + return 0; +} +DM_TEST(dm_test_spi_set_wordlen, UTF_SCAN_PDATA | UTF_SCAN_FDT); + /* Test that sandbox SPI works correctly */ static int dm_test_spi_xfer(struct unit_test_state *uts) { From patchwork Wed Feb 25 16:16:56 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dario Binacchi X-Patchwork-Id: 4486 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 07A8B3F1C6 for ; Wed, 25 Feb 2026 17:19:07 +0100 (CET) Received: by mail-wm1-f69.google.com with SMTP id 5b1f17b1804b1-4837b6f6b93sf51173735e9.3 for ; Wed, 25 Feb 2026 08:19:07 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1772036346; cv=pass; d=google.com; s=arc-20240605; b=JqOsT6Nh7xzJ5wRh2nsnnEeY5Z145pXMLexrq/hQOohUgCKaO/HOYSYB32kJOE7HSC /KDrmlVHbAmwRPXBWWGspRP/o8FKO0YdA0KfmN+tbfuCy6Mmn4lRDtJvKge5opsDRrRU MkKcnIgeYstgyjF3zytBGPLd5Gz22IhwB+BtFA6q/D2/p3dKEJfd6T5gmIVwLGPa+hLO l5nmfcfOdBiPwL1Ekp3wC8MwPbTYG10q6+3bbUcXvyk6ADNpQxaSWC2IWzyIQ+IfM9lv EHQnxbof7XWSMJ7ejexvgJazB/lhazB3Kdh/0suWd57n9as9XTrzVOfXX8oRfeE6uQsr zCuA== 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=cvfMldTgvqnbG+cs/TaCc3i7cQjKZwJXhuaABD99dX4=; fh=DP/lijtJ/Ey3l/5+y9aqhI00gguOoU2CGYMxTU2Ybec=; b=TLhfj82b8sp/naPPn/Pztn68bzGv6wIWFe/8JOkVp4yrDSgjUuF9AwqZa3LrO2Q94u zNk/C3Pe459vwakqQ01OeiGy4AMfr5S5C/lRtCrtja7G3A3Pvi3x1WSfhHrWc30V7yy+ F+ZHEYlaXueBVfpsfXCJrn+kWMyiJjmTa5EeuB5gB9Ol/S2Bj/MQm5WYn56wS7Lu1dg8 UujR0u135uXZ5H85+HJVhDs87j//7NfTqbzQaaOLEW0vWhYrHoiK88rHCpiAjqRfgv8L l1si379KywJEf0jtehWDJZ1JOs6OvvTRseJXffxtNhueEnSSbxJ5WY5HbMb+OvOP8/hQ Oq6w==; darn=patchwork.amarulasolutions.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@amarulasolutions.com header.s=google header.b=rsh3GjHE; spf=pass (google.com: domain of dario.binacchi@amarulasolutions.com designates 209.85.220.65 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=1772036346; x=1772641146; 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=cvfMldTgvqnbG+cs/TaCc3i7cQjKZwJXhuaABD99dX4=; b=obTnFs+ahDD7s1qYZ1jbO3tWR1z9ul82RdYuAQx+UWRbyzhbyilvl2dRsGA5av2UVj wPODKm2M+wjeoQFfALA6kcwaBablKZsrRT1Tm65wRNZL58U2cddI3UhNNMvKtv3uoelH xdFAY/kenUOIY13svR114GBUsB5UAKj6MZdpw= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1772036346; x=1772641146; 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=cvfMldTgvqnbG+cs/TaCc3i7cQjKZwJXhuaABD99dX4=; b=XcO1Wt6w4a3kYuREHRINd7hasHQvS54hChNTFxg1iA7p3DfYtNjngGQ2Pwz7oUsOfx r5AQAIDbd4s9RjkUml4/jxFzGuRh5CVqawv0J2b0Q46dEF5GPz7Esu6aJRA6clpSxNUX XUYz+TBRJ9GXd3P1TxT+5YcPFzRXnYSTmYrmiEYaZRYrCFUi23bjwg5rFdzwZtkZcq1B uA+3Te3jMsPqQlUouA95xJPGvkOEsu004Ix4ERuxGJa3Q9frNfvRA0QXrxZ7AZ/hgK9z yzqR3ue0QEHalbEVjXrtGoz+lTsxP4lHtIu65cWd6XxBuGX8lyx3YjBqdVs/JP+NBrpT cKwQ== X-Forwarded-Encrypted: i=2; AJvYcCXoRKDaF1hy+UvUx9E8JTUl+x+4hkiDHPawQPFKWhMbMhHzreqqDGKka2KqLWcEhjqV49W+9jo4RartpijS@patchwork.amarulasolutions.com X-Gm-Message-State: AOJu0YxrXXeJi9/MRSlzhe78iyppQ1flWlTVrn2JtBhYxC1vzYb4prcT ejSHzlHoVvW2wcwdwG90nD+F3NbHJ1HGAVQ94ekAzGBaQ6PxCTbssOtECi8yuxZvh433Zw== X-Received: by 2002:a05:600c:a085:b0:47a:81b7:9a20 with SMTP id 5b1f17b1804b1-483c216f3dcmr16937785e9.9.1772036346605; Wed, 25 Feb 2026 08:19:06 -0800 (PST) X-BeenThere: linux-amarula@amarulasolutions.com; h="AV1CL+Fm01FLkFpVkURAaxefOtPAuLM7l0UGeH6RgxRlcBBVMQ==" Received: by 2002:a05:600c:1c10:b0:480:6cf4:d382 with SMTP id 5b1f17b1804b1-483bf320911ls9108605e9.2.-pod-prod-04-eu; Wed, 25 Feb 2026 08:19:04 -0800 (PST) X-Received: by 2002:a05:600c:6748:b0:480:426e:9d38 with SMTP id 5b1f17b1804b1-483c21a0287mr14738105e9.27.1772036344563; Wed, 25 Feb 2026 08:19:04 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1772036344; cv=none; d=google.com; s=arc-20240605; b=dfSJNRKEbT1Vxu6RsPCBpzmjqjDeUVn0UDFUZIfFLCwxPWXibj8gm12U5gkHZDN8i8 xyrm0gbBSSDCBf61piAIvBErRJ/DXoQguNZlsRrlvUai/2dSpjfr5JmeO16w+12asD4+ FTw1g2XuqPyY3xvZ13BAysnT8TBf2s0L9f06u4NEcD3rUchaRNtzz9ohJMtsqK2oTHrw bkK870zRuURGJFBhMJO0ouOSD5/pTLBZOSatKdZi9Ufile49bJFgGI5YeQJuoG8+cPau eac6ZQqMdQYdl2K+XCo/NpHVK1eRQl4pEd1OpRGgvuZdF6THcu6KK4uoDjRJhIbBce2u Kj4A== 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=Pcxa8RuAuQ0nAmPNS8KBumLjBig8XfBZxlRBMDFBXrY=; fh=QZoutJPT+pXy1qUk539h9r/tpUMLR61JfMC4cgv8pmc=; b=cSXXA5BSdHwSgAfsmxV5k1VG5eF+oOGFRnM8TmPcUl7v1l7QpIp45aRJkMxcIbelTU iS5TDWkbXaZ1PMHoJz21mo6uGR03qM00kak2SuFCeH79imzNT/eZBfWNoyk93rvfomHu YVG5FiubRFbJlMskaBNvBya3pzrG3GSE0qHVD4gpBmusIfTJJWdfhx9g1zldii66mTdZ jBYXruFQQGf+dgu7mH+8YDxZsD7kt7y9xtNlpZAVLqjatrcuP12YzX+kBqAwk8wB2/Lr wMnhWkRU/QcfQbYdXXgduaSEn7HMrLp8q6xOJz/CdOFIB1ztv4qSVUFup30/bXCzgTft tA9w==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@amarulasolutions.com header.s=google header.b=rsh3GjHE; spf=pass (google.com: domain of dario.binacchi@amarulasolutions.com designates 209.85.220.65 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-f65.google.com (mail-sor-f65.google.com. [209.85.220.65]) by mx.google.com with SMTPS id 5b1f17b1804b1-483a9cd45basor10657865e9.15.2026.02.25.08.19.04 for (Google Transport Security); Wed, 25 Feb 2026 08:19:04 -0800 (PST) Received-SPF: pass (google.com: domain of dario.binacchi@amarulasolutions.com designates 209.85.220.65 as permitted sender) client-ip=209.85.220.65; X-Gm-Gg: ATEYQzwk7Unfhjqp4DNCZp+eYpMnkHWxapT8Ob0momsASPX5zMMUsYmzQHd/OrMPVNQ 6khlqarWyEEWTI3Pa0ay6kEwJe5VWHwJbqKhKNQK7Vc18/1kKJ+p9P7zaO3QWQSs+Z3I3fXwriw QF2611EIta4f1/5u7if1tPhgOftBUVXLvUUaOM/01mh55U86wuT3itUmbWKwZPA6KABrNTcqXcu +1EvlBvgXPQ9CXtWFOFaATw+QrpIsHCjjNaG2KJu4eVBmri333k8pOaZUEJIAPQY8w7jPPHgBFs 3DdwZX4OrTGcJSnVc7P7d1lQ4R2C/Jsi+ZeK7C+xxfim7T76FU9fcwHt7+pHWUy+/Q7wr5wOJCQ Y/w0paawKHkcQWP8wmoiKKBISuSgE8orUwrk7n04j46MyASZKhCuRxOUYhML2BZmraHTCsZt92l 3SKJog2dFbwezgS5j0oY5BU6tKVloSzNRdOKxmDg15b9chFXZG0AqPpg/toCsO+sgaz3xnmwSO1 34ui7ZhsTNiwKjdRaIf8L9tQpnvQTtakUMbgICB+wR8PgOt X-Received: by 2002:a05:600c:c172:b0:47e:e779:36d with SMTP id 5b1f17b1804b1-483c219fcd7mr14401395e9.23.1772036343971; Wed, 25 Feb 2026 08:19:03 -0800 (PST) Received: from dario-ThinkPad-P14s-Gen-5.amarulasolutions.com ([2.196.43.111]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-483bd6f19f5sm186562265e9.1.2026.02.25.08.19.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 25 Feb 2026 08:19:03 -0800 (PST) From: Dario Binacchi To: u-boot@lists.denx.de Cc: linux-amarula@amarulasolutions.com, Patrick Delaunay , Patrice Chotard , Dario Binacchi , Jagan Teki , Tom Rini , uboot-stm32@st-md-mailman.stormreply.com Subject: [PATCH v3 5/9] spi: stm32: clean up buffer length assignment Date: Wed, 25 Feb 2026 17:16:56 +0100 Message-ID: <20260225161851.2475274-6-dario.binacchi@amarulasolutions.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260225161851.2475274-1-dario.binacchi@amarulasolutions.com> References: <20260225161851.2475274-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=rsh3GjHE; spf=pass (google.com: domain of dario.binacchi@amarulasolutions.com designates 209.85.220.65 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: , Remove redundant divisions by using the already available xferlen variable for setting the rx/tx buffer lengths. Signed-off-by: Dario Binacchi Reviewed-by: Patrice Chotard --- Changes in v3: - Add Reviewed-by tag of Patrice Chotard drivers/spi/stm32_spi.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/spi/stm32_spi.c b/drivers/spi/stm32_spi.c index a1f31cf653c7..adba97915cd3 100644 --- a/drivers/spi/stm32_spi.c +++ b/drivers/spi/stm32_spi.c @@ -404,8 +404,8 @@ static int stm32_spi_xfer(struct udevice *slave, unsigned int bitlen, priv->tx_buf = dout; priv->rx_buf = din; - priv->tx_len = priv->tx_buf ? bitlen / 8 : 0; - priv->rx_len = priv->rx_buf ? bitlen / 8 : 0; + priv->tx_len = priv->tx_buf ? xferlen : 0; + priv->rx_len = priv->rx_buf ? xferlen : 0; mode = SPI_FULL_DUPLEX; if (!priv->tx_buf) From patchwork Wed Feb 25 16:16:57 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dario Binacchi X-Patchwork-Id: 4487 Return-Path: X-Original-To: linux-amarula@patchwork.amarulasolutions.com Delivered-To: linux-amarula@patchwork.amarulasolutions.com Received: from mail-wr1-f69.google.com (mail-wr1-f69.google.com [209.85.221.69]) by ganimede.amarulasolutions.com (Postfix) with ESMTPS id 947BA3F1C6 for ; Wed, 25 Feb 2026 17:19:08 +0100 (CET) Received: by mail-wr1-f69.google.com with SMTP id ffacd0b85a97d-43630b02fb4sf6356388f8f.3 for ; Wed, 25 Feb 2026 08:19:08 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1772036348; cv=pass; d=google.com; s=arc-20240605; b=KGcXf/O4yUOz7oEubNNreW+0KwA1yH4cMnorlhpeD21n1RqXrVpDYSz8evZvVTgZyM es9ukLX190LBWf3vw03dP2aXJjZflUCC9D8MYa3rkiqC0d+NYYbL3KQukppkFlUO7cMT H9cE8fcEwJfd1acOOGnE4X05DNtD8o6B/rj2ImLcjyciG1ELlDeFEW4FegzBHanW7GCx jsBQKNyuinHuMjGUSapwBXDWOfB3anhbaVQB7i/kTxfVUbU0xUKv1p/mPwYgMQrINCYg v7jvuxmBFAY/+XPPN7aXj/Ff5sEzPaUSK1UVcxdnptaQSm9fqhK+cYRqQQeqj2XM7b30 gKKw== 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=HGK3DBBNI/uEFORiadlAQE6ktZg/Jj+mIoldTVBM8aY=; fh=JzdbNVKkhYvBhLhMZNH/SYxye+iId6HEBH8A//G9/gQ=; b=d90yyCbFTdJb9sZx0NnH3kR5+mFKdihg6bfxjkRkOU4jqqEURtHpCaYategfaWFsZO AZEElMRpEZlUqv9koPNBwNGON8E1wxC20FQOS5lxUocPabLKnxCGOq+k5+1tYyQ+jlVj cDSoUHvXjm1ONl1wgQhtK5GE79ibUxup2bK6mx9oovKn5X+/jriJMV71eSZoE5welSx1 gFSZtx1iaCEHUyDvbfRvMc08Gg2/WGYd28Dudpxjw3RyohoECQUg+cfImYul+bXDRbXk GUSSwwJj1gnVLpxCmpW8x0zxQKEjbHho7QcivTlMIYV9alaeaDeOtY0CziIU0iUEw3sA n6EA==; darn=patchwork.amarulasolutions.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@amarulasolutions.com header.s=google header.b=CgDZxRhW; 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=1772036348; x=1772641148; 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=HGK3DBBNI/uEFORiadlAQE6ktZg/Jj+mIoldTVBM8aY=; b=jyTgvp64MGfflWKqLhu0Fc1h1GIQUbFKVQe2FwF9TqfnlRv+QBBhHoPB0e89mC6QLF 5dbr1HyQsRqzgmXowYkP/yEBgJ0NuMVHOxu2FMFo6ick2K9w35xGvfvtwvNkDHd1NDTf BFWEAjiU2bG3KoegLLJFWAyRVvwzMewdG4O64= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1772036348; x=1772641148; 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=HGK3DBBNI/uEFORiadlAQE6ktZg/Jj+mIoldTVBM8aY=; b=qrEIMFZUhkCFGH9EAizwFiXNk2i6kUB7ct7OexPtT7Cv1NJbI3mXZPslAQ2kmhjb0o tJVA35GI7EYbuNhXoUndxwwlGGV1kw8EKWsnNaOhSEfqHU6f76Gp11UR/nZRHzub5k3K TJ4rlYUdoBiLOQIx6HckqJ0KD0NV78SYo8N2CY8C134RDsqwBjO5F3yJSkRHmFfa7Gnj EiPTbR6WuFEv/+eXcOPFWlV393ixmcjBpYOGSLNXpOxjmKu/8ZQJELcCp01+Dpb0KlyG 1vxPu5eGQQEDvtrL54MSCqVxBA5v89dJpSLinovba7fitvPAKHxQSF+5yBoFriuvCptN 7E0w== X-Forwarded-Encrypted: i=2; AJvYcCXCrmxvbnz4A5xEUoK4nCjn8kbBkBccnGfZsz8+OyCpTvZSk5hhTq/IQ/anNR81k1H6ULvhBv/I8gDMEzM9@patchwork.amarulasolutions.com X-Gm-Message-State: AOJu0Yz8xjuc93GgT/Mm8NgFlgGH0T8Q7DO/mtbyKEpi1KYqE6OBrB3t QGqt9ClrlROseJ3h3dWRTjU3E9vbSMTG63cg0wpH6wAQV4IH2R+66TdkWcxIxCY7KhZL9w== X-Received: by 2002:a5d:588a:0:b0:435:9144:1417 with SMTP id ffacd0b85a97d-4396f183942mr28211180f8f.49.1772036348095; Wed, 25 Feb 2026 08:19:08 -0800 (PST) X-BeenThere: linux-amarula@amarulasolutions.com; h="AV1CL+GNbKAsNMSTkcSni3RcI7QsPwn1KnkdzBM/PpUqjm26bg==" Received: by 2002:a05:6000:240d:b0:439:8f85:db00 with SMTP id ffacd0b85a97d-439901856d1ls454199f8f.0.-pod-prod-02-eu; Wed, 25 Feb 2026 08:19:06 -0800 (PST) X-Received: by 2002:a05:6000:601:b0:432:5d73:79a1 with SMTP id ffacd0b85a97d-4396f188996mr32405869f8f.55.1772036346021; Wed, 25 Feb 2026 08:19:06 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1772036346; cv=none; d=google.com; s=arc-20240605; b=QqePO6dxO+hnYnavR1QMdVlZu8XD07F7GuCfIsWmr2rrAan6Q0gi9HWpA09s/v5Jm9 jlkYoZ45tiboPbqnYvJUYnP63K0BlGWo8OFiO8hBeKhfHWzzT+Xbu2ldHr48Wq2DdMY8 7tEYkWDfDBTk36R/y1zthJyGYiPKY7VvQ6fwjZ1uXtrtFWqFedDdKrMgM6yAwUATZMIF ZxZohPQFaXBvGfHVF0Oj5QbcEEzdX97amELc2ja6KJD80Drv9JUT8ho2ogaF7I9YOlbI i9t2xgMPPKFi8CgZDfAOQEucYmEdE0e1JmdKFAZVsiqAj/jHoPVimXkgEaqPnaBWzBSt 5gUA== 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=GkJhvi1974w4+hMGdr7GktoYxy4wpW/zeqmFApZg+vA=; fh=QZoutJPT+pXy1qUk539h9r/tpUMLR61JfMC4cgv8pmc=; b=WNco0ZbCcwXApAQzA8ehFpAuUyHigWfVOguyvo221Zg7317GhhEybAXWQq5va6h+52 1VYcZCTzVfJSspZp4QcxdDi60ogxHolbJAEAAIBeFnR3ft8H7Y6zGK3IGhVkfNCXH9+6 CuxSuGVQsZX1QWj99ORN7D8iTrhzNYjb/z/76MpkKskwGIo/+woK5rU7JSzWzr7aHmud 1vGloZh5xWIZK7G9oMEnfgxUWZ8HHmu2QHk3NbLHADjisCA8i4kFWkHMqoAadgxRvriJ nE8vmiAGejadvbsbJHNtzDEpm2PUJVCFyFGKR13nucLdWIYq73KJHOH1uvZA/iKMtnm0 Ag4w==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@amarulasolutions.com header.s=google header.b=CgDZxRhW; 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 ffacd0b85a97d-43970d531d2sor2252874f8f.11.2026.02.25.08.19.05 for (Google Transport Security); Wed, 25 Feb 2026 08:19:06 -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-Gm-Gg: ATEYQzzp/4/smMviHSczMfTSmGMf3zSwPEfODhrNTITdcFkvl7etltiz1HLocV9+aUp np6uGrPT42sTqiq2+xf1dlSsiL81MvNcgJ3PRiO/vwMffjfK+avE1mi9KaZ77axqRrF0AQsP3+k E+ZDVu8YMMTBgF2qGuGDoxXiGR3aJpww1SRNCK5Rsv89MNNibX7WdLonLaCRtAQLLmipit5Q0n5 E/0lJzedrjGKKQ9W0X39Jc042Qock4En5S8pAoVi4jkrNGbcinjbuVMx/vIIQQzExmgdLxC/d/3 0275uIAvq00xsPdhRxAfttZnKl+sIPCVirwuQxsbXL/95PQfghCgrcVF0UEg0Daqd4v6ZhIedb7 vxysyief/Cwg/rSkbB6PshbQZ0zbjJS0Rabgn2CFYvX8Yf8QZkdoTJ93iyiSR0L7o0YgClm+FvG BlLJiMVrZQNMVUYLqtg8h6pU5gdFKZ39j8qb7q/h9tpRpCVsla8sIwhix51Li8dmtQqGqGKUgPo m3K7JsvdzC1QcCW8DrK74Xs2JLStY+ZCPY7c+pjJC9bQUbx X-Received: by 2002:a05:600c:4f4b:b0:477:a54a:acba with SMTP id 5b1f17b1804b1-483a95e1f34mr292230325e9.17.1772036345446; Wed, 25 Feb 2026 08:19:05 -0800 (PST) Received: from dario-ThinkPad-P14s-Gen-5.amarulasolutions.com ([2.196.43.111]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-483bd6f19f5sm186562265e9.1.2026.02.25.08.19.04 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 25 Feb 2026 08:19:05 -0800 (PST) From: Dario Binacchi To: u-boot@lists.denx.de Cc: linux-amarula@amarulasolutions.com, Patrick Delaunay , Patrice Chotard , Dario Binacchi , Jagan Teki , Tom Rini , uboot-stm32@st-md-mailman.stormreply.com Subject: [PATCH v3 6/9] spi: stm32: add stm32_spi_is_enabled() helper Date: Wed, 25 Feb 2026 17:16:57 +0100 Message-ID: <20260225161851.2475274-7-dario.binacchi@amarulasolutions.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260225161851.2475274-1-dario.binacchi@amarulasolutions.com> References: <20260225161851.2475274-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=CgDZxRhW; 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: , Add a helper to check the SPE (SPI Enable) bit and replace the open-coded bitwise check in stm32_spi_stopxfer() with this helper to improve readability and consistency. This is also a preparatory step for future driver updates that require checking the SPI enable state across different code paths. Signed-off-by: Dario Binacchi --- (Added in v3) drivers/spi/stm32_spi.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/drivers/spi/stm32_spi.c b/drivers/spi/stm32_spi.c index adba97915cd3..70eb8735e03d 100644 --- a/drivers/spi/stm32_spi.c +++ b/drivers/spi/stm32_spi.c @@ -192,6 +192,11 @@ static void stm32_spi_read_rxfifo(struct udevice *bus) log_debug("%d bytes left\n", priv->rx_len); } +static bool stm32_spi_is_enabled(void __iomem *base) +{ + return !!(readl(base + STM32_SPI_CR1) & SPI_CR1_SPE); +} + static int stm32_spi_enable(void __iomem *base) { log_debug("\n"); @@ -245,9 +250,7 @@ static void stm32_spi_stopxfer(struct udevice *dev) dev_dbg(dev, "\n"); - cr1 = readl(base + STM32_SPI_CR1); - - if (!(cr1 & SPI_CR1_SPE)) + if (!stm32_spi_is_enabled(base)) return; /* Wait on EOT or suspend the flow */ From patchwork Wed Feb 25 16:16:58 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dario Binacchi X-Patchwork-Id: 4488 Return-Path: X-Original-To: linux-amarula@patchwork.amarulasolutions.com Delivered-To: linux-amarula@patchwork.amarulasolutions.com Received: from mail-wm1-f70.google.com (mail-wm1-f70.google.com [209.85.128.70]) by ganimede.amarulasolutions.com (Postfix) with ESMTPS id 135023F1C6 for ; Wed, 25 Feb 2026 17:19:10 +0100 (CET) Received: by mail-wm1-f70.google.com with SMTP id 5b1f17b1804b1-4837a71903asf23744525e9.1 for ; Wed, 25 Feb 2026 08:19:10 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1772036349; cv=pass; d=google.com; s=arc-20240605; b=DNNGYIfoIXA5A7VYbRu22dpmXTmaK7TDecIVcWBNINcapvzh44IyRZSlNEpS6Ew1AU Z8ysRRBaVW4ghFRDQEZMn1zTtSGukKTNht7BuR7IS1l7sOx0hpoOaLnmeV6tqeVxSE98 rfaT4A2hmalObP/stQ7T8ThrX1idvhtrY+RALHlOkYl9HdaPw8eTZmQsoLIzhnRZsEKE lc0hhZ9NKgsiMLf+oIm3QAfBp/Z7QQJW0Dk2vSFUsbJ/PegK9mMU40+Is38NDIGnpOnd 724qFsnG3ck3+ALJDP6ppFaO0NOQ+MV8xn1pRDWnW0YhKpsoyHdsmS9+LyMuinHC9y4p i6UA== 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=40zCRPo/FAXv0lfJgdF+Racf1n6BgNpYPZajh3KuJe0=; fh=gfhYIlkEPIVAmZylMh6xMthGbaOj/XTg/w4KdFXT3A4=; b=KvzX+3kdolpPS98uHZwCrezZsun2VIZ7Kar7p57s5IJCI2TigFOju/jytJGbQFO/Rm b+8Rmozl4UG4O1lmkSXWFGw10VHdm0YdmIRBE0/9N8pgxwJY24EnC+ikk5iemup5nOcG C8ACUhxTzIlnqEDlSJnpqrxX7jmr4b/AiMwZrvZxusyrN1+iZAzNfdW4HyFl6E+iCjmh /6JZu8HnXIZ0Srvq+V62/PO7M+sN5UNmRFMF3Ub0PuXQeMCCl2OdDEmR7AXW1js+ybMB KBBO4PkXp8C575FZ3ZpBCJgaWKcWkrNyYx5S9vqnslbb98sHYqPL0od9dmoPe2xHzcc0 fKkA==; darn=patchwork.amarulasolutions.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@amarulasolutions.com header.s=google header.b="n3RiM/r/"; 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=1772036349; x=1772641149; 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=40zCRPo/FAXv0lfJgdF+Racf1n6BgNpYPZajh3KuJe0=; b=jSeliaXsK+3nrBqyYNpmvv52EjThP573SkImHrWJEhLJtcbz2nb8/lPyuY1H2m6ZXx 11xmQof2Kk8RRxJXbjphFWqnyRFf2lD6JwMqoh+B2smlVmsxyszdKk9TO53KamZrAuQF 7DWsQ0je+g2wchDf2xH+slkALhfbBCJbv2VXE= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1772036349; x=1772641149; 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=40zCRPo/FAXv0lfJgdF+Racf1n6BgNpYPZajh3KuJe0=; b=XMwywO0EXqnBXFLoMZJYGXM4qbE8Z5R5nnz41pYUlvpAWLH8jSEejjxxJETPjQDWZW J3SoN8QVk0UlSDYnrw5jHNYeS+QSW30+++D1hShqqN9QXu6/0+toqZnus5m4Uu/41d2p GzGx472Wux6b75QzCgH+hdEAzynDuvNh0pdZQlApRRIF7CwP3JqcEbZgLnTpohnEpF/0 cHqBc153/PBz8NXZJkLdZVDLsZVqupsHUQQzIcfmIwNpMlQBHMgPuMx+5NtKlD8puq/i mj2bps/25Vxer9SuQqxho62EFgInh//ENzwyEdvJyG85vKEwN8vVxVCDjkoIX381hxMv RIiw== X-Forwarded-Encrypted: i=2; AJvYcCWeHA0b5dALEJtT5zgaAGmE7XXf4EOoNZCZY4ei4Fff52m2yX8b9ybBUfy8Wvhb2l4XQ8gLeGUJeBo/MpC5@patchwork.amarulasolutions.com X-Gm-Message-State: AOJu0Yw3IpvmQ2nOVqe+UPsaAVKNDVjLr0aKJ3iaCXYLwUT+8cJxprVE UyQ5ufNMYQQRvEXGbeNpXaJLKbuGTQJlV9tKEh7b5v0qlYtrN6PkL7OceRLZqzb4hGUwrA== X-Received: by 2002:a05:600c:8b54:b0:482:dbd7:a1c1 with SMTP id 5b1f17b1804b1-483c21b6ab9mr17570535e9.34.1772036349626; Wed, 25 Feb 2026 08:19:09 -0800 (PST) X-BeenThere: linux-amarula@amarulasolutions.com; h="AV1CL+G11g6v6ll2FRkV6TI2W0LeL8mw9OwWe20D2ktkY/LypQ==" Received: by 2002:a05:600c:3105:b0:480:6ce4:66ee with SMTP id 5b1f17b1804b1-483bf3db703ls6093085e9.2.-pod-prod-06-eu; Wed, 25 Feb 2026 08:19:07 -0800 (PST) X-Received: by 2002:a05:600c:198f:b0:477:9b35:3e49 with SMTP id 5b1f17b1804b1-483c216be05mr15872255e9.3.1772036347297; Wed, 25 Feb 2026 08:19:07 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1772036347; cv=none; d=google.com; s=arc-20240605; b=INJzdO8hwnzax/2H+pTobFUOUuc/k/OYGMkj6Wc9/La5Q4jF0gtTj3WCsG4aAw29zH N7oH8KfCEFrLRLP1lIS9ZU6hr0pw4GihMscwBdDl7q8W4ulx7r/4aUntcjI3Vf0+eRaG Rak1hGo5xlilnP6aWG5vwvA1hRfrUHTK0AcAVclB/iS6eHrZhguDMFRFn78H1ZqR2nAV +hsjaDRfdguce1sudW9Zumd73dKSSYQ0M+CuNzLlpFGrYFxMw+XFrYA6gL74ughnmlpT oOAcQUsNgs8mqgNn4Qi0C7qD6FIlDhT8vtwXzDtGCnvR8aKGqEe7XU9z54Ak/luw4u7r wh4A== 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=FaPhWKiMQvyXcHp7drHPqMWTp28rxSNAljsxQHzSH14=; fh=QZoutJPT+pXy1qUk539h9r/tpUMLR61JfMC4cgv8pmc=; b=Ti7SRegSZmMZMTgvtuhyZ+38QgygMzwz33cULS0GdeB8meZYxQDIpKRMuY+OCl55yJ fAJjo2a4fkCzxjan9nfjCFOWEfMnE0axzCCl32+JC3X8SyLSz4LEPuh2xkBvWtMVxWa/ HzEj+IaiGfR8c2A8GRyHOlAWzVkWs5vGNsRoexVF2R+QsNGPdCGj9Q9cQS7LC3QxRDx0 A64GiuSMphZNrmbJiikyqoqPtwUS3Y7pC1AA2nYMpx8NDhTTch5/+rt3JQdHB1KnwYZr FJB91hd+fO+yy+gZvxZkPiXlcpIo23AYgb7xnIcFXJ2S9HnOFf20hXv408CQoKWkQVrQ 6Xkw==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@amarulasolutions.com header.s=google header.b="n3RiM/r/"; 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-483a9b1fd12sor17052215e9.0.2026.02.25.08.19.07 for (Google Transport Security); Wed, 25 Feb 2026 08:19:07 -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-Gm-Gg: ATEYQzxoRTBgcHrF6A7nS38bmxF7eDN6miSToxKyLSOrPqXT0+vnG2vv4kSQ9kcpD95 k17kD+xTHEJBJ4Brl3+7BQ/ccEp/Qt4M+gL0SUALM+D0g7u7Zn9J5wcEj3LhbYQTijiWmcN4N6s mgA8QktiIQw+fmlPbj4CdIZ0YOXXPgmfgVxbWDpBvLUADbx+vKUsLxkrRlc++4JeIWmWiHHIvI1 uHKjjSQiU0d8H0Icj5dvIVhciHiTq/PVEwYbdKYnt+8aUno9gZJFV6SDsgmy17ER/37406Z8diW omGIOR9fgJ+akAAhyfjeTC1mvaJ8XHB8rgPNAepfzH8M6NZgSxzjIoqAxkIyexVy3iBry0gLJun qPtH6GvQ0QkiBO+MkoI59oFcibKgD4gD+1hEjuyAZYQQ3wm3QDpX5ULSlwXiaq1DpdCXjuI8b7u zReQVZpYbRVdGn9iI7NmarEzAP59IeXVNGTrOXyvbHudlwrxiSmFF8rC0zmE7ia3LBF2dpkW5Z7 xnUEW26WU+xPCiokbVi9dWuXuYUFPWKdpNkWWuhrAKAtNfl X-Received: by 2002:a05:600c:3151:b0:45d:f81d:eae7 with SMTP id 5b1f17b1804b1-483c21aab65mr13522945e9.28.1772036346832; Wed, 25 Feb 2026 08:19:06 -0800 (PST) Received: from dario-ThinkPad-P14s-Gen-5.amarulasolutions.com ([2.196.43.111]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-483bd6f19f5sm186562265e9.1.2026.02.25.08.19.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 25 Feb 2026 08:19:06 -0800 (PST) From: Dario Binacchi To: u-boot@lists.denx.de Cc: linux-amarula@amarulasolutions.com, Patrick Delaunay , Patrice Chotard , Dario Binacchi , Jagan Teki , Tom Rini , uboot-stm32@st-md-mailman.stormreply.com Subject: [PATCH v3 7/9] spi: stm32: add support for bits-per-word setting Date: Wed, 25 Feb 2026 17:16:58 +0100 Message-ID: <20260225161851.2475274-8-dario.binacchi@amarulasolutions.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260225161851.2475274-1-dario.binacchi@amarulasolutions.com> References: <20260225161851.2475274-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="n3RiM/r/"; 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: , Implement the set_wordlen operation to allow dynamic bus width configuration. This is required for peripherals with non-standard requirements, such as display panels that need 9-bit word transfers during the initialization and setup phase. Signed-off-by: Dario Binacchi --- Changes in v3: - Move the stm32_spi_is_enabled() implementation in the previous patch drivers/spi/stm32_spi.c | 57 +++++++++++++++++++++++++++++++++++++---- 1 file changed, 52 insertions(+), 5 deletions(-) diff --git a/drivers/spi/stm32_spi.c b/drivers/spi/stm32_spi.c index 70eb8735e03d..9d095b280a70 100644 --- a/drivers/spi/stm32_spi.c +++ b/drivers/spi/stm32_spi.c @@ -384,6 +384,44 @@ static int stm32_spi_set_speed(struct udevice *bus, uint hz) return 0; } +static int _stm32_spi_set_wordlen(struct udevice *bus, unsigned int wordlen) +{ + struct stm32_spi_priv *priv = dev_get_priv(bus); + struct stm32_spi_plat *plat = dev_get_plat(bus); + void __iomem *base = plat->base; + bool spi_enabled; + + if ((wordlen - 1) < SPI_CFG1_DSIZE_MIN || + (wordlen - 1) > SPI_CFG1_DSIZE) { + dev_err(bus, "Cannot set wordlen to %u [%d - %d]\n", + wordlen, SPI_CFG1_DSIZE_MIN + 1, + SPI_CFG1_DSIZE + 1); + return -EINVAL; + } + + spi_enabled = stm32_spi_is_enabled(plat->base); + if (spi_enabled) + stm32_spi_disable(plat->base); + + dev_dbg(bus, "bits_per_word=%d\n", wordlen); + + priv->cur_bpw = wordlen; + clrsetbits_le32(base + STM32_SPI_CFG1, SPI_CFG1_DSIZE, + priv->cur_bpw - 1); + + if (spi_enabled) + stm32_spi_enable(plat->base); + + return 0; +} + +static int stm32_spi_set_wordlen(struct udevice *slave, unsigned int wordlen) +{ + struct udevice *bus = dev_get_parent(slave); + + return _stm32_spi_set_wordlen(bus, wordlen); +} + static int stm32_spi_xfer(struct udevice *slave, unsigned int bitlen, const void *dout, void *din, unsigned long flags) { @@ -397,11 +435,19 @@ static int stm32_spi_xfer(struct udevice *slave, unsigned int bitlen, u32 xferlen; u32 mode; int xfer_status = 0; + int nb_words; xferlen = bitlen / 8; - if (xferlen <= SPI_CR2_TSIZE) - writel(xferlen, base + STM32_SPI_CR2); + if (priv->cur_bpw <= 8) + nb_words = xferlen; + else if (priv->cur_bpw <= 16) + nb_words = DIV_ROUND_UP(xferlen * 8, 16); + else + nb_words = DIV_ROUND_UP(xferlen * 8, 32); + + if (nb_words <= SPI_CR2_TSIZE) + writel(nb_words, base + STM32_SPI_CR2); else return -EMSGSIZE; @@ -409,6 +455,8 @@ static int stm32_spi_xfer(struct udevice *slave, unsigned int bitlen, priv->rx_buf = din; priv->tx_len = priv->tx_buf ? xferlen : 0; priv->rx_len = priv->rx_buf ? xferlen : 0; + dev_dbg(bus, "bitlen: %d, xferlen: %d, nb_words: %d\n", + bitlen, xferlen, nb_words); mode = SPI_FULL_DUPLEX; if (!priv->tx_buf) @@ -570,9 +618,7 @@ static int stm32_spi_probe(struct udevice *dev) priv->fifo_size = stm32_spi_get_fifo_size(dev); priv->cur_mode = SPI_FULL_DUPLEX; priv->cur_xferlen = 0; - priv->cur_bpw = SPI_DEFAULT_WORDLEN; - clrsetbits_le32(base + STM32_SPI_CFG1, SPI_CFG1_DSIZE, - priv->cur_bpw - 1); + _stm32_spi_set_wordlen(dev, SPI_DEFAULT_WORDLEN); for (i = 0; i < ARRAY_SIZE(plat->cs_gpios); i++) { if (!dm_gpio_is_valid(&plat->cs_gpios[i])) @@ -633,6 +679,7 @@ static const struct dm_spi_ops stm32_spi_ops = { .release_bus = stm32_spi_release_bus, .set_mode = stm32_spi_set_mode, .set_speed = stm32_spi_set_speed, + .set_wordlen = stm32_spi_set_wordlen, .xfer = stm32_spi_xfer, }; From patchwork Wed Feb 25 16:16:59 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dario Binacchi X-Patchwork-Id: 4489 Return-Path: X-Original-To: linux-amarula@patchwork.amarulasolutions.com Delivered-To: linux-amarula@patchwork.amarulasolutions.com Received: from mail-wm1-f71.google.com (mail-wm1-f71.google.com [209.85.128.71]) by ganimede.amarulasolutions.com (Postfix) with ESMTPS id 6C1FA3F1C6 for ; Wed, 25 Feb 2026 17:19:11 +0100 (CET) Received: by mail-wm1-f71.google.com with SMTP id 5b1f17b1804b1-4836cf00787sf13538105e9.1 for ; Wed, 25 Feb 2026 08:19:11 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1772036351; cv=pass; d=google.com; s=arc-20240605; b=kp6ZW/DQ5OwcL7mKzSimOj4FkyhUHs3veGwXthPJncO3lJUywhfu/b8GSF5oNA6UTL lbnNANVdrmdYiyqdvJq3ZmmJ0jeheNeBT8OHzdybnSrHfqSyl2/CDt1CSqJ8aNYRYI8T 17s9XcypRY0lp85DxA7E46PL4Dsf1x8sIR5++vfcKzukFjUoQzYOs9/UoAH8cNAwEf57 fKlXZ4mIYH7IQ7sj9CLVuGgab5++3KXCFAXQ0Z04aXabyMIMf1m/x8HGzwEmNm9RglFB E5LUc8tKSsAWrE/Lan26Q9esgW18NDq0LwG8eJni3Mono+KxgUrbbjvpW8U5UrGk2fkD iv2A== 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=wVluuDHpanJQqBlR3l83OXc7Us2nRhkf90jAJa/rHLI=; fh=Paf82ikbcfhLvmF3IfMFX5hhNJmV9KF29qGirWRCeE4=; b=GIZjCscd01/yNm5MNY8NtjhddkjKKspGtERfw0t63BfupVTWIbr5lhhHJg/gZHXaDG 1ov2JkTvGZlrqJHCTtuFv19RsKNwk1mGEnRAzqs+gxeijli1FEIRTajCDn8kBrnna3KC VQGZf1ZbI2mPLkU/PbWJnslMJaqRcP0jobpJt6DlipE9MFndLUj9mKGGbb/6qIPOMFYx hLKt1y0SagLAH4/hmhYwUO96HIKEkIuaYkgKv8ZnOjpKr3Znf4xVk73tfz3Ig3sQwmId ix0s/4++vUUveDTXJkfO8+cAJjVHvilAUPLnsuv2eOUnATD3XKaYBpjOmeU/N3IfmxA+ UvYQ==; darn=patchwork.amarulasolutions.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@amarulasolutions.com header.s=google header.b=J5vOs1PX; 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=1772036351; x=1772641151; 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=wVluuDHpanJQqBlR3l83OXc7Us2nRhkf90jAJa/rHLI=; b=OolIvQfJb/UfA/sYxcb6ro4iADHDMTh9K2yiGDenA7grfJ/dNUZEoVxIPDRXrCOOaw az2VNqQqb3IObRPte/IyOgrOG37ficSjOjO/cX5W+Il4r5Ak4OqLGIrre59vkYVzZfE2 zBFLPX+8K3ppi89js3s3EzUZI/Zg6eBQ1PALA= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1772036351; x=1772641151; 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=wVluuDHpanJQqBlR3l83OXc7Us2nRhkf90jAJa/rHLI=; b=ETYCRl4tAm65V92xE720FTZzplGXDwMri5mD29MpmhjGUjXtMJFITcoaUE2qHazrvo nZY9m8yuEpvNpyxGoQeFJf+D43aNfxAAdb5U46JtXzpHww9l9SlJ76MRn2qp0xavvFp2 SUgVRiKmA0SZ8n42HdnDeDakvt8WX14DGq1F50spcOVw6iMMIIFi7CRIlIEodoxsT1c7 DtEbCSljKC9sIndgpbPmt+nmTqUke/7URddv6Srqaao3GEFaZVzUah+ArDplKb679Wx6 gFfJRmdNzKxPME7rk9KE4plrGS/rD8BTaouDrElrdLQSbGI6zDvUm94C+aPVCoG2I3og ntCg== X-Forwarded-Encrypted: i=2; AJvYcCXrHof65rj/nVLqDwWk8qsJIqDsuodd1pLRMWJ1ik65Es+oOEXhTK7hJmgPaEVb+ydM4v5JUAdYgXqK33Ex@patchwork.amarulasolutions.com X-Gm-Message-State: AOJu0YwO55UeykE4SYZbdjiU3Nury5wQboiw8cajhyvX9kdBgTdnZTPM bgZEs4+Mf9ovQ82cOY9+KsNAVtlvY1NjOArkBaMRpQKpxO4rOqCiHRAfohwVg15Jrd6x4WTTB2J M4w== X-Received: by 2002:a05:600c:2041:b0:483:6cf0:5d8b with SMTP id 5b1f17b1804b1-483bd75fe0dmr50467895e9.9.1772036350962; Wed, 25 Feb 2026 08:19:10 -0800 (PST) X-BeenThere: linux-amarula@amarulasolutions.com; h="AV1CL+EZtDi54nOT6cbBNzrkpTpt70pLTbD3IGzg4kFMuVCP3w==" Received: by 2002:a05:600c:3b28:b0:477:9e7d:40a2 with SMTP id 5b1f17b1804b1-483bf286694ls3710005e9.0.-pod-prod-00-eu; Wed, 25 Feb 2026 08:19:09 -0800 (PST) X-Received: by 2002:a05:600c:81c8:b0:47d:403a:277 with SMTP id 5b1f17b1804b1-483bd7253cbmr68067305e9.4.1772036348838; Wed, 25 Feb 2026 08:19:08 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1772036348; cv=none; d=google.com; s=arc-20240605; b=BaYt/qbKOWJJ6XQIWjB9+s4qT694abVGaISHsIIC+IgQHqFdOM8qq0M/XQ7qBj/zxd 5+lXcfn8j3V6sb/kGWES7Sz8BH2bs+b1s1B4trqK/RETIfkcm8paWYUSO5vfJ5cwCd+d Rf/Xy0qfrrLzOHPLBDjeKjf5V68FMU+iF9BXEXs4ct7oh6nrSsHLXyDBNI7ZOeYFhQ8E uf7BoghnqZgAnPZP02ntt8dw+iDapOnKozv0Ajb/FOleyYlg/Nznw2pkldR7VdydaWyN VZ9fClEhY7H61falbiGTh8JU6Sh0oIc84HscYY4LBkjjw0UTsVBLgBQ9fh9YmlrdL/QX HJjw== 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=fKC0I/zSUXCK7LI/x6OL7XjZ+Bj3ETz1H98338kwM5Q=; fh=QZoutJPT+pXy1qUk539h9r/tpUMLR61JfMC4cgv8pmc=; b=DEtwVbsgrmy0r8NZ5Y3+t5Z1nurehlR6oo/G3XHAnbA9Bk2RIooyIjoED1eH9fS/Pz i7I69tSSY+YYN9TeHF1S5cibXY6ID1RpxNQ/37IZGJqkbaiN2/LrYeM5Ba03/3nH1d+U nBOKeXhzRNikoSPGXs5zwh0ohMlpkxjoJWwrIVADep13XOndfy84PyZ9v8INa+DrbZ8N QQZvIFDEvVQeNG3S300lqmWp6Y7YzL88JOEjkDPzBJC+kQpWZcbkKv/FqwWVKCyBiTni w9RZQTZhPNQAhA7JMeoVm63Iox8//I9CUbFzQNCbATlP78gBCb+UVJaG6MEM6LB+MlGB VhNQ==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@amarulasolutions.com header.s=google header.b=J5vOs1PX; 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-483bd7454d2sor3613105e9.9.2026.02.25.08.19.08 for (Google Transport Security); Wed, 25 Feb 2026 08:19:08 -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-Gm-Gg: ATEYQzzaEalK4jgbIZj+htYSqeCD7z9PG2c623H7gRDIHKHmDZBYh9zRDZhrsEluFop v/5//oMVq8r5dz/hi2N8fQ3EkN5Jdz+fFWF7Mm/YxNQKumfIGF9k3tMRwNRgMnmmbGIyTmnGQ6U IMDujICKCY7WuzqwkUbLKUuOh/6qGjbx7RdwE9k4ha0igtabYAZL/QG36xYZmZQD9+skfoC4PZA lmulsJmj8679QwQAGG4LFtoaCgnO/6mvnq6k4WQx7Qw10mQ5Ag4X2FfTQq/IsDWxTb8ANC1PYe8 7SajDyu+Xpw/TXG7mATwLnO5mGqD7CthxytIkn1xFnX+pzRyqwLJSvyal8pw3tKPS0KyHX592g+ TIhvjCudVPPnqbig6RPng6iQ8+rhKNy4jvGqMs0bB/fcQXAkBR0btV47iVf6CfgXIbaBkb/Vqsv y4tguY9NvivLKwWC1yf4F5h3R9OLiZObe0xiMh51D9puct12rvMb4laZ6HN7iWDJuCpKawEoVau W4fVsliXLfCUPDFBohufCisVXm6C6cap1ieLykGly1dqIFp X-Received: by 2002:a05:600c:3552:b0:477:9890:9ab8 with SMTP id 5b1f17b1804b1-483bd725417mr79218795e9.3.1772036348360; Wed, 25 Feb 2026 08:19:08 -0800 (PST) Received: from dario-ThinkPad-P14s-Gen-5.amarulasolutions.com ([2.196.43.111]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-483bd6f19f5sm186562265e9.1.2026.02.25.08.19.07 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 25 Feb 2026 08:19:07 -0800 (PST) From: Dario Binacchi To: u-boot@lists.denx.de Cc: linux-amarula@amarulasolutions.com, Patrick Delaunay , Patrice Chotard , Dario Binacchi , Jagan Teki , Tom Rini , uboot-stm32@st-md-mailman.stormreply.com Subject: [PATCH v3 8/9] spi: stm32: extend support to STM32MP25 Date: Wed, 25 Feb 2026 17:16:59 +0100 Message-ID: <20260225161851.2475274-9-dario.binacchi@amarulasolutions.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260225161851.2475274-1-dario.binacchi@amarulasolutions.com> References: <20260225161851.2475274-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=J5vOs1PX; 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: , The SPI IP in this platform is fully compatible with the current driver implementation, requiring only a new compatible string. Signed-off-by: Dario Binacchi Reviewed-by: Patrice Chotard --- Changes in v3: - Add Reviewed-by tag of Patrice Chotard drivers/spi/stm32_spi.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/spi/stm32_spi.c b/drivers/spi/stm32_spi.c index 9d095b280a70..b7bc5816cc13 100644 --- a/drivers/spi/stm32_spi.c +++ b/drivers/spi/stm32_spi.c @@ -684,6 +684,7 @@ static const struct dm_spi_ops stm32_spi_ops = { }; static const struct udevice_id stm32_spi_ids[] = { + { .compatible = "st,stm32mp25-spi", }, { .compatible = "st,stm32h7-spi", }, { } }; From patchwork Wed Feb 25 16:17:00 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dario Binacchi X-Patchwork-Id: 4490 Return-Path: X-Original-To: linux-amarula@patchwork.amarulasolutions.com Delivered-To: linux-amarula@patchwork.amarulasolutions.com Received: from mail-wm1-f72.google.com (mail-wm1-f72.google.com [209.85.128.72]) by ganimede.amarulasolutions.com (Postfix) with ESMTPS id 356223F1C6 for ; Wed, 25 Feb 2026 17:19:13 +0100 (CET) Received: by mail-wm1-f72.google.com with SMTP id 5b1f17b1804b1-4837f288194sf55924805e9.2 for ; Wed, 25 Feb 2026 08:19:13 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1772036353; cv=pass; d=google.com; s=arc-20240605; b=Urkq+UJKSWPxtyrnN5YNn2XLSyYqMZuRqyTklOG7ynXzTCHABhg4AC2X3wBb4P0w0G Ab5KfB47zNlWUgWH0Ne0Yv5qSdXLh14OBBnQi3M8XjeBgtvgvItUnelPhu7FuBWCPOci A7nej0hu40AwHo2O34RLcVM5JXeEQnZftHc6pLcr4OLjF+m+WZOFR+XMXVryXJaOzOBl DA70mcbuAFz3c0Eh7gdKRRVsp7DMfVRLmdQW2Fx/uFmTe9tGWBpRBlgjZn5u3z5lkS+0 yjPGKn4iZCveb56hDnXYouAsyoaZC79Z7ek3wMRoXjzzD4SFGQy9sD7BaTTouaXg4F/5 MEew== 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=+ouy34JCcIxgGrAyl8I5KqJAvsa53SxkOeIyglVYYOs=; fh=PgDJK36kluRLxRxHpG9aZoMoaTGtGDaTxLXeqNHVHJ0=; b=MPJfCIWxXYUXbFr+O4rqwJ8CMvLt7noEo/OcM281D0ZmTlu1UN5lP5BJ+u+NRB7YZK slrt63iUlbx+5z+7mwDDh/iP52sT+jBfw3HOxZv1WTBiQfWsFvug+D5SI1VnXXy1u8mH MZPiS1xQgz93bcPOcwW112hG8LTMnbgt/GOfNq19JvDYGZJQvE0WnNL9STeU8yxfWnmG XXDlZwRVrYLYBJkqA/F/sWjUBHZGiEiFMKHekUO6Q7VkcbzNP99OQJAoc5P598GLYp6q rZwILUbmx2ht8IR6ZkXuCLJz9zM5RyaJZ5+YitSdXQmkkceuij1jVasFaavDQhgVzsb/ JgCg==; darn=patchwork.amarulasolutions.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@amarulasolutions.com header.s=google header.b=L0qrgyDS; 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=1772036353; x=1772641153; 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=+ouy34JCcIxgGrAyl8I5KqJAvsa53SxkOeIyglVYYOs=; b=LgMwRTIiS89LkS5+h+UXR8vpq4nhGnZFpZbfQiGI1wAJE5jSeiJSW9ulNYwr9ntylo YhmwhygLSmDGxsEH8RHrSt3GbaI72yjx0gPuxMCa1ARFB4c35+AdjoeUEsDH3AWdh2lW rs1X9m+N9bh2EJciDzlP0G9z1EAjUXjYZgLPo= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1772036353; x=1772641153; 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=+ouy34JCcIxgGrAyl8I5KqJAvsa53SxkOeIyglVYYOs=; b=fBI4Rul8q3umYqrBFyrCf+AvPmtXA8z9KmtneAfiwm05eQFwMKIzG4WC1tXrzdAub4 BQlfFT71mFxykuYH6zaybD2zLLjtV5ChxzRpoO5paKm7dafQQrXgAgQTOnxvryh39zQf GARJGHLvHWxAsOLLIpK5VewDiATyPogQ0XZd1v9IAikVpf6wRw9T41thncvIkE0kX7k2 kYB/9+HKXu3/TfeBQDBy9eVoJV8EPg1Sb8ERQKRpT+Ja9S9PfRSqTcDm9nz4j+OyVf1Z 4b+1W9vX8yAA2oIQ8adptVmpwylOHWuFaYAmzhi1/jtDLdHD2AYDrDvDm/Ijb+7hMr8S SosQ== X-Forwarded-Encrypted: i=2; AJvYcCXpO+wbrpWVhHklU7kwdwRbVxDrnwSPDhtELbJeWauvtxzmgVyOznRzeyTquRbmU9YF0x/A9FQqgqtSoEPp@patchwork.amarulasolutions.com X-Gm-Message-State: AOJu0YxhF6YQOxBAj4IOANQwuw2V43Ueqae92KMT8WUc0SHXi1dquX/+ uZQGD7K4Rellnh480iEX4rNMN+0bBBLQLwd1/5V96WT6XdjWLygBHxAfI9W1InAeFhQyoNZSNSI 6JQ== X-Received: by 2002:a05:600c:820a:b0:483:709e:f22d with SMTP id 5b1f17b1804b1-483a96379c1mr284982075e9.27.1772036352803; Wed, 25 Feb 2026 08:19:12 -0800 (PST) X-BeenThere: linux-amarula@amarulasolutions.com; h="AV1CL+GywP67VIWwNR6IzPz4yjGW3a0FKS7O9/XgmGhgjpaG6A==" Received: by 2002:a05:600c:4f08:b0:483:7942:63b6 with SMTP id 5b1f17b1804b1-483bf0a7d7els6156195e9.2.-pod-prod-03-eu; Wed, 25 Feb 2026 08:19:11 -0800 (PST) X-Received: by 2002:a05:600c:314a:b0:47e:e20e:bbb4 with SMTP id 5b1f17b1804b1-483a9637a24mr244343045e9.26.1772036350740; Wed, 25 Feb 2026 08:19:10 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1772036350; cv=none; d=google.com; s=arc-20240605; b=GaZjddZnXrU5YgMPtQJIS0NPOoxYaH7sebVLQhUFYWbIczekrGd4jB2v3Av78ywXZN Be30fBk9+6gYTCQG74tgAX1Pfh8EKJMXVjE8TzD+YkKOHv7AyZKg0+Ja2p1rHfwzLcFZ GUHbZppohjL9Oqh1tKoIYs47DRhYztFncpaJkqwRmilJ7746IqvJ18JGTkzWxI9IRJw5 ivY58Hj1zsxAPN9+fwa9SeIy+a+c/wP9FmWDRbYvyROZ4f0mgcTPFPnT9bl0oo89R9JG 5uSCsqSRbRjQrlCwG1oyWiXMlevEleawVvdI+pVVX2asidWOVMIdKcFz//KIQ/JiTUSZ GGHQ== 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=LDgsd0IUKvdsy6EImIIYek0WX6CFSScaO7v9JzMsyko=; fh=k+SC+pIlTUxJ9MrCqO31wUTitoSm/cw11fvLAHlti6g=; b=BH97yIWbTCuKrIg7mhyEjRhHiGLefAfcT7RxIDK+MfNhd4EdsudEdRrd5oYmvvx7YB qSg30NrQzVqXcODWajJz05RFM6eQrmXGDoEUsn5yBICDXx9kR/xafIzgD6tbWuPgu5if /bU+yLvtzgQZJTB0mVC5ClWUkzC5fN7MhjOT3kLsxJqxb/UNWU7nOyGrOxSIHxve9hwE Q01hTaOqPakllrA6N7LlwEcHL7yXbqKwctyznwZ3rAA/UAMIMUpLToAAgNgwrBkla4OE kxrCRJlQmplrAi+nGnJUhza/H8Vas4dfJerdeGYMH6JLJ04t2NXY9pdpYviKMMeMHfhY 4XDQ==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@amarulasolutions.com header.s=google header.b=L0qrgyDS; 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 ffacd0b85a97d-439928a9e3bsor198765f8f.17.2026.02.25.08.19.10 for (Google Transport Security); Wed, 25 Feb 2026 08:19:10 -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-Gm-Gg: ATEYQzwP8iXESR/QvIyCIsiH66soz9TmFlkBn7CWXiauuGQjM0dC77oyEBnY/u7pdna QKRW8zdWMmlacdwiSst0QGiItv4mr8PON0gAfzms0eJFdgXl7hXGaeB43YBlMrXM9ZGA5cvQd3y EOTOKPk6AdI0CjgMAebUi0M6Aqh0Ju5c5HGBZswUyp/0dByC3tIFvCi6d9CzuqzOd9mscvXYcD7 W0JN9XRy09tAhP7uJ2xmQvnLKxG+SWUsl1iQnA+Mq0gG0HyuRhMAxjTA+hepEAHjCmRrrtR6uvw zMIGROmbWq0f7sXKNDYiXrP2x0n56Glf8kJxO+jZLYWbOuS5Lo/jnsEooIY69xIn1QwCi7uPZI2 WsyF8bOuK6lHiA+9oEtszo5yJF+ENqFii31OteM9ZrExm1694730rgaUJ2LdnsrlcHnJvZ3magC UTCbzaP7xmmx7Ru574oLZx4iG11CiqNpFLuEktPeODSOw669UBCFQhrw0X0JTAoTFZdVw+EHnHs gX9ClRnAYDvr8w3XF3Stj7rTCnf5Mvl2wjU96//5a5+MtkK X-Received: by 2002:a05:600c:820e:b0:480:1e8f:d15f with SMTP id 5b1f17b1804b1-483a95eb591mr279150365e9.2.1772036350125; Wed, 25 Feb 2026 08:19:10 -0800 (PST) Received: from dario-ThinkPad-P14s-Gen-5.amarulasolutions.com ([2.196.43.111]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-483bd6f19f5sm186562265e9.1.2026.02.25.08.19.08 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 25 Feb 2026 08:19:09 -0800 (PST) From: Dario Binacchi To: u-boot@lists.denx.de Cc: linux-amarula@amarulasolutions.com, Patrick Delaunay , Patrice Chotard , Dario Binacchi , Alexander Graf , Alper Nebi Yasak , Anatolij Gustschin , Dragan Simic , Heinrich Schuchardt , Ion Agorria , Miquel Raynal , Simon Glass , Svyatoslav Ryhel , Tom Rini Subject: [PATCH v3 9/9] video: support Rocktech RK050HR345-CT106A panel Date: Wed, 25 Feb 2026 17:17:00 +0100 Message-ID: <20260225161851.2475274-10-dario.binacchi@amarulasolutions.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260225161851.2475274-1-dario.binacchi@amarulasolutions.com> References: <20260225161851.2475274-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=L0qrgyDS; 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: , Add support for the Rocktech RK050HR345-CT106A RGB panel. This model uses an Ilitek ILI9806E controller over the SPI bus for initialization and register configuration only. The driver is designed to be easily extensible to support other panels with different sequences and timings by providing a specific descriptor structure for each model. Signed-off-by: Dario Binacchi --- Changes in v3: - Insert blank lines to separate code in ilitek-ili9806e.c Changes in v2: - Rplace tristate with bool in drivers/video/Kconfig drivers/video/Kconfig | 8 + drivers/video/Makefile | 1 + drivers/video/ilitek-ili9806e.c | 356 ++++++++++++++++++++++++++++++++ 3 files changed, 365 insertions(+) create mode 100644 drivers/video/ilitek-ili9806e.c diff --git a/drivers/video/Kconfig b/drivers/video/Kconfig index 08c9b0207884..c2acc13139c0 100644 --- a/drivers/video/Kconfig +++ b/drivers/video/Kconfig @@ -552,6 +552,14 @@ config VIDEO_LCD_HIMAX_HX8394 Say Y here if you want to enable support for Himax HX8394 dsi 4dl panel. +config VIDEO_LCD_ILITEK_ILI9806E + bool "Ilitek ILI9806E-based panels" + depends on PANEL && BACKLIGHT + help + Say Y here if you want to enable support for panels base on + the Ilitek ILI9806E controller. Currently only the DBI panel + is implemented. + config VIDEO_LCD_MOT tristate "Atrix 4G and Droid X2 540x960 DSI video mode panel" depends on PANEL && BACKLIGHT diff --git a/drivers/video/Makefile b/drivers/video/Makefile index 984768ea156d..74846a8106e4 100644 --- a/drivers/video/Makefile +++ b/drivers/video/Makefile @@ -61,6 +61,7 @@ obj-$(CONFIG_VIDEO_LCD_ENDEAVORU) += endeavoru-panel.o obj-$(CONFIG_VIDEO_LCD_HIMAX_HX8394) += himax-hx8394.o obj-$(CONFIG_VIDEO_LCD_HITACHI_TX10D07VM0BAA) += hitachi-tx10d07vm0baa.o obj-$(CONFIG_VIDEO_LCD_HITACHI_TX18D42VM) += hitachi_tx18d42vm_lcd.o +obj-$(CONFIG_VIDEO_LCD_ILITEK_ILI9806E) += ilitek-ili9806e.o obj-$(CONFIG_VIDEO_LCD_LG_LD070WX3) += lg-ld070wx3.o obj-$(CONFIG_VIDEO_LCD_LG_LH400WV3) += lg-lh400wv3-sd04.o obj-$(CONFIG_VIDEO_LCD_MOT) += mot-panel.o diff --git a/drivers/video/ilitek-ili9806e.c b/drivers/video/ilitek-ili9806e.c new file mode 100644 index 000000000000..9ba580639c9a --- /dev/null +++ b/drivers/video/ilitek-ili9806e.c @@ -0,0 +1,356 @@ +// SPDX-License-Identifier: GPL-2.0+ +/* + * Copyright (C) 2026 Amarula Solutions, Dario Binacchi + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +struct ilitek_ili9806e_priv { + struct udevice *vdd; + struct udevice *backlight; + struct gpio_desc reset_gpio; + const struct ilitek_ili9806e_desc *desc; +}; + +struct ilitek_ili9806e_desc { + const struct display_timing timing; + void (*init_sequence)(struct udevice *dev); +}; + +static int ilitek_ili9806e_dcs_write(struct udevice *dev, u8 cmd, const u8 *seq, int len) +{ + u16 data[16]; + int i, ret; + + if ((len + 1) > ARRAY_SIZE(data)) { + dev_err(dev, "Command length (%d) exceeds buffer size (%lu)\n", + len + 1, ARRAY_SIZE(data)); + return -EMSGSIZE; + } + + data[0] = cmd; + if (len) { + for (i = 0; i < len; i++) + data[i + 1] = seq[i] | 0x0100; + } + + ret = dm_spi_xfer(dev, (len + 1) * 8 * sizeof(u16), data, NULL, + SPI_XFER_ONCE); + return 0; +} + +#define ilitek_ili9806e_dcs_write_seq(dev, cmd, seq...) \ +({ \ + static const u8 b[] = { seq }; \ + ilitek_ili9806e_dcs_write(dev, cmd, b, ARRAY_SIZE(b)); \ +}) + +static int ilitek_ili9806e_enable_backlight(struct udevice *dev) +{ + struct ilitek_ili9806e_priv *priv = dev_get_priv(dev); + const struct ilitek_ili9806e_desc *desc = priv->desc; + + desc->init_sequence(dev); + + return panel_set_backlight(dev, BACKLIGHT_DEFAULT); +} + +static int ilitek_ili9806e_set_backlight(struct udevice *dev, int percent) +{ + struct ilitek_ili9806e_priv *priv = dev_get_priv(dev); + int ret; + + ret = backlight_enable(priv->backlight); + if (ret) { + dev_err(dev, "Cannot enable backlight\n"); + return ret; + } + + ret = backlight_set_brightness(priv->backlight, percent); + if (ret) + dev_err(dev, "Cannot set backlight brightness\n"); + + return ret; +} + +static int ilitek_ili9806e_get_display_timing(struct udevice *dev, + struct display_timing *timing) +{ + struct ilitek_ili9806e_priv *priv = dev_get_priv(dev); + + memcpy(timing, &priv->desc->timing, sizeof(*timing)); + + return 0; +} + +static int ilitek_ili9806e_of_to_plat(struct udevice *dev) +{ + struct ilitek_ili9806e_priv *priv = dev_get_priv(dev); + int ret; + + if (CONFIG_IS_ENABLED(DM_REGULATOR)) { + ret = device_get_supply_regulator(dev, "vdd-supply", &priv->vdd); + if (ret) { + dev_err(dev, "Cannot get vdd supply\n"); + return ret; + } + } + + ret = uclass_get_device_by_phandle(UCLASS_PANEL_BACKLIGHT, dev, + "backlight", &priv->backlight); + if (ret) { + dev_err(dev, "Cannot get backlight\n"); + return ret; + } + + ret = gpio_request_by_name(dev, "reset-gpios", 0, + &priv->reset_gpio, GPIOD_IS_OUT); + if (ret) { + dev_err(dev, "Cannot get reset GPIO\n"); + return ret; + } + + return 0; +} + +static int ilitek_ili9806e_hw_init(struct udevice *dev) +{ + struct ilitek_ili9806e_priv *priv = dev_get_priv(dev); + int ret; + + ret = dm_gpio_set_value(&priv->reset_gpio, 1); + if (ret) { + dev_err(dev, "Cannot enter reset\n"); + return ret; + } + + ret = regulator_set_enable_if_allowed(priv->vdd, 1); + if (ret) { + dev_err(dev, "Cannot enable vdd-supply\n"); + return ret; + } + + mdelay(20); + + ret = dm_gpio_set_value(&priv->reset_gpio, 0); + if (ret) { + dev_err(dev, "Cannot exit reset\n"); + return ret; + } + + mdelay(20); + + return 0; +} + +static int ilitek_ili9806e_probe(struct udevice *dev) +{ + struct ilitek_ili9806e_priv *priv = dev_get_priv(dev); + struct spi_slave *slave = dev_get_parent_priv(dev); + int ret; + + ret = spi_set_wordlen(slave, 9); + if (ret) { + dev_err(dev, "Cannot set SPI.bits_per_word\n"); + return ret; + } + + ret = spi_claim_bus(slave); + if (ret) { + dev_err(dev, "Cannot get SPI bus\n"); + return ret; + } + + priv->desc = (struct ilitek_ili9806e_desc *)dev_get_driver_data(dev); + + return ilitek_ili9806e_hw_init(dev); +} + +static const struct panel_ops ilitek_ili9806e_ops = { + .enable_backlight = ilitek_ili9806e_enable_backlight, + .set_backlight = ilitek_ili9806e_set_backlight, + .get_display_timing = ilitek_ili9806e_get_display_timing, +}; + +static void rk050hr345_ct106a_init(struct udevice *dev) +{ + /* Switch to page 1 */ + ilitek_ili9806e_dcs_write_seq(dev, 0xff, 0xff, 0x98, 0x06, 0x04, 0x01); + /* Interface Settings */ + ilitek_ili9806e_dcs_write_seq(dev, 0x08, 0x10); + ilitek_ili9806e_dcs_write_seq(dev, 0x21, 0x01); + /* Panel Settings */ + ilitek_ili9806e_dcs_write_seq(dev, 0x30, 0x01); + ilitek_ili9806e_dcs_write_seq(dev, 0x31, 0x00); + /* Power Control */ + ilitek_ili9806e_dcs_write_seq(dev, 0x40, 0x15); + ilitek_ili9806e_dcs_write_seq(dev, 0x41, 0x44); + ilitek_ili9806e_dcs_write_seq(dev, 0x42, 0x03); + ilitek_ili9806e_dcs_write_seq(dev, 0x43, 0x09); + ilitek_ili9806e_dcs_write_seq(dev, 0x44, 0x09); + ilitek_ili9806e_dcs_write_seq(dev, 0x50, 0x78); + ilitek_ili9806e_dcs_write_seq(dev, 0x51, 0x78); + ilitek_ili9806e_dcs_write_seq(dev, 0x52, 0x00); + ilitek_ili9806e_dcs_write_seq(dev, 0x53, 0x3a); + ilitek_ili9806e_dcs_write_seq(dev, 0x57, 0x50); + /* Timing Control */ + ilitek_ili9806e_dcs_write_seq(dev, 0x60, 0x07); + ilitek_ili9806e_dcs_write_seq(dev, 0x61, 0x00); + ilitek_ili9806e_dcs_write_seq(dev, 0x62, 0x08); + ilitek_ili9806e_dcs_write_seq(dev, 0x63, 0x00); + /* Gamma Settings */ + ilitek_ili9806e_dcs_write_seq(dev, 0xa0, 0x00); + ilitek_ili9806e_dcs_write_seq(dev, 0xa1, 0x03); + ilitek_ili9806e_dcs_write_seq(dev, 0xa2, 0x0b); + ilitek_ili9806e_dcs_write_seq(dev, 0xa3, 0x0f); + ilitek_ili9806e_dcs_write_seq(dev, 0xa4, 0x0b); + ilitek_ili9806e_dcs_write_seq(dev, 0xa5, 0x1b); + ilitek_ili9806e_dcs_write_seq(dev, 0xa6, 0x0a); + ilitek_ili9806e_dcs_write_seq(dev, 0xa7, 0x0a); + ilitek_ili9806e_dcs_write_seq(dev, 0xa8, 0x02); + ilitek_ili9806e_dcs_write_seq(dev, 0xa9, 0x07); + ilitek_ili9806e_dcs_write_seq(dev, 0xaa, 0x05); + ilitek_ili9806e_dcs_write_seq(dev, 0xab, 0x03); + ilitek_ili9806e_dcs_write_seq(dev, 0xac, 0x0e); + ilitek_ili9806e_dcs_write_seq(dev, 0xad, 0x32); + ilitek_ili9806e_dcs_write_seq(dev, 0xae, 0x2d); + ilitek_ili9806e_dcs_write_seq(dev, 0xaf, 0x00); + ilitek_ili9806e_dcs_write_seq(dev, 0xc0, 0x00); + ilitek_ili9806e_dcs_write_seq(dev, 0xc1, 0x03); + ilitek_ili9806e_dcs_write_seq(dev, 0xc2, 0x0e); + ilitek_ili9806e_dcs_write_seq(dev, 0xc3, 0x10); + ilitek_ili9806e_dcs_write_seq(dev, 0xc4, 0x09); + ilitek_ili9806e_dcs_write_seq(dev, 0xc5, 0x17); + ilitek_ili9806e_dcs_write_seq(dev, 0xc6, 0x09); + ilitek_ili9806e_dcs_write_seq(dev, 0xc7, 0x07); + ilitek_ili9806e_dcs_write_seq(dev, 0xc8, 0x04); + ilitek_ili9806e_dcs_write_seq(dev, 0xc9, 0x09); + ilitek_ili9806e_dcs_write_seq(dev, 0xca, 0x06); + ilitek_ili9806e_dcs_write_seq(dev, 0xcb, 0x06); + ilitek_ili9806e_dcs_write_seq(dev, 0xcc, 0x0c); + ilitek_ili9806e_dcs_write_seq(dev, 0xcd, 0x25); + ilitek_ili9806e_dcs_write_seq(dev, 0xce, 0x20); + ilitek_ili9806e_dcs_write_seq(dev, 0xcf, 0x00); + + /* Switch to page 6 */ + ilitek_ili9806e_dcs_write_seq(dev, 0xff, 0xff, 0x98, 0x06, 0x04, 0x06); + /* GIP settings */ + ilitek_ili9806e_dcs_write_seq(dev, 0x00, 0x21); + ilitek_ili9806e_dcs_write_seq(dev, 0x01, 0x09); + ilitek_ili9806e_dcs_write_seq(dev, 0x02, 0x00); + ilitek_ili9806e_dcs_write_seq(dev, 0x03, 0x00); + ilitek_ili9806e_dcs_write_seq(dev, 0x04, 0x01); + ilitek_ili9806e_dcs_write_seq(dev, 0x05, 0x01); + ilitek_ili9806e_dcs_write_seq(dev, 0x06, 0x80); + ilitek_ili9806e_dcs_write_seq(dev, 0x07, 0x05); + ilitek_ili9806e_dcs_write_seq(dev, 0x08, 0x02); + ilitek_ili9806e_dcs_write_seq(dev, 0x09, 0x80); + ilitek_ili9806e_dcs_write_seq(dev, 0x0a, 0x00); + ilitek_ili9806e_dcs_write_seq(dev, 0x0b, 0x00); + ilitek_ili9806e_dcs_write_seq(dev, 0x0c, 0x0a); + ilitek_ili9806e_dcs_write_seq(dev, 0x0d, 0x0a); + ilitek_ili9806e_dcs_write_seq(dev, 0x0e, 0x00); + ilitek_ili9806e_dcs_write_seq(dev, 0x0f, 0x00); + ilitek_ili9806e_dcs_write_seq(dev, 0x10, 0xe0); + ilitek_ili9806e_dcs_write_seq(dev, 0x11, 0xe4); + ilitek_ili9806e_dcs_write_seq(dev, 0x12, 0x04); + ilitek_ili9806e_dcs_write_seq(dev, 0x13, 0x00); + ilitek_ili9806e_dcs_write_seq(dev, 0x14, 0x00); + ilitek_ili9806e_dcs_write_seq(dev, 0x15, 0xc0); + ilitek_ili9806e_dcs_write_seq(dev, 0x16, 0x08); + ilitek_ili9806e_dcs_write_seq(dev, 0x17, 0x00); + ilitek_ili9806e_dcs_write_seq(dev, 0x18, 0x00); + ilitek_ili9806e_dcs_write_seq(dev, 0x19, 0x00); + ilitek_ili9806e_dcs_write_seq(dev, 0x1a, 0x00); + ilitek_ili9806e_dcs_write_seq(dev, 0x1b, 0x00); + ilitek_ili9806e_dcs_write_seq(dev, 0x1c, 0x00); + ilitek_ili9806e_dcs_write_seq(dev, 0x1d, 0x00); + ilitek_ili9806e_dcs_write_seq(dev, 0x20, 0x01); + ilitek_ili9806e_dcs_write_seq(dev, 0x21, 0x23); + ilitek_ili9806e_dcs_write_seq(dev, 0x22, 0x45); + ilitek_ili9806e_dcs_write_seq(dev, 0x23, 0x67); + ilitek_ili9806e_dcs_write_seq(dev, 0x24, 0x01); + ilitek_ili9806e_dcs_write_seq(dev, 0x25, 0x23); + ilitek_ili9806e_dcs_write_seq(dev, 0x26, 0x45); + ilitek_ili9806e_dcs_write_seq(dev, 0x27, 0x67); + ilitek_ili9806e_dcs_write_seq(dev, 0x30, 0x01); + ilitek_ili9806e_dcs_write_seq(dev, 0x31, 0x11); + ilitek_ili9806e_dcs_write_seq(dev, 0x32, 0x00); + ilitek_ili9806e_dcs_write_seq(dev, 0x33, 0xee); + ilitek_ili9806e_dcs_write_seq(dev, 0x34, 0xff); + ilitek_ili9806e_dcs_write_seq(dev, 0x35, 0xbb); + ilitek_ili9806e_dcs_write_seq(dev, 0x36, 0xca); + ilitek_ili9806e_dcs_write_seq(dev, 0x37, 0xdd); + ilitek_ili9806e_dcs_write_seq(dev, 0x38, 0xac); + ilitek_ili9806e_dcs_write_seq(dev, 0x39, 0x76); + ilitek_ili9806e_dcs_write_seq(dev, 0x3a, 0x67); + ilitek_ili9806e_dcs_write_seq(dev, 0x3b, 0x22); + ilitek_ili9806e_dcs_write_seq(dev, 0x3c, 0x22); + ilitek_ili9806e_dcs_write_seq(dev, 0x3d, 0x22); + ilitek_ili9806e_dcs_write_seq(dev, 0x3e, 0x22); + ilitek_ili9806e_dcs_write_seq(dev, 0x3f, 0x22); + ilitek_ili9806e_dcs_write_seq(dev, 0x40, 0x22); + ilitek_ili9806e_dcs_write_seq(dev, 0x52, 0x10); + ilitek_ili9806e_dcs_write_seq(dev, 0x53, 0x10); + + /* Switch to page 7 */ + ilitek_ili9806e_dcs_write_seq(dev, 0xff, 0xff, 0x98, 0x06, 0x04, 0x07); + ilitek_ili9806e_dcs_write_seq(dev, 0x17, 0x22); + ilitek_ili9806e_dcs_write_seq(dev, 0x02, 0x77); + ilitek_ili9806e_dcs_write_seq(dev, 0xe1, 0x79); + ilitek_ili9806e_dcs_write_seq(dev, 0xb3, 0x10); + + /* Switch to page 0 */ + ilitek_ili9806e_dcs_write_seq(dev, 0xff, 0xff, 0x98, 0x06, 0x04, 0x00); + ilitek_ili9806e_dcs_write_seq(dev, MIPI_DCS_SET_ADDRESS_MODE, 0x00); + ilitek_ili9806e_dcs_write_seq(dev, MIPI_DCS_EXIT_SLEEP_MODE); + + mdelay(120); + + ilitek_ili9806e_dcs_write_seq(dev, MIPI_DCS_SET_DISPLAY_ON); + + mdelay(120); +} + +static const struct ilitek_ili9806e_desc rk050hr345_ct106a_desc = { + .timing = { + .pixelclock.typ = 27000000, + .hactive.typ = 480, + .hfront_porch.typ = 10, + .hback_porch.typ = 10, + .hsync_len.typ = 10, + .vactive.typ = 854, + .vfront_porch.typ = 10, + .vback_porch.typ = 10, + .vsync_len.typ = 10, + .flags = DISPLAY_FLAGS_HSYNC_LOW | DISPLAY_FLAGS_VSYNC_LOW, + }, + .init_sequence = rk050hr345_ct106a_init, +}; + +static const struct udevice_id ilitek_ili9806e_ids[] = { + { + .compatible = "rocktech,rk050hr345-ct106a", + .data = (ulong)&rk050hr345_ct106a_desc, + }, + { } +}; + +U_BOOT_DRIVER(ilitek_ili9806e) = { + .name = "ilitek_ili9806e", + .id = UCLASS_PANEL, + .of_match = ilitek_ili9806e_ids, + .ops = &ilitek_ili9806e_ops, + .of_to_plat = ilitek_ili9806e_of_to_plat, + .probe = ilitek_ili9806e_probe, + .priv_auto = sizeof(struct ilitek_ili9806e_priv), + .flags = DM_FLAG_PRE_RELOC, +};