Hello Joe,
On 3/31/22 06:32, Joe Komlodi wrote:
Hi all,
This series migrates the Aspeed I2C controller to use the register API,
I like the idea but it's an earthquake in the I2C model and they are other
patchsets on the way. Let's wait a bit before changing it all.
and then adds new mode support.
New mode has some behavior changes and a register layout change compared
to old mode.
Troy sent a similar proposal. Did you have a look ?
http://patchwork.ozlabs.org/project/qemu-devel/list/?series=291804
Thanks,
C.
The series starts by adding "shared field" macros to help simplify logic
when adding new mode.
Generally, the macros are to be used in cases where register locations
change depending on what mode a peripheral is operating in, but
the fields in those registers have the same offsets.
Specifically, this happens very frequently with new and old I2C modes on
Aspeed I2C.
After that we migrate over to the register API and then add new mode
support.
Thanks!
Joe
Joe Komlodi (7):
hw/registerfields: Add shared fields macros
aspeed: i2c: Add ctrl_global_rsvd property
aspeed: i2c: Migrate to registerfields API
aspeed: i2c: Use reg array instead of individual vars
aspeed: i2c: Add new mode support
aspeed: i2c: Add PKT_DONE IRQ to trace
aspeed: i2c: Move regs and helpers to header file
hw/arm/aspeed_ast2600.c | 2 +
hw/i2c/aspeed_i2c.c | 792 ++++++++++++++++++++++--------------
hw/i2c/trace-events | 2 +-
include/hw/i2c/aspeed_i2c.h | 282 ++++++++++++-
include/hw/registerfields.h | 70 ++++
5 files changed, 828 insertions(+), 320 deletions(-)