diff mbox series

[U-Boot,v3,3/7] spi: fix: Call mxs_reset_block() during DM/DTS probe

Message ID 20190905075501.11225-4-lukma@denx.de
State Accepted
Commit c2050e10e11b7226f01aa18d49b9d4a2322723ca
Delegated to: Stefano Babic
Headers show
Series imx: mxs: Fixes and DM/DTS conversion code for several i.MX28 drivers | expand

Commit Message

Lukasz Majewski Sept. 5, 2019, 7:54 a.m. UTC
Without this change the DM/DTS version of mxs_spi driver doesn't reset the
SPI IP block in probe.
As a result this driver (when used solely on U-Boot proper) relies on reset
performed by mxs spi driver in SPL.

In the use case where eMMC is used in SPL as a boot primary device, the
mxs_reset_block() is not called at all and DM/DTS aware SPI driver in
U-Boot proper is malfunctioning.

Signed-off-by: Lukasz Majewski <lukma@denx.de>
---

Changes in v3: None
Changes in v2: None

 drivers/spi/mxs_spi.c | 2 ++
 1 file changed, 2 insertions(+)
diff mbox series

Patch

diff --git a/drivers/spi/mxs_spi.c b/drivers/spi/mxs_spi.c
index b1cc83aab1..d475830f17 100644
--- a/drivers/spi/mxs_spi.c
+++ b/drivers/spi/mxs_spi.c
@@ -436,6 +436,8 @@  static int mxs_spi_probe(struct udevice *bus)
 	priv->dma_channel = plat->dma_id;
 	priv->clk_id = plat->clk_id;
 
+	mxs_reset_block(&priv->regs->hw_ssp_ctrl0_reg);
+
 	ret = mxs_dma_init_channel(priv->dma_channel);
 	if (ret) {
 		printf("%s: DMA init channel error %d\n", __func__, ret);