diff mbox series

[RFC,5/5] sysreset: call .on_reset for UCLASS_SPI_FLASH before reset request

Message ID 20240507100431.206670-6-robert.marko@sartura.hr
State RFC
Delegated to: Dario Binacchi
Headers show
Series Implement exiting 4-byte adressing mode before reset | expand

Commit Message

Robert Marko May 7, 2024, 10:03 a.m. UTC
Call .on_reset method for UCLASS_SPI_FLASH devices before requesting
reset.

This fixes the issue with 4-byte adressing mode being left enabled on
board reset.
That is an issue on Qualcomm IPQ4019 boards since the CPU expects flash
to be in 3-byte adressing mode and will just hang otherwise.

Note that this does not fix a case where you remove the power while U-Boot
is still running and in that case it will still be stuck in 4-byte mode.

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
---
 drivers/sysreset/sysreset-uclass.c | 7 +++++++
 1 file changed, 7 insertions(+)
diff mbox series

Patch

diff --git a/drivers/sysreset/sysreset-uclass.c b/drivers/sysreset/sysreset-uclass.c
index 6151b5fe03..8321cc4230 100644
--- a/drivers/sysreset/sysreset-uclass.c
+++ b/drivers/sysreset/sysreset-uclass.c
@@ -30,6 +30,13 @@  int sysreset_request(struct udevice *dev, enum sysreset_t type)
 	if (!ops->request)
 		return -ENOSYS;
 
+	/*
+	 * Call the .on_reset op for SPI flash devices.
+	 * This is required for most devices in order to exit the
+	 * 4-byte adressing mode.
+	 */
+	uclass_id_on_reset(UCLASS_SPI_FLASH);
+
 	return ops->request(dev, type);
 }