diff options
Diffstat (limited to 'chip/mec1322/i2c.c')
-rw-r--r-- | chip/mec1322/i2c.c | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/chip/mec1322/i2c.c b/chip/mec1322/i2c.c index d5c3692b3f..4920070432 100644 --- a/chip/mec1322/i2c.c +++ b/chip/mec1322/i2c.c @@ -236,7 +236,9 @@ static inline void push_in_buf(uint8_t **in, uint8_t val, int skip) } } -int chip_i2c_xfer(int port, int slave_addr, const uint8_t *out, int out_size, +int chip_i2c_xfer__7bf(const int port, + const uint16_t slave_addr__7bf, + const uint8_t *out, int out_size, uint8_t *in, int in_size, int flags) { int i; @@ -284,7 +286,9 @@ int chip_i2c_xfer(int port, int slave_addr, const uint8_t *out, int out_size, if (out_size) { if (send_start) { - MEC1322_I2C_DATA(controller) = (uint8_t)slave_addr; + MEC1322_I2C_DATA(controller) = + (uint8_t)(I2C_GET_ADDR__7b(slave_addr__7bf) + << 1); /* Clock out the slave address, sending START bit */ MEC1322_I2C_CTRL(controller) = CTRL_PIN | CTRL_ESO | @@ -327,8 +331,10 @@ int chip_i2c_xfer(int port, int slave_addr, const uint8_t *out, int out_size, CTRL_ACK | CTRL_ENI; - MEC1322_I2C_DATA(controller) = (uint8_t)slave_addr - | 0x01; + MEC1322_I2C_DATA(controller) = + (uint8_t)(I2C_GET_ADDR__7b(slave_addr__7bf) + << 1) + | 0x01; /* New transaction case, clock out slave address. */ if (cdata[controller].transaction_state == |