From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1NzMb4-0008WC-UF for qemu-devel@nongnu.org; Wed, 07 Apr 2010 00:10:34 -0400 Received: from [140.186.70.92] (port=34744 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1NzMb3-0008Uo-5P for qemu-devel@nongnu.org; Wed, 07 Apr 2010 00:10:34 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.69) (envelope-from ) id 1NzMaz-0001oV-1z for qemu-devel@nongnu.org; Wed, 07 Apr 2010 00:10:33 -0400 Received: from mail-pw0-f45.google.com ([209.85.160.45]:55195) by eggs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1NzMaw-0001kv-Bd for qemu-devel@nongnu.org; Wed, 07 Apr 2010 00:10:29 -0400 Received: by mail-pw0-f45.google.com with SMTP id 6so554258pwi.4 for ; Tue, 06 Apr 2010 21:10:26 -0700 (PDT) Sender: Grant Likely From: Grant Likely Date: Tue, 06 Apr 2010 22:10:23 -0600 Message-ID: <20100407041023.20274.14363.stgit@angua> In-Reply-To: <20100407040129.20274.44284.stgit@angua> References: <20100407040129.20274.44284.stgit@angua> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Subject: [Qemu-devel] [RFC PATCH 5/7] devicetree: Add helper to register devices with an fdt_populate hook List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org, devicetree-discuss@lists.ozlabs.org, jeremy.kerr@canonical.com This patch allows simple registration of devices to include a device tree node populate function. Signed-off-by: Grant Likely --- 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);