Message ID | 20220322025154.3989-6-jamin_lin@aspeedtech.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Add support for AST1030 SoC | expand |
On 3/22/22 03:51, Jamin Lin wrote: > From: Steven Lee <steven_lee@aspeedtech.com> > > ast1030 tmc(timer controller) is identical to ast2600 tmc. > > Signed-off-by: Troy Lee <troy_lee@aspeedtech.com> > Signed-off-by: Jamin Lin <jamin_lin@aspeedtech.com> > Signed-off-by: Steven Lee <steven_lee@aspeedtech.com> Reviewed-by: Cédric Le Goater <clg@kaod.org> Thanks, C. > --- > hw/timer/aspeed_timer.c | 17 +++++++++++++++++ > include/hw/timer/aspeed_timer.h | 1 + > 2 files changed, 18 insertions(+) > > diff --git a/hw/timer/aspeed_timer.c b/hw/timer/aspeed_timer.c > index 42c47d2ce6..9c20b3d6ad 100644 > --- a/hw/timer/aspeed_timer.c > +++ b/hw/timer/aspeed_timer.c > @@ -745,12 +745,29 @@ static const TypeInfo aspeed_2600_timer_info = { > .class_init = aspeed_2600_timer_class_init, > }; > > +static void aspeed_1030_timer_class_init(ObjectClass *klass, void *data) > +{ > + DeviceClass *dc = DEVICE_CLASS(klass); > + AspeedTimerClass *awc = ASPEED_TIMER_CLASS(klass); > + > + dc->desc = "ASPEED 1030 Timer"; > + awc->read = aspeed_2600_timer_read; > + awc->write = aspeed_2600_timer_write; > +} > + > +static const TypeInfo aspeed_1030_timer_info = { > + .name = TYPE_ASPEED_1030_TIMER, > + .parent = TYPE_ASPEED_TIMER, > + .class_init = aspeed_1030_timer_class_init, > +}; > + > static void aspeed_timer_register_types(void) > { > type_register_static(&aspeed_timer_info); > type_register_static(&aspeed_2400_timer_info); > type_register_static(&aspeed_2500_timer_info); > type_register_static(&aspeed_2600_timer_info); > + type_register_static(&aspeed_1030_timer_info); > } > > type_init(aspeed_timer_register_types) > diff --git a/include/hw/timer/aspeed_timer.h b/include/hw/timer/aspeed_timer.h > index d36034a10c..07dc6b6f2c 100644 > --- a/include/hw/timer/aspeed_timer.h > +++ b/include/hw/timer/aspeed_timer.h > @@ -31,6 +31,7 @@ OBJECT_DECLARE_TYPE(AspeedTimerCtrlState, AspeedTimerClass, ASPEED_TIMER) > #define TYPE_ASPEED_2400_TIMER TYPE_ASPEED_TIMER "-ast2400" > #define TYPE_ASPEED_2500_TIMER TYPE_ASPEED_TIMER "-ast2500" > #define TYPE_ASPEED_2600_TIMER TYPE_ASPEED_TIMER "-ast2600" > +#define TYPE_ASPEED_1030_TIMER TYPE_ASPEED_TIMER "-ast1030" > > #define ASPEED_TIMER_NR_TIMERS 8 >
diff --git a/hw/timer/aspeed_timer.c b/hw/timer/aspeed_timer.c index 42c47d2ce6..9c20b3d6ad 100644 --- a/hw/timer/aspeed_timer.c +++ b/hw/timer/aspeed_timer.c @@ -745,12 +745,29 @@ static const TypeInfo aspeed_2600_timer_info = { .class_init = aspeed_2600_timer_class_init, }; +static void aspeed_1030_timer_class_init(ObjectClass *klass, void *data) +{ + DeviceClass *dc = DEVICE_CLASS(klass); + AspeedTimerClass *awc = ASPEED_TIMER_CLASS(klass); + + dc->desc = "ASPEED 1030 Timer"; + awc->read = aspeed_2600_timer_read; + awc->write = aspeed_2600_timer_write; +} + +static const TypeInfo aspeed_1030_timer_info = { + .name = TYPE_ASPEED_1030_TIMER, + .parent = TYPE_ASPEED_TIMER, + .class_init = aspeed_1030_timer_class_init, +}; + static void aspeed_timer_register_types(void) { type_register_static(&aspeed_timer_info); type_register_static(&aspeed_2400_timer_info); type_register_static(&aspeed_2500_timer_info); type_register_static(&aspeed_2600_timer_info); + type_register_static(&aspeed_1030_timer_info); } type_init(aspeed_timer_register_types) diff --git a/include/hw/timer/aspeed_timer.h b/include/hw/timer/aspeed_timer.h index d36034a10c..07dc6b6f2c 100644 --- a/include/hw/timer/aspeed_timer.h +++ b/include/hw/timer/aspeed_timer.h @@ -31,6 +31,7 @@ OBJECT_DECLARE_TYPE(AspeedTimerCtrlState, AspeedTimerClass, ASPEED_TIMER) #define TYPE_ASPEED_2400_TIMER TYPE_ASPEED_TIMER "-ast2400" #define TYPE_ASPEED_2500_TIMER TYPE_ASPEED_TIMER "-ast2500" #define TYPE_ASPEED_2600_TIMER TYPE_ASPEED_TIMER "-ast2600" +#define TYPE_ASPEED_1030_TIMER TYPE_ASPEED_TIMER "-ast1030" #define ASPEED_TIMER_NR_TIMERS 8