mirror of https://github.com/proxmox/mirror_qemu
omap_gpio: QOM cast cleanup for omap2_gpif_s
Signed-off-by: Andreas Färber <afaerber@suse.de>master
parent
1d300b5f6f
commit
74d1e352be
|
@ -208,8 +208,13 @@ struct omap2_gpio_s {
|
||||||
uint8_t delay;
|
uint8_t delay;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
#define TYPE_OMAP2_GPIO "omap2-gpio"
|
||||||
|
#define OMAP2_GPIO(obj) \
|
||||||
|
OBJECT_CHECK(struct omap2_gpif_s, (obj), TYPE_OMAP2_GPIO)
|
||||||
|
|
||||||
struct omap2_gpif_s {
|
struct omap2_gpif_s {
|
||||||
SysBusDevice busdev;
|
SysBusDevice parent_obj;
|
||||||
|
|
||||||
MemoryRegion iomem;
|
MemoryRegion iomem;
|
||||||
int mpu_model;
|
int mpu_model;
|
||||||
void *iclk;
|
void *iclk;
|
||||||
|
@ -599,9 +604,9 @@ static void omap_gpif_reset(DeviceState *dev)
|
||||||
|
|
||||||
static void omap2_gpif_reset(DeviceState *dev)
|
static void omap2_gpif_reset(DeviceState *dev)
|
||||||
{
|
{
|
||||||
|
struct omap2_gpif_s *s = OMAP2_GPIO(dev);
|
||||||
int i;
|
int i;
|
||||||
struct omap2_gpif_s *s = FROM_SYSBUS(struct omap2_gpif_s,
|
|
||||||
SYS_BUS_DEVICE(dev));
|
|
||||||
for (i = 0; i < s->modulecount; i++) {
|
for (i = 0; i < s->modulecount; i++) {
|
||||||
omap2_gpio_module_reset(&s->modules[i]);
|
omap2_gpio_module_reset(&s->modules[i]);
|
||||||
}
|
}
|
||||||
|
@ -653,7 +658,7 @@ static void omap2_gpif_top_write(void *opaque, hwaddr addr,
|
||||||
|
|
||||||
case 0x10: /* IPGENERICOCPSPL_SYSCONFIG */
|
case 0x10: /* IPGENERICOCPSPL_SYSCONFIG */
|
||||||
if (value & (1 << 1)) /* SOFTRESET */
|
if (value & (1 << 1)) /* SOFTRESET */
|
||||||
omap2_gpif_reset(&s->busdev.qdev);
|
omap2_gpif_reset(DEVICE(s));
|
||||||
s->autoidle = value & 1;
|
s->autoidle = value & 1;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -690,10 +695,12 @@ static int omap_gpio_init(SysBusDevice *sbd)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int omap2_gpio_init(SysBusDevice *dev)
|
static int omap2_gpio_init(SysBusDevice *sbd)
|
||||||
{
|
{
|
||||||
|
DeviceState *dev = DEVICE(sbd);
|
||||||
|
struct omap2_gpif_s *s = OMAP2_GPIO(dev);
|
||||||
int i;
|
int i;
|
||||||
struct omap2_gpif_s *s = FROM_SYSBUS(struct omap2_gpif_s, dev);
|
|
||||||
if (!s->iclk) {
|
if (!s->iclk) {
|
||||||
hw_error("omap2-gpio: iclk not connected\n");
|
hw_error("omap2-gpio: iclk not connected\n");
|
||||||
}
|
}
|
||||||
|
@ -701,14 +708,14 @@ static int omap2_gpio_init(SysBusDevice *dev)
|
||||||
s->modulecount = (s->mpu_model < omap2430) ? 4 : 5;
|
s->modulecount = (s->mpu_model < omap2430) ? 4 : 5;
|
||||||
memory_region_init_io(&s->iomem, OBJECT(s), &omap2_gpif_top_ops, s,
|
memory_region_init_io(&s->iomem, OBJECT(s), &omap2_gpif_top_ops, s,
|
||||||
"omap2.gpio", 0x1000);
|
"omap2.gpio", 0x1000);
|
||||||
sysbus_init_mmio(dev, &s->iomem);
|
sysbus_init_mmio(sbd, &s->iomem);
|
||||||
} else {
|
} else {
|
||||||
s->modulecount = 6;
|
s->modulecount = 6;
|
||||||
}
|
}
|
||||||
s->modules = g_malloc0(s->modulecount * sizeof(struct omap2_gpio_s));
|
s->modules = g_malloc0(s->modulecount * sizeof(struct omap2_gpio_s));
|
||||||
s->handler = g_malloc0(s->modulecount * 32 * sizeof(qemu_irq));
|
s->handler = g_malloc0(s->modulecount * 32 * sizeof(qemu_irq));
|
||||||
qdev_init_gpio_in(&dev->qdev, omap2_gpio_set, s->modulecount * 32);
|
qdev_init_gpio_in(dev, omap2_gpio_set, s->modulecount * 32);
|
||||||
qdev_init_gpio_out(&dev->qdev, s->handler, s->modulecount * 32);
|
qdev_init_gpio_out(dev, s->handler, s->modulecount * 32);
|
||||||
for (i = 0; i < s->modulecount; i++) {
|
for (i = 0; i < s->modulecount; i++) {
|
||||||
struct omap2_gpio_s *m = &s->modules[i];
|
struct omap2_gpio_s *m = &s->modules[i];
|
||||||
if (!s->fclk[i]) {
|
if (!s->fclk[i]) {
|
||||||
|
@ -716,12 +723,12 @@ static int omap2_gpio_init(SysBusDevice *dev)
|
||||||
}
|
}
|
||||||
m->revision = (s->mpu_model < omap3430) ? 0x18 : 0x25;
|
m->revision = (s->mpu_model < omap3430) ? 0x18 : 0x25;
|
||||||
m->handler = &s->handler[i * 32];
|
m->handler = &s->handler[i * 32];
|
||||||
sysbus_init_irq(dev, &m->irq[0]); /* mpu irq */
|
sysbus_init_irq(sbd, &m->irq[0]); /* mpu irq */
|
||||||
sysbus_init_irq(dev, &m->irq[1]); /* dsp irq */
|
sysbus_init_irq(sbd, &m->irq[1]); /* dsp irq */
|
||||||
sysbus_init_irq(dev, &m->wkup);
|
sysbus_init_irq(sbd, &m->wkup);
|
||||||
memory_region_init_io(&m->iomem, OBJECT(s), &omap2_gpio_module_ops, m,
|
memory_region_init_io(&m->iomem, OBJECT(s), &omap2_gpio_module_ops, m,
|
||||||
"omap.gpio-module", 0x1000);
|
"omap.gpio-module", 0x1000);
|
||||||
sysbus_init_mmio(dev, &m->iomem);
|
sysbus_init_mmio(sbd, &m->iomem);
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -784,7 +791,7 @@ static void omap2_gpio_class_init(ObjectClass *klass, void *data)
|
||||||
}
|
}
|
||||||
|
|
||||||
static const TypeInfo omap2_gpio_info = {
|
static const TypeInfo omap2_gpio_info = {
|
||||||
.name = "omap2-gpio",
|
.name = TYPE_OMAP2_GPIO,
|
||||||
.parent = TYPE_SYS_BUS_DEVICE,
|
.parent = TYPE_SYS_BUS_DEVICE,
|
||||||
.instance_size = sizeof(struct omap2_gpif_s),
|
.instance_size = sizeof(struct omap2_gpif_s),
|
||||||
.class_init = omap2_gpio_class_init,
|
.class_init = omap2_gpio_class_init,
|
||||||
|
|
Loading…
Reference in New Issue