mirror of https://github.com/xemu-project/xemu.git
aspeed/wdt: Add AST2700 support
AST2700 wdt controller is similiar to AST2600's wdt, but the AST2700 has 8 watchdogs, and they each have 0x80 of registers. Introduce ast2700 object class and increase the number of regs(offset) of ast2700 model. Signed-off-by: Troy Lee <troy_lee@aspeedtech.com> Signed-off-by: Jamin Lin <jamin_lin@aspeedtech.com> Reviewed-by: Cédric Le Goater <clg@kaod.org>
This commit is contained in:
parent
ee48fef06c
commit
8db36a4f74
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
|
@ -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 >*/
|
||||
|
|
Loading…
Reference in New Issue