mirror of
https://github.com/u-boot/u-boot.git
synced 2025-04-16 01:44:34 +00:00
rockchip: i2c: fix >32 byte writes
The special handling of the chip address and register address must only happen before we send the data buffer, otherwise we will end up inserting both of these every 32 bytes. Signed-off-by: John Keeping <john@metanate.com> Acked-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
parent
551288bd8b
commit
21d4b7d4e1
1 changed files with 2 additions and 2 deletions
|
@ -269,9 +269,9 @@ static int rk_i2c_write(struct rk_i2c *i2c, uchar chip, uint reg, uint r_len,
|
|||
if ((i * 4 + j) == bytes_xferred)
|
||||
break;
|
||||
|
||||
if (i == 0 && j == 0) {
|
||||
if (i == 0 && j == 0 && pbuf == buf) {
|
||||
txdata |= (chip << 1);
|
||||
} else if (i == 0 && j <= r_len) {
|
||||
} else if (i == 0 && j <= r_len && pbuf == buf) {
|
||||
txdata |= (reg &
|
||||
(0xff << ((j - 1) * 8))) << 8;
|
||||
} else {
|
||||
|
|
Loading…
Add table
Reference in a new issue