1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
| static int reset_get_by_index_tail(int ret, ofnode node, struct ofnode_phandle_args *args, const char *list_name, int index, struct reset_ctl *reset_ctl) { struct udevice *dev_reset; struct reset_ops *ops;
assert(reset_ctl); reset_ctl->dev = NULL; if (ret) return ret; ret = uclass_get_device_by_ofnode(UCLASS_RESET, args->node, &dev_reset); if (ret) { debug("%s: uclass_get_device_by_ofnode() failed: %d\n", __func__, ret); debug("%s %d\n", ofnode_get_name(args->node), args->args[0]); return ret; } ops = reset_dev_ops(dev_reset);
reset_ctl->dev = dev_reset; if (ops->of_xlate) ret = ops->of_xlate(reset_ctl, args); else ret = reset_of_xlate_default(reset_ctl, args); if (ret) { debug("of_xlate() failed: %d\n", ret); return ret; }
ret = ops->request ? ops->request(reset_ctl) : 0; if (ret) { debug("ops->request() failed: %d\n", ret); return ret; }
return 0; }
|