|
@@ -546,7 +546,8 @@ EXPORT_SYMBOL_GPL(amba_device_add);
|
|
|
static struct amba_device *
|
|
|
amba_aphb_device_add(struct device *parent, const char *name,
|
|
|
resource_size_t base, size_t size, int irq1, int irq2,
|
|
|
- void *pdata, unsigned int periphid, u64 dma_mask)
|
|
|
+ void *pdata, unsigned int periphid, u64 dma_mask,
|
|
|
+ struct resource *resbase)
|
|
|
{
|
|
|
struct amba_device *dev;
|
|
|
int ret;
|
|
@@ -563,7 +564,7 @@ amba_aphb_device_add(struct device *parent, const char *name,
|
|
|
dev->dev.platform_data = pdata;
|
|
|
dev->dev.parent = parent;
|
|
|
|
|
|
- ret = amba_device_add(dev, &iomem_resource);
|
|
|
+ ret = amba_device_add(dev, resbase);
|
|
|
if (ret) {
|
|
|
amba_device_put(dev);
|
|
|
return ERR_PTR(ret);
|
|
@@ -578,7 +579,7 @@ amba_apb_device_add(struct device *parent, const char *name,
|
|
|
void *pdata, unsigned int periphid)
|
|
|
{
|
|
|
return amba_aphb_device_add(parent, name, base, size, irq1, irq2, pdata,
|
|
|
- periphid, 0);
|
|
|
+ periphid, 0, &iomem_resource);
|
|
|
}
|
|
|
EXPORT_SYMBOL_GPL(amba_apb_device_add);
|
|
|
|
|
@@ -588,10 +589,33 @@ amba_ahb_device_add(struct device *parent, const char *name,
|
|
|
void *pdata, unsigned int periphid)
|
|
|
{
|
|
|
return amba_aphb_device_add(parent, name, base, size, irq1, irq2, pdata,
|
|
|
- periphid, ~0ULL);
|
|
|
+ periphid, ~0ULL, &iomem_resource);
|
|
|
}
|
|
|
EXPORT_SYMBOL_GPL(amba_ahb_device_add);
|
|
|
|
|
|
+struct amba_device *
|
|
|
+amba_apb_device_add_res(struct device *parent, const char *name,
|
|
|
+ resource_size_t base, size_t size, int irq1,
|
|
|
+ int irq2, void *pdata, unsigned int periphid,
|
|
|
+ struct resource *resbase)
|
|
|
+{
|
|
|
+ return amba_aphb_device_add(parent, name, base, size, irq1, irq2, pdata,
|
|
|
+ periphid, 0, resbase);
|
|
|
+}
|
|
|
+EXPORT_SYMBOL_GPL(amba_apb_device_add_res);
|
|
|
+
|
|
|
+struct amba_device *
|
|
|
+amba_ahb_device_add_res(struct device *parent, const char *name,
|
|
|
+ resource_size_t base, size_t size, int irq1,
|
|
|
+ int irq2, void *pdata, unsigned int periphid,
|
|
|
+ struct resource *resbase)
|
|
|
+{
|
|
|
+ return amba_aphb_device_add(parent, name, base, size, irq1, irq2, pdata,
|
|
|
+ periphid, ~0ULL, resbase);
|
|
|
+}
|
|
|
+EXPORT_SYMBOL_GPL(amba_ahb_device_add_res);
|
|
|
+
|
|
|
+
|
|
|
static void amba_device_initialize(struct amba_device *dev, const char *name)
|
|
|
{
|
|
|
device_initialize(&dev->dev);
|