resource: introduce add_generic_device to register simple device
Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
This commit is contained in:
parent
6ae6553e1a
commit
4b193e0755
|
@ -25,22 +25,26 @@
|
||||||
#include <driver.h>
|
#include <driver.h>
|
||||||
#include <xfuncs.h>
|
#include <xfuncs.h>
|
||||||
|
|
||||||
struct device_d *add_mem_device(const char *name, resource_size_t start,
|
struct device_d *add_generic_device(const char* devname, int id, const char *resname,
|
||||||
resource_size_t size, unsigned int flags)
|
resource_size_t start, resource_size_t size, unsigned int flags,
|
||||||
|
void *pdata)
|
||||||
{
|
{
|
||||||
struct device_d *dev;
|
struct device_d *dev;
|
||||||
|
|
||||||
dev = xzalloc(sizeof(*dev));
|
dev = xzalloc(sizeof(*dev));
|
||||||
strcpy(dev->name, "mem");
|
strcpy(dev->name, devname);
|
||||||
dev->id = -1;
|
dev->id = id;
|
||||||
dev->resource = xzalloc(sizeof(struct resource));
|
dev->resource = xzalloc(sizeof(struct resource));
|
||||||
dev->num_resources = 1;
|
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].start = start;
|
||||||
dev->resource[0].size = size;
|
dev->resource[0].size = size;
|
||||||
dev->resource[0].flags = IORESOURCE_MEM | flags;
|
dev->resource[0].flags = flags;
|
||||||
|
dev->platform_data = pdata;
|
||||||
|
|
||||||
register_device(dev);
|
register_device(dev);
|
||||||
|
|
||||||
return dev;
|
return dev;
|
||||||
}
|
}
|
||||||
|
EXPORT_SYMBOL(add_generic_device);
|
||||||
|
|
|
@ -202,11 +202,23 @@ static inline void __iomem *dev_request_mem_region(struct device_d *dev, int num
|
||||||
return dev_get_mem_region(dev, num);
|
return dev_get_mem_region(dev, num);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* register a generic device
|
||||||
|
* with only one resource
|
||||||
|
*/
|
||||||
|
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);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* register a memory device
|
* register a memory device
|
||||||
*/
|
*/
|
||||||
struct device_d *add_mem_device(const char *name, resource_size_t start,
|
static inline struct device_d *add_mem_device(const char *name, resource_size_t start,
|
||||||
resource_size_t size, unsigned int flags);
|
resource_size_t size, unsigned int flags)
|
||||||
|
{
|
||||||
|
return add_generic_device("mem", -1, name, start, size,
|
||||||
|
IORESOURCE_MEM | flags, NULL);
|
||||||
|
}
|
||||||
|
|
||||||
/* linear list over all available devices
|
/* linear list over all available devices
|
||||||
*/
|
*/
|
||||||
|
|
Loading…
Reference in New Issue