spi: nxp-fspi: Use new readl_poll_sleep_timeout API
authorKuldeep Singh <kuldeep.singh@nxp.com>
Mon, 27 Apr 2020 07:08:51 +0000 (12:38 +0530)
committerJagan Teki <jagan@amarulasolutions.com>
Sun, 10 May 2020 20:00:49 +0000 (01:30 +0530)
Board gets reset when performing burst read/write operations. On the
other hand, no such behaviour is observed on small size operations.

In Linux, readl_poll_timeout API already adds delay of 1us which is
further skipped in U-boot. Hence, use new "readl_poll_sleep_timeout" API
which adds delay alongwith timeout functionality.

Signed-off-by: Kuldeep Singh <kuldeep.singh@nxp.com>
drivers/spi/nxp_fspi.c

index 0e6c7be785afd0525bab31e5cbea2fbe1ba21060..22a5c0e3c72e77991196ee6865c251ab9a68678e 100644 (file)
@@ -421,7 +421,7 @@ static bool nxp_fspi_supports_op(struct spi_slave *slave,
        return true;
 }
 
-/* Instead of busy looping invoke readl_poll_timeout functionality. */
+/* Instead of busy looping invoke readl_poll_sleep_timeout functionality. */
 static int fspi_readl_poll_tout(struct nxp_fspi *f, void __iomem *base,
                                u32 mask, u32 delay_us,
                                u32 timeout_us, bool c)
@@ -432,11 +432,11 @@ static int fspi_readl_poll_tout(struct nxp_fspi *f, void __iomem *base,
                mask = (u32)cpu_to_be32(mask);
 
        if (c)
-               return readl_poll_timeout(base, reg, (reg & mask),
-                                         timeout_us);
+               return readl_poll_sleep_timeout(base, reg, (reg & mask),
+                                               delay_us, timeout_us);
        else
-               return readl_poll_timeout(base, reg, !(reg & mask),
-                                         timeout_us);
+               return readl_poll_sleep_timeout(base, reg, !(reg & mask),
+                                               delay_us, timeout_us);
 }
 
 /*