mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-25 06:00:43 +00:00
mxc_i2c: change slave addr if conflicts with destination.
The i2c controller cannot be both master and slave in the same transaction. Signed-off-by: Troy Kisky <troy.kisky@boundarydevices.com>
This commit is contained in:
parent
90a5b70f59
commit
ca741da106
1 changed files with 2 additions and 0 deletions
|
@ -223,6 +223,8 @@ static int i2c_init_transfer(struct mxc_i2c_regs *i2c_regs,
|
|||
/* Wait for controller to be stable */
|
||||
udelay(50);
|
||||
}
|
||||
if (readb(&i2c_regs->iadr) == (chip << 1))
|
||||
writeb((chip << 1) ^ 2, &i2c_regs->iadr);
|
||||
writeb(0, &i2c_regs->i2sr);
|
||||
ret = wait_for_sr_state(i2c_regs, ST_BUS_IDLE);
|
||||
if (ret < 0)
|
||||
|
|
Loading…
Reference in a new issue