[RFC PATCH 5/7] devicetree: Add helper to register devices with an fdt_populate hook

Grant Likely grant.likely at secretlab.ca
Wed Apr 7 14:10:23 EST 2010


This patch allows simple registration of devices to include a
device tree node populate function.

Signed-off-by: Grant Likely <grant.likely at 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);



More information about the devicetree-discuss mailing list