Merge branch 'devicetree/next' of git://git.secretlab.ca/git/linux-2.6
[pandora-kernel.git] / drivers / of / address.c
index b4559c5..da1f4b9 100644 (file)
@@ -577,6 +577,24 @@ int of_address_to_resource(struct device_node *dev, int index,
 }
 EXPORT_SYMBOL_GPL(of_address_to_resource);
 
+struct device_node *of_find_matching_node_by_address(struct device_node *from,
+                                       const struct of_device_id *matches,
+                                       u64 base_address)
+{
+       struct device_node *dn = of_find_matching_node(from, matches);
+       struct resource res;
+
+       while (dn) {
+               if (of_address_to_resource(dn, 0, &res))
+                       continue;
+               if (res.start == base_address)
+                       return dn;
+               dn = of_find_matching_node(dn, matches);
+       }
+
+       return NULL;
+}
+
 
 /**
  * of_iomap - Maps the memory mapped IO for a given device_node