]> git.ipfire.org Git - thirdparty/u-boot.git/commitdiff
board: ti: CAT24C256WI-GT3 require min. 5ms delay (tWR) between write/read
authorMarian Cingel <cingel.marian@gmail.com>
Sat, 8 Nov 2025 23:23:25 +0000 (23:23 +0000)
committerTom Rini <trini@konsulko.com>
Fri, 5 Dec 2025 22:24:01 +0000 (16:24 -0600)
Otherwise the custom-cape eeprom (at address 57) reports NACK which
results into "i2c_write: error waiting for data ACK (status=0x116)" and
terminates further scanning.

Signed-off-by: Marian Cingel <cingel.marian@gmail.com>
board/ti/common/cape_detect.c

index 0bd4a38c187d1aa8e0ad2f39657595b2be389f81..88fa6ae81f0581992907ae4df289f311ab1def61 100644 (file)
@@ -9,6 +9,7 @@
 #include <i2c.h>
 #include <extension_board.h>
 #include <vsprintf.h>
+#include <linux/delay.h>
 
 #include "cape_detect.h"
 
@@ -43,6 +44,8 @@ static int ti_extension_board_scan(struct udevice *dev,
 
                /* Move the read cursor to the beginning of the EEPROM */
                dm_i2c_write(dev, 0, &cursor, 1);
+               /* Need 5ms (tWR) to complete internal write */
+               mdelay(6);
                ret = dm_i2c_read(dev, 0, (uint8_t *)&eeprom_header,
                                  sizeof(struct am335x_cape_eeprom_id));
                if (ret) {