[PATCH] eeprom: at24: verify that chip is accessible during probe

Marco Felsch m.felsch at pengutronix.de
Wed Feb 18 04:42:48 PST 2026


Perform a basic sanity check to verify that the EEPROM is actually
accessible by reading 1-byte. Linux does the same sanity check for all
non-ACPI platforms.

Signed-off-by: Marco Felsch <m.felsch at pengutronix.de>
---
 drivers/eeprom/at24.c | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/drivers/eeprom/at24.c b/drivers/eeprom/at24.c
index 06a2a4b22697..a08d42fe3e14 100644
--- a/drivers/eeprom/at24.c
+++ b/drivers/eeprom/at24.c
@@ -373,6 +373,7 @@ static int at24_probe(struct device *dev)
 	unsigned i, num_addresses;
 	const char *devname;
 	const char *alias;
+	u8 test_byte;
 
 	if (dev->platform_data) {
 		chip = *(struct at24_platform_data *)dev->platform_data;
@@ -487,6 +488,12 @@ static int at24_probe(struct device *dev)
 	at24->nvmem_config.size = chip.byte_len;
 	at24->nvmem_config.id = devid;
 
+	/* Perform a one-byte test read to verify that the chip is functional */
+	if (at24_read(at24, &test_byte, 0, 1) != 1) {
+		err = -ENODEV;
+		goto err_devfs_create;
+	}
+
 	at24->nvmem = nvmem_register(&at24->nvmem_config);
 	err = PTR_ERR_OR_ZERO(at24->nvmem);
 	if (err)
-- 
2.47.3




More information about the barebox mailing list