[U-Boot] [PATCH 04/10] power: Explicitly select pmic device's bus

Simon Glass
2014-03-30T00:17:32Z

Hi Lukasz,

On 27 March 2014 11:33, Lukasz Majewski <l.majewski@samsung.com> wrote:

> Hi Simon, Heiko
>
> > From: Aaron Durbin <adurbin@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 <adurbin@chromium.org>
> > Signed-off-by: Simon Glass <sjg@chromium.org>
> > Reviewed-by: Simon Glass <sjg@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?
>

Agreed that would be ideal, but we would have to pass the bus number of the
i2c_read/write() functions. I don't believe the i2c code has got that far
yet.

Unfortunately it doesn't work without this patch.

Regards,
Simon