mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-06 09:13:55 -06:00
hw/arm: Add watchdog timer to Allwinner H40 and Bananapi board
Add watchdog timer support to Allwinner-H40 and Bananapi. The watchdog timer is added as an overlay to the Timer module memory map. Signed-off-by: Guenter Roeck <linux@roeck-us.net> Reviewed-by: Strahinja Jankovic <strahinja.p.jankovic@gmail.com> Message-id: 20240115182757.1095012-4-linux@roeck-us.net Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
parent
2a02da74f2
commit
2af71d28e7
4 changed files with 13 additions and 1 deletions
|
@ -411,6 +411,7 @@ config ALLWINNER_R40
|
|||
select AHCI
|
||||
select ALLWINNER_SRAMC
|
||||
select ALLWINNER_A10_PIT
|
||||
select ALLWINNER_WDT
|
||||
select AXP2XX_PMU
|
||||
select SERIAL
|
||||
select ARM_TIMER
|
||||
|
|
|
@ -53,6 +53,7 @@ const hwaddr allwinner_r40_memmap[] = {
|
|||
[AW_R40_DEV_OHCI2] = 0x01c1c400,
|
||||
[AW_R40_DEV_CCU] = 0x01c20000,
|
||||
[AW_R40_DEV_PIT] = 0x01c20c00,
|
||||
[AW_R40_DEV_WDT] = 0x01c20c90,
|
||||
[AW_R40_DEV_UART0] = 0x01c28000,
|
||||
[AW_R40_DEV_UART1] = 0x01c28400,
|
||||
[AW_R40_DEV_UART2] = 0x01c28800,
|
||||
|
@ -279,6 +280,8 @@ static void allwinner_r40_init(Object *obj)
|
|||
object_property_add_alias(obj, "clk1-freq", OBJECT(&s->timer),
|
||||
"clk1-freq");
|
||||
|
||||
object_initialize_child(obj, "wdt", &s->wdt, TYPE_AW_WDT_SUN4I);
|
||||
|
||||
object_initialize_child(obj, "ccu", &s->ccu, TYPE_AW_R40_CCU);
|
||||
|
||||
for (int i = 0; i < AW_R40_NUM_MMCS; i++) {
|
||||
|
@ -545,6 +548,11 @@ static void allwinner_r40_realize(DeviceState *dev, Error **errp)
|
|||
sysbus_connect_irq(SYS_BUS_DEVICE(&s->emac), 0,
|
||||
qdev_get_gpio_in(DEVICE(&s->gic), AW_R40_GIC_SPI_EMAC));
|
||||
|
||||
/* WDT */
|
||||
sysbus_realize(SYS_BUS_DEVICE(&s->wdt), &error_fatal);
|
||||
sysbus_mmio_map_overlap(SYS_BUS_DEVICE(&s->wdt), 0,
|
||||
allwinner_r40_memmap[AW_R40_DEV_WDT], 1);
|
||||
|
||||
/* Unimplemented devices */
|
||||
for (unsigned i = 0; i < ARRAY_SIZE(r40_unimplemented); i++) {
|
||||
create_unimplemented_device(r40_unimplemented[i].device_name,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue