Hi Adam,

> > +   if (i2c_check_functionality(i2c->adapter, I2C_FUNC_I2C)) {
> > +           dev_info(da9063->dev, "I2C mode");
> > +           busmode = 0;
> > +   } else {
> > +           dev_info(da9063->dev, "SMBus mode");
> > +           busmode = 1;
> 
> I think this should be 'DA9063_TWOWIRE_TO' rather than '1' otherwise I think
> you'll be setting 0 still here as it doesn't match up with the mask.

You are right. We need to fix this and send a new patch.

> > +   }
> > +   ret = regmap_update_bits(da9063->regmap,
> DA9063_REG_CONFIG_J,
> > +           DA9063_TWOWIRE_TO, busmode);
> > +   if (ret < 0) {
> > +           dev_err(da9063->dev, "Failed to set 2-wire bus mode.\n");
> > +           return -EIO;
> > +   }
> > +
> >     return da9063_device_init(da9063, i2c->irq);  }
> >
> > diff --git a/include/linux/mfd/da9063/registers.h
> > b/include/linux/mfd/da9063/registers.h
> > index 1dbabf1b3cb8..6e0f66a2e727 100644
> > --- a/include/linux/mfd/da9063/registers.h
> > +++ b/include/linux/mfd/da9063/registers.h
> > @@ -1037,6 +1037,9 @@
> >  #define            DA9063_NONKEY_PIN_AUTODOWN      0x02
> >  #define            DA9063_NONKEY_PIN_AUTOFLPRT     0x03
> >
> > +/* DA9063_REG_CONFIG_J (addr=0x10F) */
> > +#define DA9063_TWOWIRE_TO                  0x40
> > +
> >  /* DA9063_REG_MON_REG_5 (addr=0x116) */
> >  #define DA9063_MON_A8_IDX_MASK                     0x07
> >  #define            DA9063_MON_A8_IDX_NONE          0x00
> > --
> > 2.25.1

Cheers,
Mark

Reply via email to