diff options
author | Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com> | 2011-07-21 13:53:32 +0800 |
---|---|---|
committer | Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com> | 2011-07-21 14:10:07 +0800 |
commit | 4b193e0755e6a3ca580dd08c4633b79312e72cd4 (patch) | |
tree | 782b87957788aa4898e123801fe933285c7c3840 /drivers | |
parent | 6ae6553e1a82923033d940bb44aa5048d78e16d4 (diff) | |
download | barebox-4b193e0755e6a3ca580dd08c4633b79312e72cd4.tar.gz barebox-4b193e0755e6a3ca580dd08c4633b79312e72cd4.tar.xz |
resource: introduce add_generic_device to register simple device
Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/base/resource.c | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/drivers/base/resource.c b/drivers/base/resource.c index 7b0020bb69..f0450d32fe 100644 --- a/drivers/base/resource.c +++ b/drivers/base/resource.c @@ -25,22 +25,26 @@ #include <driver.h> #include <xfuncs.h> -struct device_d *add_mem_device(const char *name, resource_size_t start, - resource_size_t size, unsigned int flags) +struct device_d *add_generic_device(const char* devname, int id, const char *resname, + resource_size_t start, resource_size_t size, unsigned int flags, + void *pdata) { struct device_d *dev; dev = xzalloc(sizeof(*dev)); - strcpy(dev->name, "mem"); - dev->id = -1; + strcpy(dev->name, devname); + dev->id = id; dev->resource = xzalloc(sizeof(struct resource)); dev->num_resources = 1; - dev->resource[0].name = xstrdup(name); + if (resname) + dev->resource[0].name = xstrdup(resname); dev->resource[0].start = start; dev->resource[0].size = size; - dev->resource[0].flags = IORESOURCE_MEM | flags; + dev->resource[0].flags = flags; + dev->platform_data = pdata; register_device(dev); return dev; } +EXPORT_SYMBOL(add_generic_device); |