diff options
author | Tom Rini <trini@konsulko.com> | 2018-08-24 16:11:01 -0400 |
---|---|---|
committer | Tom Rini <trini@konsulko.com> | 2018-08-24 16:11:01 -0400 |
commit | 15fd1b7903a3090a03cfe453f661822a613a91ee (patch) | |
tree | 65ab83a17440b38d1c5b61f447e309291eb2ff28 /drivers/core/uclass.c | |
parent | 8b7f04f14a1b790ff8dec0afc28a9e8477a6eb88 (diff) | |
parent | 49c752c93a785b9bad9d3fbbd52a76bec003eac5 (diff) |
Merge branch 'master' of git://git.denx.de/u-boot-usb
Diffstat (limited to 'drivers/core/uclass.c')
-rw-r--r-- | drivers/core/uclass.c | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/drivers/core/uclass.c b/drivers/core/uclass.c index d609b170e1..3113d6a56b 100644 --- a/drivers/core/uclass.c +++ b/drivers/core/uclass.c @@ -171,6 +171,27 @@ enum uclass_id uclass_get_by_name(const char *name) return UCLASS_INVALID; } +int dev_get_uclass_index(struct udevice *dev, struct uclass **ucp) +{ + struct udevice *iter; + struct uclass *uc = dev->uclass; + int i = 0; + + if (list_empty(&uc->dev_head)) + return -ENODEV; + + list_for_each_entry(iter, &uc->dev_head, uclass_node) { + if (iter == dev) { + if (ucp) + *ucp = uc; + return i; + } + i++; + } + + return -ENODEV; +} + int uclass_find_device(enum uclass_id id, int index, struct udevice **devp) { struct uclass *uc; |