Read a single byte from EEPROM to verify that it is actually there.

This is equivalent to Linux kernel commit 00f0ea70d2b8 ("eeprom: at24:
check if the chip is functional in probe()").

Cc: Bartosz Golaszewski <bgolaszew...@baylibre.com>
Signed-off-by: Baruch Siach <bar...@tkos.co.il>
---
 drivers/misc/i2c_eeprom.c | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/drivers/misc/i2c_eeprom.c b/drivers/misc/i2c_eeprom.c
index f25d0540075d..a5ca853ab057 100644
--- a/drivers/misc/i2c_eeprom.c
+++ b/drivers/misc/i2c_eeprom.c
@@ -84,6 +84,14 @@ static int i2c_eeprom_std_ofdata_to_platdata(struct udevice 
*dev)
 
 static int i2c_eeprom_std_probe(struct udevice *dev)
 {
+       uint8_t test_byte;
+       int ret;
+
+       /* Verify that the chip is functional */
+       ret = i2c_eeprom_read(dev, 0, &test_byte, 1);
+       if (ret)
+               return -ENODEV;
+
        return 0;
 }
 
-- 
2.20.1

_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot

Reply via email to