Commit bb7cd0ddf978b96c40a4889608c9b9ea16127afa

Authored by Sourav Poddar
Committed by Jagannadha Sutradharudu Teki
1 parent 570533b820

spi: ti_qspi: Add delay before xfer for am43xx

Without this delay, write/read is failing.
Looks like, the WIP always remain set and hence a timeout
occurs leading to the error.

Without this patch, device does not get probed also.
Here is the log.

U-Boot#
U-Boot#
U-Boot#
U-Boot# sf probe 0
SF: Unsupported flash IDs: manuf ff, jedec ffff, ext_jedec ffff
Failed to initialize SPI flash at 0:0
U-Boot# sf probe 0

While with this patch, log is
U-Boot# sf probe 0
SF: Detected MX25L51235F with page size 256 Bytes, erase size 64 KiB, total 64 MiB, mapped at 30000000
U-Boot# sf erase 0 0x80000
SF: 524288 bytes @ 0x0 Erased: OK
U-Boot# mw 81000000 0xdededede 0x40000
U-Boot# sf write 81000000 0 0x40000
SF: 262144 bytes @ 0x0 Written: OK
U-Boot# sf read 82000000 0 0x40000
SF: 262144 bytes @ 0x0 Read: OK
U-Boot# md 0x82000000

Signed-off-by: Sourav Poddar <sourav.poddar@ti.com>
Reviewed-by: Jagannadha Sutradharudu Teki <jaganna@xilinx.com>

Showing 1 changed file with 7 additions and 0 deletions Side-by-side Diff

drivers/spi/ti_qspi.c
... ... @@ -285,6 +285,13 @@
285 285 qslave->cmd |= QSPI_3_PIN;
286 286 qslave->cmd |= 0xfff;
287 287  
  288 +/* FIXME: This delay is required for successfull
  289 + * completion of read/write/erase. Once its root
  290 + * caused, it will be remove from the driver.
  291 + */
  292 +#ifdef CONFIG_AM43XX
  293 + udelay(100);
  294 +#endif
288 295 while (words--) {
289 296 if (txp) {
290 297 debug("tx cmd %08x dc %08x data %02x\n",