+};
+
+static int miphy28lp_get_ressource_byname(struct device_node *child,
+ char *name, struct resource *res)
+{
+ int index, ret = 0, count = 0;This function looks bit complicated, can't we just use:
+ int reg_tuple_size;
+ const __be32 *p;
+
+ reg_tuple_size = (of_n_addr_cells(child) +
+ of_n_size_cells(child)) * sizeof(u32);
+
+ p = of_get_property(child, "reg", &count);
+ if (count % reg_tuple_size != 0)
+ ret = -EINVAL;
+
+ count /= reg_tuple_size;
+
+ for (index = 0; index < count; index++) {
+ const char *rname = NULL;
+
+ ret = of_property_read_string_index(child, "reg-names",
+ index, &rname);
+ if (!strcmp(name, rname))
+ return of_address_to_resource(child, index, res);
+ }
+
+ return 1;