aboutsummaryrefslogtreecommitdiff
path: root/drivers/spi/xilinx_spi.c
diff options
context:
space:
mode:
authorJiajie Chen <c@jia.je>2023-02-27 23:09:39 +0800
committerMichal Simek <michal.simek@amd.com>2023-03-09 13:15:00 +0100
commit4fffbc1108f3f5e2932cdefea8b5f831b46040c7 (patch)
tree7ec2133048933e1c2a7d6a32fbf0f3ae6dd797e9 /drivers/spi/xilinx_spi.c
parentdd0ebfe8a44421cdcc12ac4e5c3b3625cdf0ed1e (diff)
spi: xilinx_spi: Fix spi reset
It was incorrectly using an old priv->regs pointer, which was initialized to zero. SPI resets won't happen on first call. Signed-off-by: Jiajie Chen <c@jia.je> Link: https://lore.kernel.org/r/20230227150938.211820-1-c@jia.je Signed-off-by: Michal Simek <michal.simek@amd.com>
Diffstat (limited to 'drivers/spi/xilinx_spi.c')
-rw-r--r--drivers/spi/xilinx_spi.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/drivers/spi/xilinx_spi.c b/drivers/spi/xilinx_spi.c
index 4e9115dafe..9e6255a172 100644
--- a/drivers/spi/xilinx_spi.c
+++ b/drivers/spi/xilinx_spi.c
@@ -112,10 +112,9 @@ struct xilinx_spi_priv {
static int xilinx_spi_probe(struct udevice *bus)
{
struct xilinx_spi_priv *priv = dev_get_priv(bus);
- struct xilinx_spi_regs *regs = priv->regs;
-
- priv->regs = (struct xilinx_spi_regs *)dev_read_addr(bus);
+ struct xilinx_spi_regs *regs;
+ regs = priv->regs = (struct xilinx_spi_regs *)dev_read_addr(bus);
priv->fifo_depth = dev_read_u32_default(bus, "fifo-size", 0);
writel(SPISSR_RESET_VALUE, &regs->srr);