Enable automatic allocation of platform data for the Cadence XSPI
controller by setting .plat_auto.

Without this, dev_get_plat() may return invalid or uninitialized
platform data when multiple XSPI controllers are present, leading
to incorrect IOBASE/SDMABASE/AUXBASE values and causing SPI flash
probe failures.

Setting .plat_auto ensures each controller instance receives a
properly sized cdns_xspi_plat structure, allowing SF probe to work
correctly.

Tested on an Altera Simics platform with multiple XSPI controllers.

Signed-off-by: Chen Huei Lok <[email protected]>
---
 drivers/spi/cadence_xspi.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/spi/cadence_xspi.c b/drivers/spi/cadence_xspi.c
index 717f226b709..8a894025d02 100644
--- a/drivers/spi/cadence_xspi.c
+++ b/drivers/spi/cadence_xspi.c
@@ -441,6 +441,7 @@ static const struct udevice_id cdns_xspi_of_match[] = {
 U_BOOT_DRIVER(cadence_xspi) = {
        .name = CDNS_XSPI_NAME,
        .id = UCLASS_SPI,
+       .plat_auto = sizeof(struct cdns_xspi_plat),
        .of_match = cdns_xspi_of_match,
        .ops = &cdns_xspi_ops,
        .probe = cdns_xspi_probe,
-- 
2.19.0

Reply via email to