@@ -138,6 +138,21 @@ void sysbus_register_dev(const char *name, size_t size, sysbus_initfn init)
sysbus_register_withprop(info);
}
+#if defined(CONFIG_FDT)
+void sysbus_register_dev_fdt(const char *name, size_t size, sysbus_initfn init,
+ sysbus_fdt_populatefn fdt_populate)
+{
+ SysBusDeviceInfo *info;
+
+ info = qemu_mallocz(sizeof(*info));
+ info->qdev.name = qemu_strdup(name);
+ info->qdev.size = size;
+ info->init = init;
+ info->fdt_populate = fdt_populate;
+ sysbus_register_withprop(info);
+}
+#endif
+
DeviceState *sysbus_create_varargs(const char *name,
target_phys_addr_t addr, ...)
{
@@ -39,6 +39,8 @@ typedef struct {
} SysBusDeviceInfo;
void sysbus_register_dev(const char *name, size_t size, sysbus_initfn init);
+void sysbus_register_dev_fdt(const char *name, size_t size, sysbus_initfn init,
+ sysbus_fdt_populatefn fdt_populate);
void sysbus_register_withprop(SysBusDeviceInfo *info);
void *sysbus_new(void);
void sysbus_init_mmio(SysBusDevice *dev, target_phys_addr_t size, int iofunc);
This patch allows simple registration of devices to include a device tree node populate function. Signed-off-by: Grant Likely <grant.likely@secretlab.ca> --- hw/sysbus.c | 15 +++++++++++++++ hw/sysbus.h | 2 ++ 2 files changed, 17 insertions(+), 0 deletions(-)