From: Chris Rauer<[email protected]>
Add a model for the Synopsys DesignWare Advanced I2C/SMBus Controller
with sufficient functionality to be used by the Linux Designware I2C
platform driver.
This IP is used in the Tenstorrent Atlantis RISC-V SoC and will be
added to the QEMU tt-atlantis machine.
Reviewed-by: Hao Wu<[email protected]>
Signed-off-by: Chris Rauer<[email protected]>
Link:https://lore.kernel.org/qemu-devel/[email protected]
[jms: rebase and minor build fixes for class_init and reset callback]
[npiggin: changelog, code cleanups and fixes as-per below link]
Link:https://lore.kernel.org/qemu-devel/[email protected]
Signed-off-by: Joel Stanley<[email protected]>
Signed-off-by: Nicholas Piggin<[email protected]>
Acked-by: Alistair Francis<[email protected]>
Reviewed-by: Philippe Mathieu-Daudé<[email protected]>
Acked-by: Corey Minyard<[email protected]>
---
This is a re-submission of the model with Chris' permission, with
changes to rebase, update to QEMU register API, several other
code improvements, fixes, and cleanups from reviews from Alistair,
Phil, and others.
Thanks,
Nick
---
MAINTAINERS | 8 +
hw/i2c/Kconfig | 5 +
hw/i2c/designware_i2c.c | 742 ++++++++++++++++++++++++++++++++
hw/i2c/meson.build | 1 +
hw/i2c/trace-events | 4 +
include/hw/i2c/designware_i2c.h | 56 +++
roms/seabios-hppa | 2 +-
7 files changed, 817 insertions(+), 1 deletion(-)
create mode 100644 hw/i2c/designware_i2c.c
create mode 100644 include/hw/i2c/designware_i2c.h
Hi,
I tested this series with i2c-tools under the v6.18 kernel driver.
All basic I2C operations work correctly, including:
- i2cdetect
- i2cset (single and multiple byte mode)
- i2cget (single and multiple byte mode)
- i2ctransfer (single and multiple mode)
Best Regards,
Alano.
Tested-by: Alano Song<[email protected]>