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

Reply via email to