diff options
| author | Marian Cingel <[email protected]> | 2025-11-08 23:23:25 +0000 |
|---|---|---|
| committer | Tom Rini <[email protected]> | 2025-12-05 16:24:01 -0600 |
| commit | 1e8eff6d7a9ad2c605185e5b3d8c22ccd26733dc (patch) | |
| tree | 4dc739b6f37609d42ef4171b67baf5f46374ceb8 | |
| parent | af38567cadcaa4842d85af179254886a50c93fc9 (diff) | |
board: ti: CAT24C256WI-GT3 require min. 5ms delay (tWR) between write/read
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 <[email protected]>
| -rw-r--r-- | board/ti/common/cape_detect.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/board/ti/common/cape_detect.c b/board/ti/common/cape_detect.c index 0bd4a38c187..88fa6ae81f0 100644 --- a/board/ti/common/cape_detect.c +++ b/board/ti/common/cape_detect.c @@ -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) { |
