Hi Simon, Heiko > From: Aaron Durbin <adur...@chromium.org> > > The current pmic i2c code assumes the current i2c bus is > the same as the pmic device's bus. There is nothing ensuring > that to be true. Therefore, select the proper bus before performing > a transaction. > > Signed-off-by: Aaron Durbin <adur...@chromium.org> > Signed-off-by: Simon Glass <s...@chromium.org> > Reviewed-by: Simon Glass <s...@chromium.org> > --- > > drivers/power/power_i2c.c | 4 ++++ > 1 file changed, 4 insertions(+) > > diff --git a/drivers/power/power_i2c.c b/drivers/power/power_i2c.c > index ac76870..594cd11 100644 > --- a/drivers/power/power_i2c.c > +++ b/drivers/power/power_i2c.c > @@ -23,6 +23,8 @@ int pmic_reg_write(struct pmic *p, u32 reg, u32 val) > if (check_reg(p, reg)) > return -1; > > + I2C_SET_BUS(p->bus); > +
Hadn't we had a discussion about this explicit setting of I2C some time ago? I thought that this problem was solved within the I2C rework. Also I might be wrong, so please correct me if I'm wrong. Isn't the I2C_SET_BUS() macro regarded as a obsolete after the I2C rework? > switch (pmic_i2c_tx_num) { > case 3: > if (p->sensor_byte_order == > PMIC_SENSOR_BYTE_ORDER_BIG) { @@ -66,6 +68,8 @@ int > pmic_reg_read(struct pmic *p, u32 reg, u32 *val) if (check_reg(p, > reg)) return -1; > > + I2C_SET_BUS(p->bus); > + > if (i2c_read(pmic_i2c_addr, reg, 1, buf, pmic_i2c_tx_num)) > return -1; > -- Best regards, Lukasz Majewski Samsung R&D Institute Poland (SRPOL) | Linux Platform Group _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot