hw/i2c: Remove confusing i2c_send_recv()
We replaced all the i2c_send_recv() calls by the clearer i2c_recv() and i2c_send(), so we can remove this confusing API. Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Acked-by: Corey Minyard <cminyard@mvista.com> Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org> Signed-off-by: Corey Minyard <cminyard@mvista.com>
This commit is contained in:
parent
cbecd9f822
commit
2038a2907c
@ -188,50 +188,42 @@ void i2c_end_transfer(I2CBus *bus)
|
||||
bus->broadcast = false;
|
||||
}
|
||||
|
||||
int i2c_send_recv(I2CBus *bus, uint8_t *data, bool send)
|
||||
int i2c_send(I2CBus *bus, uint8_t data)
|
||||
{
|
||||
I2CSlaveClass *sc;
|
||||
I2CSlave *s;
|
||||
I2CNode *node;
|
||||
int ret = 0;
|
||||
|
||||
if (send) {
|
||||
QLIST_FOREACH(node, &bus->current_devs, next) {
|
||||
s = node->elt;
|
||||
sc = I2C_SLAVE_GET_CLASS(s);
|
||||
if (sc->send) {
|
||||
trace_i2c_send(s->address, *data);
|
||||
ret = ret || sc->send(s, *data);
|
||||
} else {
|
||||
ret = -1;
|
||||
}
|
||||
QLIST_FOREACH(node, &bus->current_devs, next) {
|
||||
s = node->elt;
|
||||
sc = I2C_SLAVE_GET_CLASS(s);
|
||||
if (sc->send) {
|
||||
trace_i2c_send(s->address, data);
|
||||
ret = ret || sc->send(s, data);
|
||||
} else {
|
||||
ret = -1;
|
||||
}
|
||||
return ret ? -1 : 0;
|
||||
} else {
|
||||
ret = 0xff;
|
||||
if (!QLIST_EMPTY(&bus->current_devs) && !bus->broadcast) {
|
||||
sc = I2C_SLAVE_GET_CLASS(QLIST_FIRST(&bus->current_devs)->elt);
|
||||
if (sc->recv) {
|
||||
s = QLIST_FIRST(&bus->current_devs)->elt;
|
||||
ret = sc->recv(s);
|
||||
trace_i2c_recv(s->address, ret);
|
||||
}
|
||||
}
|
||||
*data = ret;
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
int i2c_send(I2CBus *bus, uint8_t data)
|
||||
{
|
||||
return i2c_send_recv(bus, &data, true);
|
||||
return ret ? -1 : 0;
|
||||
}
|
||||
|
||||
uint8_t i2c_recv(I2CBus *bus)
|
||||
{
|
||||
uint8_t data = 0xff;
|
||||
I2CSlaveClass *sc;
|
||||
I2CSlave *s;
|
||||
|
||||
if (!QLIST_EMPTY(&bus->current_devs) && !bus->broadcast) {
|
||||
sc = I2C_SLAVE_GET_CLASS(QLIST_FIRST(&bus->current_devs)->elt);
|
||||
if (sc->recv) {
|
||||
s = QLIST_FIRST(&bus->current_devs)->elt;
|
||||
data = sc->recv(s);
|
||||
trace_i2c_recv(s->address, data);
|
||||
}
|
||||
}
|
||||
|
||||
i2c_send_recv(bus, &data, false);
|
||||
return data;
|
||||
}
|
||||
|
||||
|
@ -84,7 +84,6 @@ int i2c_bus_busy(I2CBus *bus);
|
||||
int i2c_start_transfer(I2CBus *bus, uint8_t address, int recv);
|
||||
void i2c_end_transfer(I2CBus *bus);
|
||||
void i2c_nack(I2CBus *bus);
|
||||
int i2c_send_recv(I2CBus *bus, uint8_t *data, bool send);
|
||||
int i2c_send(I2CBus *bus, uint8_t data);
|
||||
uint8_t i2c_recv(I2CBus *bus);
|
||||
bool i2c_scan_bus(I2CBus *bus, uint8_t address, bool broadcast,
|
||||
|
Loading…
Reference in New Issue
Block a user