This patch allows simple registration of devices to include a device tree node populate function.
Signed-off-by: Grant Likely <grant.lik...@secretlab.ca> --- hw/sysbus.c | 15 +++++++++++++++ hw/sysbus.h | 2 ++ 2 files changed, 17 insertions(+), 0 deletions(-) diff --git a/hw/sysbus.c b/hw/sysbus.c index 861572f..c63deef 100644 --- a/hw/sysbus.c +++ b/hw/sysbus.c @@ -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, ...) { diff --git a/hw/sysbus.h b/hw/sysbus.h index 2c43191..3e20494 100644 --- a/hw/sysbus.h +++ b/hw/sysbus.h @@ -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);