hw/i2c: add asynchronous send
commita78e9839ae5eb0b95d9db8dd672e2977d2831605
authorKlaus Jensen <k.jensen@samsung.com>
Thu, 30 Jun 2022 07:21:14 +0000 (30 09:21 +0200)
committerCédric Le Goater <clg@kaod.org>
Thu, 30 Jun 2022 07:21:14 +0000 (30 09:21 +0200)
tree1c0d7b678c12f55dd03ff41dc850578d29409be8
parent37fa5ca42623ef08ac99c8d927b6a3af0c76dc7b
hw/i2c: add asynchronous send

Add an asynchronous version of i2c_send() that requires the slave to
explicitly acknowledge on the bus with i2c_ack().

The current master must use the new i2c_start_send_async() to indicate
that it wants to do an asynchronous transfer. This allows the i2c core
to check if the target slave supports this or not. This approach relies
on adding a new enum i2c_event member, which is why a bunch of other
devices needs changes in their event handling switches.

Signed-off-by: Klaus Jensen <k.jensen@samsung.com>
Message-Id: <20220601210831.67259-5-its@irrelevant.dk>
Signed-off-by: Cédric Le Goater <clg@kaod.org>
Message-Id: <20220630045133.32251-6-me@pjd.dev>
Signed-off-by: Cédric Le Goater <clg@kaod.org>
hw/arm/pxa2xx.c
hw/display/sii9022.c
hw/display/ssd0303.c
hw/i2c/core.c
hw/i2c/smbus_slave.c
hw/i2c/trace-events
hw/nvram/eeprom_at24c.c
hw/sensor/lsm303dlhc_mag.c
include/hw/i2c/i2c.h