summary refs log tree commit diff stats
path: root/hw/i2c/bitbang_i2c.c
diff options
context:
space:
mode:
authorAndreas Färber <afaerber@suse.de>2013-07-26 18:13:46 +0200
committerAndreas Färber <afaerber@suse.de>2013-07-29 21:06:57 +0200
commitcc3c3b8a2239a7a1d49a83c047ae2bc63d8a71e8 (patch)
tree87f3b905f49d7ae8aed09026abff0744e038a378 /hw/i2c/bitbang_i2c.c
parenta009de46bd50c88d18f19a1405e1348c679e08d6 (diff)
downloadfocaccia-qemu-cc3c3b8a2239a7a1d49a83c047ae2bc63d8a71e8.tar.gz
focaccia-qemu-cc3c3b8a2239a7a1d49a83c047ae2bc63d8a71e8.zip
bitbang_i2c: QOM cast cleanup
Signed-off-by: Andreas Färber <afaerber@suse.de>
Diffstat (limited to 'hw/i2c/bitbang_i2c.c')
-rw-r--r--hw/i2c/bitbang_i2c.c24
1 files changed, 15 insertions, 9 deletions
diff --git a/hw/i2c/bitbang_i2c.c b/hw/i2c/bitbang_i2c.c
index 853d455a35..ca59456d16 100644
--- a/hw/i2c/bitbang_i2c.c
+++ b/hw/i2c/bitbang_i2c.c
@@ -185,8 +185,13 @@ bitbang_i2c_interface *bitbang_i2c_init(i2c_bus *bus)
 }
 
 /* GPIO interface.  */
-typedef struct {
-    SysBusDevice busdev;
+
+#define TYPE_GPIO_I2C "gpio_i2c"
+#define GPIO_I2C(obj) OBJECT_CHECK(GPIOI2CState, (obj), TYPE_GPIO_I2C)
+
+typedef struct GPIOI2CState {
+    SysBusDevice parent_obj;
+
     MemoryRegion dummy_iomem;
     bitbang_i2c_interface *bitbang;
     int last_level;
@@ -204,19 +209,20 @@ static void bitbang_i2c_gpio_set(void *opaque, int irq, int level)
     }
 }
 
-static int gpio_i2c_init(SysBusDevice *dev)
+static int gpio_i2c_init(SysBusDevice *sbd)
 {
-    GPIOI2CState *s = FROM_SYSBUS(GPIOI2CState, dev);
+    DeviceState *dev = DEVICE(sbd);
+    GPIOI2CState *s = GPIO_I2C(dev);
     i2c_bus *bus;
 
     memory_region_init(&s->dummy_iomem, OBJECT(s), "gpio_i2c", 0);
-    sysbus_init_mmio(dev, &s->dummy_iomem);
+    sysbus_init_mmio(sbd, &s->dummy_iomem);
 
-    bus = i2c_init_bus(&dev->qdev, "i2c");
+    bus = i2c_init_bus(dev, "i2c");
     s->bitbang = bitbang_i2c_init(bus);
 
-    qdev_init_gpio_in(&dev->qdev, bitbang_i2c_gpio_set, 2);
-    qdev_init_gpio_out(&dev->qdev, &s->out, 1);
+    qdev_init_gpio_in(dev, bitbang_i2c_gpio_set, 2);
+    qdev_init_gpio_out(dev, &s->out, 1);
 
     return 0;
 }
@@ -232,7 +238,7 @@ static void gpio_i2c_class_init(ObjectClass *klass, void *data)
 }
 
 static const TypeInfo gpio_i2c_info = {
-    .name          = "gpio_i2c",
+    .name          = TYPE_GPIO_I2C,
     .parent        = TYPE_SYS_BUS_DEVICE,
     .instance_size = sizeof(GPIOI2CState),
     .class_init    = gpio_i2c_class_init,