summaryrefslogtreecommitdiff
path: root/drivers/misc
diff options
context:
space:
mode:
authorBaruch Siach <baruch@tkos.co.il>2019-08-05 09:03:30 +0300
committerHeiko Schocher <hs@denx.de>2019-08-27 06:26:49 +0200
commit5ae84860b0428b37063a6d7b03cae26a4e772da7 (patch)
tree93c4681cd9a1d10264fc6d1cf5e917b26259578b /drivers/misc
parentd7d864017d7f21a4cc3ff2a902024724c26ad213 (diff)
downloadu-boot-5ae84860b0428b37063a6d7b03cae26a4e772da7.tar.gz
misc: i2c_eeprom: verify that the chip is functional at probe()
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 <bgolaszewski@baylibre.com> Signed-off-by: Baruch Siach <baruch@tkos.co.il> hs: fixed style check prefer kernel type 'u8' over 'uint8_t'
Diffstat (limited to 'drivers/misc')
-rw-r--r--drivers/misc/i2c_eeprom.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/drivers/misc/i2c_eeprom.c b/drivers/misc/i2c_eeprom.c
index f25d054007..8f2349ad5a 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)
{
+ u8 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;
}