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(-)
>