|
@@ -99,7 +99,7 @@ static int octeon_i2c_wait(struct octeon_i2c *i2c)
|
|
|
|
|
|
static bool octeon_i2c_hlc_test_valid(struct octeon_i2c *i2c)
|
|
|
{
|
|
|
- return (__raw_readq(i2c->twsi_base + SW_TWSI) & SW_TWSI_V) == 0;
|
|
|
+ return (__raw_readq(i2c->twsi_base + SW_TWSI(i2c)) & SW_TWSI_V) == 0;
|
|
|
}
|
|
|
|
|
|
static bool octeon_i2c_hlc_test_ready(struct octeon_i2c *i2c, bool *first)
|
|
@@ -446,12 +446,12 @@ static int octeon_i2c_hlc_read(struct octeon_i2c *i2c, struct i2c_msg *msgs)
|
|
|
else
|
|
|
cmd |= SW_TWSI_OP_7;
|
|
|
|
|
|
- octeon_i2c_writeq_flush(cmd, i2c->twsi_base + SW_TWSI);
|
|
|
+ octeon_i2c_writeq_flush(cmd, i2c->twsi_base + SW_TWSI(i2c));
|
|
|
ret = octeon_i2c_hlc_wait(i2c);
|
|
|
if (ret)
|
|
|
goto err;
|
|
|
|
|
|
- cmd = __raw_readq(i2c->twsi_base + SW_TWSI);
|
|
|
+ cmd = __raw_readq(i2c->twsi_base + SW_TWSI(i2c));
|
|
|
if ((cmd & SW_TWSI_R) == 0)
|
|
|
return -EAGAIN;
|
|
|
|
|
@@ -459,7 +459,7 @@ static int octeon_i2c_hlc_read(struct octeon_i2c *i2c, struct i2c_msg *msgs)
|
|
|
msgs[0].buf[j] = (cmd >> (8 * i)) & 0xff;
|
|
|
|
|
|
if (msgs[0].len > 4) {
|
|
|
- cmd = __raw_readq(i2c->twsi_base + SW_TWSI_EXT);
|
|
|
+ cmd = __raw_readq(i2c->twsi_base + SW_TWSI_EXT(i2c));
|
|
|
for (i = 0; i < msgs[0].len - 4 && i < 4; i++, j--)
|
|
|
msgs[0].buf[j] = (cmd >> (8 * i)) & 0xff;
|
|
|
}
|
|
@@ -496,15 +496,15 @@ static int octeon_i2c_hlc_write(struct octeon_i2c *i2c, struct i2c_msg *msgs)
|
|
|
|
|
|
for (i = 0; i < msgs[0].len - 4 && i < 4; i++, j--)
|
|
|
ext |= (u64)msgs[0].buf[j] << (8 * i);
|
|
|
- octeon_i2c_writeq_flush(ext, i2c->twsi_base + SW_TWSI_EXT);
|
|
|
+ octeon_i2c_writeq_flush(ext, i2c->twsi_base + SW_TWSI_EXT(i2c));
|
|
|
}
|
|
|
|
|
|
- octeon_i2c_writeq_flush(cmd, i2c->twsi_base + SW_TWSI);
|
|
|
+ octeon_i2c_writeq_flush(cmd, i2c->twsi_base + SW_TWSI(i2c));
|
|
|
ret = octeon_i2c_hlc_wait(i2c);
|
|
|
if (ret)
|
|
|
goto err;
|
|
|
|
|
|
- cmd = __raw_readq(i2c->twsi_base + SW_TWSI);
|
|
|
+ cmd = __raw_readq(i2c->twsi_base + SW_TWSI(i2c));
|
|
|
if ((cmd & SW_TWSI_R) == 0)
|
|
|
return -EAGAIN;
|
|
|
|
|
@@ -539,19 +539,19 @@ static int octeon_i2c_hlc_comp_read(struct octeon_i2c *i2c, struct i2c_msg *msgs
|
|
|
cmd |= SW_TWSI_EIA;
|
|
|
ext = (u64)msgs[0].buf[0] << SW_TWSI_IA_SHIFT;
|
|
|
cmd |= (u64)msgs[0].buf[1] << SW_TWSI_IA_SHIFT;
|
|
|
- octeon_i2c_writeq_flush(ext, i2c->twsi_base + SW_TWSI_EXT);
|
|
|
+ octeon_i2c_writeq_flush(ext, i2c->twsi_base + SW_TWSI_EXT(i2c));
|
|
|
} else {
|
|
|
cmd |= (u64)msgs[0].buf[0] << SW_TWSI_IA_SHIFT;
|
|
|
}
|
|
|
|
|
|
octeon_i2c_hlc_int_clear(i2c);
|
|
|
- octeon_i2c_writeq_flush(cmd, i2c->twsi_base + SW_TWSI);
|
|
|
+ octeon_i2c_writeq_flush(cmd, i2c->twsi_base + SW_TWSI(i2c));
|
|
|
|
|
|
ret = octeon_i2c_hlc_wait(i2c);
|
|
|
if (ret)
|
|
|
goto err;
|
|
|
|
|
|
- cmd = __raw_readq(i2c->twsi_base + SW_TWSI);
|
|
|
+ cmd = __raw_readq(i2c->twsi_base + SW_TWSI(i2c));
|
|
|
if ((cmd & SW_TWSI_R) == 0)
|
|
|
return -EAGAIN;
|
|
|
|
|
@@ -559,7 +559,7 @@ static int octeon_i2c_hlc_comp_read(struct octeon_i2c *i2c, struct i2c_msg *msgs
|
|
|
msgs[1].buf[j] = (cmd >> (8 * i)) & 0xff;
|
|
|
|
|
|
if (msgs[1].len > 4) {
|
|
|
- cmd = __raw_readq(i2c->twsi_base + SW_TWSI_EXT);
|
|
|
+ cmd = __raw_readq(i2c->twsi_base + SW_TWSI_EXT(i2c));
|
|
|
for (i = 0; i < msgs[1].len - 4 && i < 4; i++, j--)
|
|
|
msgs[1].buf[j] = (cmd >> (8 * i)) & 0xff;
|
|
|
}
|
|
@@ -606,16 +606,16 @@ static int octeon_i2c_hlc_comp_write(struct octeon_i2c *i2c, struct i2c_msg *msg
|
|
|
set_ext = true;
|
|
|
}
|
|
|
if (set_ext)
|
|
|
- octeon_i2c_writeq_flush(ext, i2c->twsi_base + SW_TWSI_EXT);
|
|
|
+ octeon_i2c_writeq_flush(ext, i2c->twsi_base + SW_TWSI_EXT(i2c));
|
|
|
|
|
|
octeon_i2c_hlc_int_clear(i2c);
|
|
|
- octeon_i2c_writeq_flush(cmd, i2c->twsi_base + SW_TWSI);
|
|
|
+ octeon_i2c_writeq_flush(cmd, i2c->twsi_base + SW_TWSI(i2c));
|
|
|
|
|
|
ret = octeon_i2c_hlc_wait(i2c);
|
|
|
if (ret)
|
|
|
goto err;
|
|
|
|
|
|
- cmd = __raw_readq(i2c->twsi_base + SW_TWSI);
|
|
|
+ cmd = __raw_readq(i2c->twsi_base + SW_TWSI(i2c));
|
|
|
if ((cmd & SW_TWSI_R) == 0)
|
|
|
return -EAGAIN;
|
|
|
|