|
@@ -37,7 +37,6 @@
|
|
|
#include "migration/vmstate.h"
|
|
|
#include "sdhci-internal.h"
|
|
|
#include "qemu/log.h"
|
|
|
-#include "qemu/module.h"
|
|
|
#include "trace.h"
|
|
|
#include "qom/object.h"
|
|
|
|
|
@@ -1598,15 +1597,6 @@ static void sdhci_sysbus_class_init(ObjectClass *klass, void *data)
|
|
|
sdhci_common_class_init(klass, data);
|
|
|
}
|
|
|
|
|
|
-static const TypeInfo sdhci_sysbus_info = {
|
|
|
- .name = TYPE_SYSBUS_SDHCI,
|
|
|
- .parent = TYPE_SYS_BUS_DEVICE,
|
|
|
- .instance_size = sizeof(SDHCIState),
|
|
|
- .instance_init = sdhci_sysbus_init,
|
|
|
- .instance_finalize = sdhci_sysbus_finalize,
|
|
|
- .class_init = sdhci_sysbus_class_init,
|
|
|
-};
|
|
|
-
|
|
|
/* --- qdev bus master --- */
|
|
|
|
|
|
static void sdhci_bus_class_init(ObjectClass *klass, void *data)
|
|
@@ -1617,13 +1607,6 @@ static void sdhci_bus_class_init(ObjectClass *klass, void *data)
|
|
|
sbc->set_readonly = sdhci_set_readonly;
|
|
|
}
|
|
|
|
|
|
-static const TypeInfo sdhci_bus_info = {
|
|
|
- .name = TYPE_SDHCI_BUS,
|
|
|
- .parent = TYPE_SD_BUS,
|
|
|
- .instance_size = sizeof(SDBus),
|
|
|
- .class_init = sdhci_bus_class_init,
|
|
|
-};
|
|
|
-
|
|
|
/* --- qdev i.MX eSDHC --- */
|
|
|
|
|
|
#define USDHC_MIX_CTRL 0x48
|
|
@@ -1882,12 +1865,6 @@ static void imx_usdhc_init(Object *obj)
|
|
|
s->quirks = SDHCI_QUIRK_NO_BUSY_IRQ;
|
|
|
}
|
|
|
|
|
|
-static const TypeInfo imx_usdhc_info = {
|
|
|
- .name = TYPE_IMX_USDHC,
|
|
|
- .parent = TYPE_SYSBUS_SDHCI,
|
|
|
- .instance_init = imx_usdhc_init,
|
|
|
-};
|
|
|
-
|
|
|
/* --- qdev Samsung s3c --- */
|
|
|
|
|
|
#define S3C_SDHCI_CONTROL2 0x80
|
|
@@ -1946,18 +1923,31 @@ static void sdhci_s3c_init(Object *obj)
|
|
|
s->io_ops = &sdhci_s3c_mmio_ops;
|
|
|
}
|
|
|
|
|
|
-static const TypeInfo sdhci_s3c_info = {
|
|
|
- .name = TYPE_S3C_SDHCI ,
|
|
|
- .parent = TYPE_SYSBUS_SDHCI,
|
|
|
- .instance_init = sdhci_s3c_init,
|
|
|
+static const TypeInfo sdhci_types[] = {
|
|
|
+ {
|
|
|
+ .name = TYPE_SDHCI_BUS,
|
|
|
+ .parent = TYPE_SD_BUS,
|
|
|
+ .instance_size = sizeof(SDBus),
|
|
|
+ .class_init = sdhci_bus_class_init,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ .name = TYPE_SYSBUS_SDHCI,
|
|
|
+ .parent = TYPE_SYS_BUS_DEVICE,
|
|
|
+ .instance_size = sizeof(SDHCIState),
|
|
|
+ .instance_init = sdhci_sysbus_init,
|
|
|
+ .instance_finalize = sdhci_sysbus_finalize,
|
|
|
+ .class_init = sdhci_sysbus_class_init,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ .name = TYPE_IMX_USDHC,
|
|
|
+ .parent = TYPE_SYSBUS_SDHCI,
|
|
|
+ .instance_init = imx_usdhc_init,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ .name = TYPE_S3C_SDHCI,
|
|
|
+ .parent = TYPE_SYSBUS_SDHCI,
|
|
|
+ .instance_init = sdhci_s3c_init,
|
|
|
+ },
|
|
|
};
|
|
|
|
|
|
-static void sdhci_register_types(void)
|
|
|
-{
|
|
|
- type_register_static(&sdhci_sysbus_info);
|
|
|
- type_register_static(&sdhci_bus_info);
|
|
|
- type_register_static(&imx_usdhc_info);
|
|
|
- type_register_static(&sdhci_s3c_info);
|
|
|
-}
|
|
|
-
|
|
|
-type_init(sdhci_register_types)
|
|
|
+DEFINE_TYPES(sdhci_types)
|