On Tue, Jun 26, 2018 at 07:11:54AM +0000, Chiang, AlanX wrote: > Hi Sakari, > > > -----Original Message----- > > From: Sakari Ailus [mailto:sakari.ailus@xxxxxxxxxxxxxxx] > > Sent: Tuesday, June 26, 2018 2:48 PM > > To: Chiang, AlanX <alanx.chiang@xxxxxxxxx> > > Cc: linux-i2c@xxxxxxxxxxxxxxx; Yeh, Andy <andy.yeh@xxxxxxxxx>; > > Shevchenko, Andriy <andriy.shevchenko@xxxxxxxxx>; Mani, Rajmohan > > <rajmohan.mani@xxxxxxxxx>; andy.shevchenko@xxxxxxxxx; brgl@xxxxxxxx; > > robh+dt@xxxxxxxxxx; mark.rutland@xxxxxxx; arnd@xxxxxxxx; > > gregkh@xxxxxxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx > > Subject: Re: [PATCH v2 2/2] eeprom: at24: Add support for address-width > > property > > > > Hi Alan, > > > > On Tue, Jun 26, 2018 at 02:22:08PM +0800, alanx.chiang@xxxxxxxxx wrote: > > > From: "alanx.chiang" <alanx.chiang@xxxxxxxxx> > > > > > > Provide a flexible way to determine the addressing bits of eeprom. > > > Pass the addressing bits to driver through address-width property. > > > > > > Signed-off-by: Alan Chiang <alanx.chiang@xxxxxxxxx> > > > Signed-off-by: Andy Yeh <andy.yeh@xxxxxxxxx> > > > > > > --- > > > since v1 > > > -- Add a warn message for 8-bit addressing. > > > > > > --- > > > drivers/misc/eeprom/at24.c | 16 ++++++++++++++++ > > > 1 file changed, 16 insertions(+) > > > > > > diff --git a/drivers/misc/eeprom/at24.c b/drivers/misc/eeprom/at24.c > > > index 0c125f2..231afcd 100644 > > > --- a/drivers/misc/eeprom/at24.c > > > +++ b/drivers/misc/eeprom/at24.c > > > @@ -478,6 +478,22 @@ static void at24_properties_to_pdata(struct device > > *dev, > > > if (device_property_present(dev, "no-read-rollover")) > > > chip->flags |= AT24_FLAG_NO_RDROL; > > > > > > + err = device_property_read_u32(dev, "address-width", &val); > > > + if (!err) { > > > + switch (val) { > > > + case 8: > > > + chip->flags &= ~AT24_FLAG_ADDR16; > > > + dev_warn(dev, "address-width is 8, clear the ADD16 > > bit\n"); > > > > Even though the default is 8 address bits, I don't see a need to issue a > > warning if the address-width property sets that to 8 explicitly. I.e. only warn > > if the flag was set. > > > > Do you mean I have to add a statement for checking if the bit has been set before? > For example: > > If (chip->flags & AT24_FLAG_ADDR16) > dev_warn(dev, "address-width is 8, clear the ADD16 bit\n"); > > If it is, I would like to modify it as below: > > case 8: > If (chip->flags & AT24_FLAG_ADDR16) { > chip->flags &= ~AT24_FLAG_ADDR16; > dev_warn(dev, "address-width is 8, clear the ADDR16 bit\n"); > } > break; Seems good to me. -- Sakari Ailus sakari.ailus@xxxxxxxxxxxxxxx