struct bcma_device *core)
 {
        struct device_node *node;
-       u64 size;
-       const __be32 *reg;
+       int ret;
 
        if (!parent->of_node)
                return NULL;
 
        for_each_child_of_node(parent->of_node, node) {
-               reg = of_get_address(node, 0, &size, NULL);
-               if (!reg)
+               struct resource res;
+               ret = of_address_to_resource(node, 0, &res);
+               if (ret)
                        continue;
-               if (of_translate_address(node, reg) == core->addr)
+               if (res.start == core->addr)
                        return node;
        }
        return NULL;