> -----Original Message-----
> From: Cédric Le Goater <c...@kaod.org>
> Sent: Monday, March 4, 2024 10:32 PM
> To: Jamin Lin <jamin_...@aspeedtech.com>; Peter Maydell
> <peter.mayd...@linaro.org>; Andrew Jeffery <and...@codeconstruct.com.au>;
> Joel Stanley <j...@jms.id.au>; Alistair Francis <alist...@alistair23.me>; open
> list:ASPEED BMCs <qemu-...@nongnu.org>; open list:All patches CC here
> <qemu-devel@nongnu.org>
> Cc: Troy Lee <troy_...@aspeedtech.com>; Yunlin Tang
> <yunlin.t...@aspeedtech.com>
> Subject: Re: [PATCH v2 1/9] aspeed/wdt: Add AST2700 support
>
> Hello Jamin,
>
> On 3/4/24 10:29, Jamin Lin wrote:
> > AST2700 wdt controller is similiar to AST2600's wdt, but the AST2700
> > has 8 watchdogs, and they each have a 0x80 of registers.
>
> ... they each have 0x80 registers.
>
> > Introduce ast2700 object class and increse the number of regs(offset)
> > of
>
> .. increase ...
>
> > ast2700 model.
> >
> > Signed-off-by: Troy Lee <troy_...@aspeedtech.com>
> > Signed-off-by: Jamin Lin <jamin_...@aspeedtech.com>
>
Thanks for review and typo will be fixed in V3 patch series.
Jamin
>
> Reviewed-by: Cédric Le Goater <c...@kaod.org>
>
> Thanks,
>
> C.
>
>
> > ---
> > hw/watchdog/wdt_aspeed.c | 24 ++++++++++++++++++++++++
> > include/hw/watchdog/wdt_aspeed.h | 3 ++-
> > 2 files changed, 26 insertions(+), 1 deletion(-)
> >
> > diff --git a/hw/watchdog/wdt_aspeed.c b/hw/watchdog/wdt_aspeed.c index
> > d70b656f8e..75685c5647 100644
> > --- a/hw/watchdog/wdt_aspeed.c
> > +++ b/hw/watchdog/wdt_aspeed.c
> > @@ -422,12 +422,36 @@ static const TypeInfo aspeed_1030_wdt_info = {
> > .class_init = aspeed_1030_wdt_class_init,
> > };
> >
> > +static void aspeed_2700_wdt_class_init(ObjectClass *klass, void
> > +*data) {
> > + DeviceClass *dc = DEVICE_CLASS(klass);
> > + AspeedWDTClass *awc = ASPEED_WDT_CLASS(klass);
> > +
> > + dc->desc = "ASPEED 2700 Watchdog Controller";
> > + awc->iosize = 0x80;
> > + awc->ext_pulse_width_mask = 0xfffff; /* TODO */
> > + awc->reset_ctrl_reg = AST2600_SCU_RESET_CONTROL1;
> > + awc->reset_pulse = aspeed_2500_wdt_reset_pulse;
> > + awc->wdt_reload = aspeed_wdt_reload_1mhz;
> > + awc->sanitize_ctrl = aspeed_2600_sanitize_ctrl;
> > + awc->default_status = 0x014FB180;
> > + awc->default_reload_value = 0x014FB180; }
> > +
> > +static const TypeInfo aspeed_2700_wdt_info = {
> > + .name = TYPE_ASPEED_2700_WDT,
> > + .parent = TYPE_ASPEED_WDT,
> > + .instance_size = sizeof(AspeedWDTState),
> > + .class_init = aspeed_2700_wdt_class_init, };
> > +
> > static void wdt_aspeed_register_types(void)
> > {
> > type_register_static(&aspeed_wdt_info);
> > type_register_static(&aspeed_2400_wdt_info);
> > type_register_static(&aspeed_2500_wdt_info);
> > type_register_static(&aspeed_2600_wdt_info);
> > + type_register_static(&aspeed_2700_wdt_info);
> > type_register_static(&aspeed_1030_wdt_info);
> > }
> >
> > diff --git a/include/hw/watchdog/wdt_aspeed.h
> > b/include/hw/watchdog/wdt_aspeed.h
> > index e90ef86651..830b0a7936 100644
> > --- a/include/hw/watchdog/wdt_aspeed.h
> > +++ b/include/hw/watchdog/wdt_aspeed.h
> > @@ -19,9 +19,10 @@ OBJECT_DECLARE_TYPE(AspeedWDTState,
> AspeedWDTClass, ASPEED_WDT)
> > #define TYPE_ASPEED_2400_WDT TYPE_ASPEED_WDT "-ast2400"
> > #define TYPE_ASPEED_2500_WDT TYPE_ASPEED_WDT "-ast2500"
> > #define TYPE_ASPEED_2600_WDT TYPE_ASPEED_WDT "-ast2600"
> > +#define TYPE_ASPEED_2700_WDT TYPE_ASPEED_WDT "-ast2700"
> > #define TYPE_ASPEED_1030_WDT TYPE_ASPEED_WDT "-ast1030"
> >
> > -#define ASPEED_WDT_REGS_MAX (0x30 / 4)
> > +#define ASPEED_WDT_REGS_MAX (0x80 / 4)
> >
> > struct AspeedWDTState {
> > /*< private >*/