[PATCH] eeprom: at24: verify that chip is accessible during probe
Marco Felsch
m.felsch at pengutronix.de
Mon Feb 23 03:22:13 PST 2026
On 26-02-23, Sascha Hauer wrote:
> On Mon, Feb 23, 2026 at 10:56:24AM +0100, Marco Felsch wrote:
> > On 26-02-23, Sascha Hauer wrote:
> > > 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?
> >
> > That's a good point, quickly checked the Linux implementation which
> > doesn't print an error too. However, you're right and we should print a
> > dev_err() or so here. Is this something you may add while applying or
> > shall I send a new v2?
>
> I can fix it up, but I wanted to push the thinking about the correct
> error code to you ;)
>
> How about returning the return value of at24_read()?
Ah now I got you :) Yeah we could do that to not cast the error provided
by at24_read().
I will send a new v2.
Regards,
Marco
>
> Sascha
>
> --
> 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 |
>
--
#gernperDu
#CallMeByMyFirstName
Pengutronix e.K. | |
Steuerwalder Str. 21 | https://www.pengutronix.de/ |
31137 Hildesheim, Germany | Phone: +49-5121-206917-0 |
Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-9 |
More information about the barebox
mailing list