Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a238dcfa authored by Taras Kondratiuk's avatar Taras Kondratiuk Committed by Wolfram Sang
Browse files

i2c: davinci: raw read and write endian fix



I2C IP block expect LE data, but CPU may operate in BE mode.
Need to use endian neutral functions to read/write h/w registers.
I.e instead of __raw_read[lw] and __raw_write[lw] functions code
need to use read[lw]_relaxed and write[lw]_relaxed functions.
If the first simply reads/writes register, the second will byteswap
it if host operates in BE mode.

Changes are trivial sed like replacement of __raw_xxx functions
with xxx_relaxed variant.

Signed-off-by: default avatarTaras Kondratiuk <taras.kondratiuk@linaro.org>
Reviewed-by: default avatarGrygorii Strashko <grygorii.strashko@ti.com>
Signed-off-by: default avatarWolfram Sang <wsa@the-dreams.de>
parent 6ce4eac1
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -125,12 +125,12 @@ static struct davinci_i2c_platform_data davinci_i2c_platform_data_default = {
static inline void davinci_i2c_write_reg(struct davinci_i2c_dev *i2c_dev,
					 int reg, u16 val)
{
	__raw_writew(val, i2c_dev->base + reg);
	writew_relaxed(val, i2c_dev->base + reg);
}

static inline u16 davinci_i2c_read_reg(struct davinci_i2c_dev *i2c_dev, int reg)
{
	return __raw_readw(i2c_dev->base + reg);
	return readw_relaxed(i2c_dev->base + reg);
}

/* Generate a pulse on the i2c clock pin. */