mirror of
https://github.com/Fishwaldo/u-boot.git
synced 2025-03-18 13:11:31 +00:00
i2c: Fix pca953x endianess issue
By reading 2 consecutive bytes from i2c to an u16 value we have an endianess issue. Signed-off-by: Dirk Eibach <dirk.eibach@gdsys.cc>
This commit is contained in:
parent
37b33254c2
commit
daa75b3482
1 changed files with 3 additions and 1 deletions
|
@ -88,8 +88,10 @@ static int pca953x_reg_write(uint8_t chip, uint addr, uint mask, uint data)
|
|||
if (i2c_read(chip, addr << 1, 1, (u8*)&valw, 2))
|
||||
return -1;
|
||||
|
||||
valw = le16_to_cpu(valw);
|
||||
valw &= ~mask;
|
||||
valw |= data;
|
||||
valw = cpu_to_le16(valw);
|
||||
|
||||
return i2c_write(chip, addr << 1, 1, (u8*)&valw, 2);
|
||||
}
|
||||
|
@ -107,7 +109,7 @@ static int pca953x_reg_read(uint8_t chip, uint addr, uint *data)
|
|||
} else {
|
||||
if (i2c_read(chip, addr << 1, 1, (u8*)&valw, 2))
|
||||
return -1;
|
||||
*data = (int)valw;
|
||||
*data = (uint)le16_to_cpu(valw);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue