Hi all, This series migrates the Aspeed I2C controller to use the register API, and then adds new mode support.
New mode has some behavior changes and a register layout change compared to old mode. 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(-) -- 2.35.1.1021.g381101b075-goog