]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
spi: cadence_qspi: Fix OSPI boot issue
authorVenkatesh Yadav Abbarapu <venkatesh.abbarapu@amd.com>
Thu, 14 Nov 2024 06:20:45 +0000 (11:50 +0530)
committerMichal Simek <michal.simek@amd.com>
Tue, 19 Nov 2024 14:56:44 +0000 (15:56 +0100)
Moving the hw_reset function from the controller driver to
the NOR framework has caused the OSPI reset not to be triggered
in the Cadence driver's probe function. As a result, reading the
flash ID during SPI calibration is incorrect, and the
CQSPI_REG_RD_DATA_CAPTURE is set with an invalid value.This makes
it unable to read the flash ID properly.
To solve this problem, it's suggested to skip SPI calibration and
instead retrieve the read_delay directly from the device tree.

Skipping SPI calibration doesn't bring harm since there's no need
for the flash golden values stored during SPI calibration.
Instead, they are now read during the spi_nor_read_id call in the
NOR framework.

Signed-off-by: Tejas Bhumkar <tejas.arvind.bhumkar@amd.com>
Signed-off-by: Venkatesh Yadav Abbarapu <venkatesh.abbarapu@amd.com>
Link: https://lore.kernel.org/r/20241114062045.17581-1-venkatesh.abbarapu@amd.com
Signed-off-by: Michal Simek <michal.simek@amd.com>
drivers/spi/cadence_qspi.c

index 9c466f8695e2b294e363d3112649d8ed1ef12ed3..331a46d88f74423e51efe8f5acee1d22ddb65acc 100644 (file)
@@ -251,13 +251,6 @@ static int cadence_spi_probe(struct udevice *bus)
 
        priv->wr_delay = 50 * DIV_ROUND_UP(NSEC_PER_SEC, priv->ref_clk_hz);
 
-       /* Versal and Versal-NET use spi calibration to set read delay */
-       if (CONFIG_IS_ENABLED(ARCH_VERSAL) ||
-           CONFIG_IS_ENABLED(ARCH_VERSAL_NET) ||
-           CONFIG_IS_ENABLED(ARCH_VERSAL2))
-               if (priv->read_delay >= 0)
-                       priv->read_delay = -1;
-
        /* Reset ospi flash device */
        return cadence_qspi_versal_flash_reset(bus);
 }