]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - drivers/amba/bus.c
Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc
[karo-tx-linux.git] / drivers / amba / bus.c
index e8eb91bd0d28a9411df64124edd47ca779bdf011..a2fc56d2e6819d04a86474157e330ff0467d6b09 100644 (file)
@@ -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);