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

Sascha Hauer s.hauer at pengutronix.de
Mon Feb 23 01:15:53 PST 2026


On Wed, Feb 18, 2026 at 01:42:48PM +0100, Marco Felsch wrote:
> 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;

a return of -ENODEV from driver probe doesn't print an error. Is that
what we want here?

Sascha

> +		goto err_devfs_create;
> +	}
> +
>  	at24->nvmem = nvmem_register(&at24->nvmem_config);
>  	err = PTR_ERR_OR_ZERO(at24->nvmem);
>  	if (err)
> -- 
> 2.47.3
> 
> 
> 

-- 
Pengutronix e.K.                           |                             |
Steuerwalder Str. 21                       | http://www.pengutronix.de/  |
31137 Hildesheim, Germany                  | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |



More information about the barebox mailing list