Revision 142593c9 hw/arm/digic.c
b/hw/arm/digic.c | ||
---|---|---|
24 | 24 |
|
25 | 25 |
#define DIGIC4_TIMER_BASE(n) (0xc0210000 + (n) * 0x100) |
26 | 26 |
|
27 |
#define DIGIC_UART_BASE 0xc0800000 |
|
28 |
|
|
27 | 29 |
static void digic_init(Object *obj) |
28 | 30 |
{ |
29 | 31 |
DigicState *s = DIGIC(obj); |
... | ... | |
43 | 45 |
snprintf(name, DIGIC_TIMER_NAME_MLEN, "timer[%d]", i); |
44 | 46 |
object_property_add_child(obj, name, OBJECT(&s->timer[i]), NULL); |
45 | 47 |
} |
48 |
|
|
49 |
object_initialize(&s->uart, sizeof(s->uart), TYPE_DIGIC_UART); |
|
50 |
dev = DEVICE(&s->uart); |
|
51 |
qdev_set_parent_bus(dev, sysbus_get_default()); |
|
52 |
object_property_add_child(obj, "uart", OBJECT(&s->uart), NULL); |
|
46 | 53 |
} |
47 | 54 |
|
48 | 55 |
static void digic_realize(DeviceState *dev, Error **errp) |
... | ... | |
74 | 81 |
sbd = SYS_BUS_DEVICE(&s->timer[i]); |
75 | 82 |
sysbus_mmio_map(sbd, 0, DIGIC4_TIMER_BASE(i)); |
76 | 83 |
} |
84 |
|
|
85 |
object_property_set_bool(OBJECT(&s->uart), true, "realized", &err); |
|
86 |
if (err != NULL) { |
|
87 |
error_propagate(errp, err); |
|
88 |
return; |
|
89 |
} |
|
90 |
|
|
91 |
sbd = SYS_BUS_DEVICE(&s->uart); |
|
92 |
sysbus_mmio_map(sbd, 0, DIGIC_UART_BASE); |
|
77 | 93 |
} |
78 | 94 |
|
79 | 95 |
static void digic_class_init(ObjectClass *oc, void *data) |
Also available in: Unified diff