mirror of https://github.com/xqemu/xqemu.git
stellaris: QOM cast cleanup for stellaris_i2c_state
Introduce a type constant, use QOM casts, rename the parent field and prepare for QOM realize. Signed-off-by: Andreas Färber <afaerber@suse.de>
This commit is contained in:
parent
8ef1d3947e
commit
d94a40156b
|
@ -685,8 +685,13 @@ static int stellaris_sys_init(uint32_t base, qemu_irq irq,
|
||||||
|
|
||||||
/* I2C controller. */
|
/* I2C controller. */
|
||||||
|
|
||||||
|
#define TYPE_STELLARIS_I2C "stellaris-i2c"
|
||||||
|
#define STELLARIS_I2C(obj) \
|
||||||
|
OBJECT_CHECK(stellaris_i2c_state, (obj), TYPE_STELLARIS_I2C)
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
SysBusDevice busdev;
|
SysBusDevice parent_obj;
|
||||||
|
|
||||||
i2c_bus *bus;
|
i2c_bus *bus;
|
||||||
qemu_irq irq;
|
qemu_irq irq;
|
||||||
MemoryRegion iomem;
|
MemoryRegion iomem;
|
||||||
|
@ -859,21 +864,22 @@ static const VMStateDescription vmstate_stellaris_i2c = {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
static int stellaris_i2c_init(SysBusDevice * dev)
|
static int stellaris_i2c_init(SysBusDevice *sbd)
|
||||||
{
|
{
|
||||||
stellaris_i2c_state *s = FROM_SYSBUS(stellaris_i2c_state, dev);
|
DeviceState *dev = DEVICE(sbd);
|
||||||
|
stellaris_i2c_state *s = STELLARIS_I2C(dev);
|
||||||
i2c_bus *bus;
|
i2c_bus *bus;
|
||||||
|
|
||||||
sysbus_init_irq(dev, &s->irq);
|
sysbus_init_irq(sbd, &s->irq);
|
||||||
bus = i2c_init_bus(&dev->qdev, "i2c");
|
bus = i2c_init_bus(dev, "i2c");
|
||||||
s->bus = bus;
|
s->bus = bus;
|
||||||
|
|
||||||
memory_region_init_io(&s->iomem, OBJECT(s), &stellaris_i2c_ops, s,
|
memory_region_init_io(&s->iomem, OBJECT(s), &stellaris_i2c_ops, s,
|
||||||
"i2c", 0x1000);
|
"i2c", 0x1000);
|
||||||
sysbus_init_mmio(dev, &s->iomem);
|
sysbus_init_mmio(sbd, &s->iomem);
|
||||||
/* ??? For now we only implement the master interface. */
|
/* ??? For now we only implement the master interface. */
|
||||||
stellaris_i2c_reset(s);
|
stellaris_i2c_reset(s);
|
||||||
vmstate_register(&dev->qdev, -1, &vmstate_stellaris_i2c, s);
|
vmstate_register(dev, -1, &vmstate_stellaris_i2c, s);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1244,7 +1250,7 @@ static void stellaris_init(const char *kernel_filename, const char *cpu_model,
|
||||||
}
|
}
|
||||||
|
|
||||||
if (board->dc2 & (1 << 12)) {
|
if (board->dc2 & (1 << 12)) {
|
||||||
dev = sysbus_create_simple("stellaris-i2c", 0x40020000, pic[8]);
|
dev = sysbus_create_simple(TYPE_STELLARIS_I2C, 0x40020000, pic[8]);
|
||||||
i2c = (i2c_bus *)qdev_get_child_bus(dev, "i2c");
|
i2c = (i2c_bus *)qdev_get_child_bus(dev, "i2c");
|
||||||
if (board->peripherals & BP_OLED_I2C) {
|
if (board->peripherals & BP_OLED_I2C) {
|
||||||
i2c_create_slave(i2c, "ssd0303", 0x3d);
|
i2c_create_slave(i2c, "ssd0303", 0x3d);
|
||||||
|
@ -1363,7 +1369,7 @@ static void stellaris_i2c_class_init(ObjectClass *klass, void *data)
|
||||||
}
|
}
|
||||||
|
|
||||||
static const TypeInfo stellaris_i2c_info = {
|
static const TypeInfo stellaris_i2c_info = {
|
||||||
.name = "stellaris-i2c",
|
.name = TYPE_STELLARIS_I2C,
|
||||||
.parent = TYPE_SYS_BUS_DEVICE,
|
.parent = TYPE_SYS_BUS_DEVICE,
|
||||||
.instance_size = sizeof(stellaris_i2c_state),
|
.instance_size = sizeof(stellaris_i2c_state),
|
||||||
.class_init = stellaris_i2c_class_init,
|
.class_init = stellaris_i2c_class_init,
|
||||||
|
|
Loading…
Reference in New Issue