Otherwise the custom-cape eeprom (at adress 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]> --- board/ti/common/cape_detect.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/board/ti/common/cape_detect.c b/board/ti/common/cape_detect.c index 0bd4a38..88fa6ae 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) { -- 2.7.4

