summaryrefslogtreecommitdiff
path: root/drivers/memory
diff options
context:
space:
mode:
authorLad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>2026-07-27 11:34:48 +0100
committerKrzysztof Kozlowski <krzk@kernel.org>2026-09-01 17:38:32 +0200
commit0c49783b0ed5c3d27efb2d0d91a3272db154458d (patch)
tree56c3e6001b700af134eb1e14329f8db012494578 /drivers/memory
parent26883f764dd66d0c82f258a12a2f0f769e6fc68e (diff)
memory: renesas-rpc-if: Consolidate command setup register programming
Simplify the command setup sequence in xspi_manual_xfer_impl() by combining updates to XSPI_CDCTL0 and XSPI_CDTBUF0. Clear the TRNUM and TRREQ fields in XSPI_CDCTL0 with a single regmap_update_bits() call. Likewise, program the command, command size and address size fields in XSPI_CDTBUF0 with a single regmap_write(), eliminating the subsequent ADDSIZE update. The intermediate write of zero to XSPI_CDABUF0 is also redundant, as the register is immediately programmed with the transfer address. Signed-off-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com> Link: https://patch.msgid.link/20260727103449.3188105-6-prabhakar.mahadev-lad.rj@bp.renesas.com Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
Diffstat (limited to 'drivers/memory')
-rw-r--r--drivers/memory/renesas-rpc-if.c14
1 files changed, 5 insertions, 9 deletions
diff --git a/drivers/memory/renesas-rpc-if.c b/drivers/memory/renesas-rpc-if.c
index c768e9c18556..d98991266887 100644
--- a/drivers/memory/renesas-rpc-if.c
+++ b/drivers/memory/renesas-rpc-if.c
@@ -636,18 +636,14 @@ static int xspi_manual_xfer_impl(struct rpcif_priv *xspi)
u32 pos = 0, max = 8;
int ret = 0;
- regmap_update_bits(xspi->regmap, XSPI_CDCTL0, XSPI_CDCTL0_TRNUM(0x3),
+ /* Clear transaction number and request */
+ regmap_update_bits(xspi->regmap, XSPI_CDCTL0,
+ XSPI_CDCTL0_TRNUM(0x3) | XSPI_CDCTL0_TRREQ,
XSPI_CDCTL0_TRNUM(0));
- regmap_update_bits(xspi->regmap, XSPI_CDCTL0, XSPI_CDCTL0_TRREQ, 0);
-
regmap_write(xspi->regmap, XSPI_CDTBUF0,
- XSPI_CDTBUF_CMDSIZE(0x1) | XSPI_CDTBUF_CMD_FIELD(xspi->command));
-
- regmap_write(xspi->regmap, XSPI_CDABUF0, 0);
-
- regmap_update_bits(xspi->regmap, XSPI_CDTBUF0, XSPI_CDTBUF_ADDSIZE(0x7),
- XSPI_CDTBUF_ADDSIZE(xspi->addr_nbytes));
+ XSPI_CDTBUF_CMDSIZE(0x1) | XSPI_CDTBUF_CMD_FIELD(xspi->command) |
+ XSPI_CDTBUF_ADDSIZE(xspi->addr_nbytes));
regmap_write(xspi->regmap, XSPI_CDABUF0, xspi->smadr);